update code by Tizen coding convention 59/42859/2 accepted/tizen/mobile/20150708.015503 accepted/tizen/tv/20150708.015514 accepted/tizen/wearable/20150708.015528 submit/tizen/20150707.113050
authorji.yong.seo <ji.yong.seo@samsung.com>
Fri, 3 Jul 2015 07:51:08 +0000 (16:51 +0900)
committerji.yong.seo <ji.yong.seo@samsung.com>
Sat, 4 Jul 2015 08:56:09 +0000 (17:56 +0900)
Signed-off-by: ji.yong.seo <ji.yong.seo@samsung.com>
Change-Id: I8790da40afcb3d54eb7c4d2092fd994cd686392c

31 files changed:
include/media-svc-types.h
include/media-svc.h
md5/md5.c [changed mode: 0644->0755]
md5/md5.h [changed mode: 0644->0755]
md5/media-svc-hash.c
plugin/media-content-plugin.c
src/common/media-svc-album.c
src/common/media-svc-db-utils.c
src/common/media-svc-debug.c
src/common/media-svc-localize-utils.c
src/common/media-svc-localize_ch.c
src/common/media-svc-localize_tw.c
src/common/media-svc-media-folder.c
src/common/media-svc-media.c
src/common/media-svc-noti.c
src/common/media-svc-storage.c
src/common/media-svc-util.c
src/common/media-svc.c
src/include/common/media-svc-album.h
src/include/common/media-svc-db-utils.h
src/include/common/media-svc-debug.h
src/include/common/media-svc-env.h
src/include/common/media-svc-localize-utils.h
src/include/common/media-svc-localize_ch.h
src/include/common/media-svc-localize_tw.h [changed mode: 0644->0755]
src/include/common/media-svc-media-folder.h
src/include/common/media-svc-media.h
src/include/common/media-svc-noti.h
src/include/common/media-svc-util.h
test/media-service-test.c [changed mode: 0644->0755]
test/plugin/media_svc_plugin_test.c

index b9bc3c2..0b99685 100755 (executable)
@@ -31,39 +31,39 @@ typedef void MediaSvcHandle;                /**< Handle */
 /**
  * Type definition for storage type
  */
-typedef enum{
+typedef enum {
        MEDIA_SVC_STORAGE_INTERNAL = 0,                 /**< Internal storage*/
        MEDIA_SVC_STORAGE_EXTERNAL = 1,                 /**< External storage*/
        MEDIA_SVC_STORAGE_CLOUD = 100,                  /**< Cloud Storage*/
        MEDIA_SVC_STORAGE_MAX,                                  /**< Invalid storage*/
-}media_svc_storage_type_e;
+} media_svc_storage_type_e;
 
 /**
  * Type definition for content type
  */
-typedef enum{
+typedef enum {
        MEDIA_SVC_MEDIA_TYPE_IMAGE      = 0,    /**< Image Content*/
        MEDIA_SVC_MEDIA_TYPE_VIDEO      = 1,    /**< Video Content*/
        MEDIA_SVC_MEDIA_TYPE_SOUND      = 2,    /**< Sound Content like Ringtone*/
        MEDIA_SVC_MEDIA_TYPE_MUSIC      = 3,    /**< Music Content like mp3*/
        MEDIA_SVC_MEDIA_TYPE_OTHER      = 4,    /**< Not media Content*/
-}media_svc_media_type_e;
+} media_svc_media_type_e;
 
 /**
  * Media meta data information
  */
 typedef struct {
-       char    *       title;                          /**< track title*/
-       char    *       album;                          /**< album name*/
-       char    *       artist;                         /**< artist name*/
-       char    *       album_artist;           /**< artist name*/
-       char    *       genre;                          /**< genre of track*/
-       char    *       composer;                       /**< composer name*/
-       char    *       year;                           /**< year*/
-       char    *       recorded_date;          /**< recorded date*/
-       char    *       copyright;                      /**< copyright*/
-       char    *       track_num;                      /**< track number*/
-       char    *       description;                    /**< description*/
+       char            *title;                         /**< track title*/
+       char            *album;                         /**< album name*/
+       char            *artist;                                /**< artist name*/
+       char            *album_artist;          /**< artist name*/
+       char            *genre;                         /**< genre of track*/
+       char            *composer;                      /**< composer name*/
+       char            *year;                          /**< year*/
+       char            *recorded_date;         /**< recorded date*/
+       char            *copyright;                     /**< copyright*/
+       char            *track_num;                     /**< track number*/
+       char            *description;                   /**< description*/
        int             bitrate;                                /**< bitrate*/
        int             samplerate;                     /**< samplerate*/
        int             channel;                                /**< channel*/
@@ -71,46 +71,46 @@ typedef struct {
        float           longitude;                      /**< longitude*/
        float           latitude;                               /**< latitude*/
        float           altitude;                               /**< altitude*/
-       char    *       exposure_time;          /**< exposure_time*/
+       char            *exposure_time;         /**< exposure_time*/
        float           fnumber;                        /**< fnumber*/
        int             iso;                            /**< iso*/
-       char    *       model;                          /**< model*/
+       char            *model;                         /**< model*/
        int             width;                          /**< width*/
        int             height;                         /**< height*/
-       char    *       datetaken;                      /**< datetaken*/
+       char            *datetaken;                     /**< datetaken*/
        int             orientation;                    /**< orientation*/
        int             rating;                         /**< user defined rating */
-       char    *       weather;                                /**< weather of image */
+       char            *weather;                               /**< weather of image */
        int             bitpersample;                           /**< bitrate*/
 
-       char    *       file_name_pinyin;                               /**< pinyin for file_name*/
-       char    *       title_pinyin;                                   /**< pinyin for title*/
-       char    *       album_pinyin;                           /**< pinyin for album*/
-       char    *       artist_pinyin;                                  /**< pinyin for artist*/
-       char    *       album_artist_pinyin;                    /**< pinyin for album_artist*/
-       char    *       genre_pinyin;                                   /**< pinyin for genre*/
-       char    *       composer_pinyin;                                /**< pinyin for composer*/
-       char    *       copyright_pinyin;                               /**< pinyin for copyright*/
-       char    *       description_pinyin;                     /**< pinyin for description*/
+       char            *file_name_pinyin;                              /**< pinyin for file_name*/
+       char            *title_pinyin;                                  /**< pinyin for title*/
+       char            *album_pinyin;                          /**< pinyin for album*/
+       char            *artist_pinyin;                                 /**< pinyin for artist*/
+       char            *album_artist_pinyin;                   /**< pinyin for album_artist*/
+       char            *genre_pinyin;                                  /**< pinyin for genre*/
+       char            *composer_pinyin;                               /**< pinyin for composer*/
+       char            *copyright_pinyin;                              /**< pinyin for copyright*/
+       char            *description_pinyin;                    /**< pinyin for description*/
 } media_svc_content_meta_s;
 
 /**
  * Media data information
  */
 typedef struct {
-       char    *       media_uuid;                                     /**< Unique ID of item */
-       char    *       path;                                           /**< Full path of media file */
-       char    *       file_name;                                      /**< File name of media file. Display name */
-       char    *       file_name_pinyin;                               /**< File name pinyin of media file. Display name */
+       char            *media_uuid;                                    /**< Unique ID of item */
+       char            *path;                                          /**< Full path of media file */
+       char            *file_name;                                     /**< File name of media file. Display name */
+       char            *file_name_pinyin;                              /**< File name pinyin of media file. Display name */
        int             media_type;                                     /**< Type of media file : internal/external */
-       char    *       mime_type;                                      /**< Full path and file name of media file */
+       char            *mime_type;                                     /**< Full path and file name of media file */
        unsigned long long      size;                                                   /**< size */
        time_t  added_time;                                     /**< added time, time_t */
        time_t  modified_time;                          /**< modified time, time_t */
        time_t  timeline;                                       /**< timeline of media, time_t */
-       char    *       folder_uuid;                                    /**< Unique ID of folder */
+       char            *folder_uuid;                                   /**< Unique ID of folder */
        int             album_id;                                       /**< Unique ID of album */
-       char    *       thumbnail_path;                         /**< Thumbnail image file path */
+       char            *thumbnail_path;                                /**< Thumbnail image file path */
        int             played_count;                           /**< played count */
        int             last_played_time;                               /**< last played time */
        int             last_played_position;                   /**< last played position */
@@ -118,7 +118,7 @@ typedef struct {
        int             is_drm;                                         /**< is_drm. o or 1 */
        int             sync_status;                                            /**< sync_status  */
        int             storage_type;                                   /**< Storage of media file : internal/external */
-       char    *       storage_uuid;                                   /**< Unique ID of storage */
+       char            *storage_uuid;                                  /**< Unique ID of storage */
        media_svc_content_meta_s        media_meta;     /**< meta data structure for audio files */
 } media_svc_content_info_s;
 
index c892688..4259caa 100755 (executable)
@@ -33,7 +33,7 @@ extern "C" {
 #endif
 
 
-int media_svc_connect(MediaSvcHandle **handle,uid_t uid);
+int media_svc_connect(MediaSvcHandle **handle, uid_t uid);
 int media_svc_disconnect(MediaSvcHandle *handle);
 int media_svc_create_table(MediaSvcHandle *handle, uid_t uid);
 int media_svc_check_item_exist_by_path(MediaSvcHandle *handle, const char *path);
@@ -63,10 +63,10 @@ int media_svc_send_dir_update_noti(MediaSvcHandle *handle, const char *dir_path)
 int media_svc_count_invalid_items_in_folder(MediaSvcHandle *handle, const char *folder_path, int *count);
 int media_svc_check_db_upgrade(MediaSvcHandle *handle, uid_t uid);
 int media_svc_check_db_corrupt(MediaSvcHandle *handle);
-int media_svc_get_folder_list(MediaSvcHandle *handle, charstart_path, char ***folder_list, time_t **modified_time_list, int **item_num_list, int *count);
+int media_svc_get_folder_list(MediaSvcHandle *handle, char *start_path, char ***folder_list, time_t **modified_time_list, int **item_num_list, int *count);
 int media_svc_update_folder_time(MediaSvcHandle *handle, const char *folder_path, uid_t uid);
 int media_svc_publish_noti(MediaSvcHandle *handle, media_item_type_e update_item, media_item_update_type_e update_type, const char *path, media_type_e media_type, const char *uuid, const char *mime_type);
-int media_svc_get_pinyin(MediaSvcHandle *handle, const char * src_str, char **pinyin_str);
+int media_svc_get_pinyin(MediaSvcHandle *handle, const char *src_str, char **pinyin_str);
 int media_svc_check_pinyin_support(bool *support);
 int media_svc_update_item_begin(MediaSvcHandle *handle, int data_cnt);
 int media_svc_update_item_end(MediaSvcHandle *handle, uid_t uid);
old mode 100644 (file)
new mode 100755 (executable)
index 59b47ba..3782384
--- a/md5/md5.c
+++ b/md5/md5.c
@@ -34,7 +34,7 @@ void byteReverse(unsigned char *buf, unsigned longs)
 {
        uint32_t t;
        do {
-               t = (uint32_t) ((unsigned)buf[3] << 8 | buf[2]) << 16 |
+               t = (uint32_t)((unsigned)buf[3] << 8 | buf[2]) << 16 |
                    ((unsigned)buf[1] << 8 | buf[0]);
                *(uint32_t *) buf = t;
                buf += 4;
@@ -108,7 +108,7 @@ void MD5Update(MD5_CTX *ctx, unsigned char const *buf, unsigned len)
 }
 
 /*
- * Final wrapup - pad to 64-byte boundary with the bit pattern 
+ * Final wrapup - pad to 64-byte boundary with the bit pattern
  * 1 0* (64-bit count of bits processed, MSB-first)
  */
 void MD5Final(unsigned char digest[16], MD5_CTX *ctx)
@@ -162,7 +162,7 @@ void MD5Final(unsigned char digest[16], MD5_CTX *ctx)
 
 /* This is the central step in the MD5 algorithm. */
 #define MD5STEP(f, w, x, y, z, data, s) \
-(w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x)
+       (w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x)
 
 /*
  * The core of the MD5 algorithm, this alters an existing MD5 hash to
old mode 100644 (file)
new mode 100755 (executable)
index dac53fb..450f540
--- a/md5/md5.h
+++ b/md5/md5.h
@@ -31,7 +31,7 @@ typedef struct MD5Context {
 } MD5_CTX;
 
 extern void   MD5Init(MD5_CTX *context);
-extern void   MD5Update(MD5_CTX *context,unsigned char const *buf,unsigned len);
+extern void   MD5Update(MD5_CTX *context, unsigned char const *buf, unsigned len);
 extern void   MD5Final(unsigned char digest[MD5_HASHBYTES], MD5_CTX *context);
 
 extern void   MD5Transform(uint32_t buf[4], uint32_t const in[16]);
index 98ffcdf..affe10b 100755 (executable)
 
 
 static const char ACCEPTABLE_URI_CHARS[96] = {
-       /*      !    "    #    $    %    &    '    (    )    *    +    ,    -    .    / */
+       /*      !    "    #    $    %    &    '    (    )    *    +   ,    -    .    / */
        0x00, 0x3F, 0x20, 0x20, 0x28, 0x00, 0x2C, 0x3F, 0x3F, 0x3F, 0x3F, 0x2A,
-           0x28, 0x3F, 0x3F, 0x1C,
+       0x28, 0x3F, 0x3F, 0x1C,
        /* 0    1    2    3    4    5    6    7    8    9    :    ;    <    =    >    ? */
        0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x38, 0x20,
-           0x20, 0x2C, 0x20, 0x20,
+       0x20, 0x2C, 0x20, 0x20,
        /* @    A    B    C    D    E    F    G    H    I    J    K    L    M    N    O */
        0x38, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
-           0x3F, 0x3F, 0x3F, 0x3F,
+       0x3F, 0x3F, 0x3F, 0x3F,
        /* P    Q    R    S    T    U    V    W    X    Y    Z    [    \    ]    ^    _ */
        0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x20,
-           0x20, 0x20, 0x20, 0x3F,
+       0x20, 0x20, 0x20, 0x3F,
        /* `    a    b    c    d    e    f    g    h    i    j    k    l    m    n    o */
        0x20, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
-           0x3F, 0x3F, 0x3F, 0x3F,
+       0x3F, 0x3F, 0x3F, 0x3F,
        /* p    q    r    s    t    u    v    w    x    y    z    {    |    }    ~  DEL */
        0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x20,
-           0x20, 0x20, 0x3F, 0x20
+       0x20, 0x20, 0x3F, 0x20
 };
 
 char *_mb_svc_generate_hash_name(const char *file)
@@ -69,7 +69,7 @@ char *_mb_svc_generate_hash_name(const char *file)
        memset(md5out, 0, sizeof(md5out));
 
 #define _check_uri_char(c) \
-((c) >= 32 && (c) < 128 && (ACCEPTABLE_URI_CHARS[(c) - 32] & 0x08))
+       ((c) >= 32 && (c) < 128 && (ACCEPTABLE_URI_CHARS[(c) - 32] & 0x08))
 
        uri = alloca(length);
        if (uri == NULL) {
@@ -120,7 +120,7 @@ int mb_svc_generate_hash_code(const char *origin_path, char *hash_code, int max_
        }
 
        strncpy(hash_code, hash, max_length);
-       hash_code[strlen(hash_code)] ='\0';
+       hash_code[strlen(hash_code)] = '\0';
 
        return MS_MEDIA_ERR_NONE;
 }
index b4333b8..2374a36 100755 (executable)
@@ -35,7 +35,7 @@
        (((storage == MEDIA_SVC_STORAGE_INTERNAL) || (storage == MEDIA_SVC_STORAGE_EXTERNAL)) ? TRUE : FALSE)
 
 
-typedef enum{
+typedef enum {
        ERR_HANDLE = 1,
        ERR_FILE_PATH,
        ERR_FOLDER_PATH,
@@ -44,44 +44,44 @@ typedef enum{
        ERR_STORAGE_TYPE,
        ERR_CHECK_ITEM,
        ERR_MAX,
-}media_svc_error_type_e;
+} media_svc_error_type_e;
 
-static void __set_error_message(int err_type, char ** err_msg);
+static void __set_error_message(int err_type, char **err_msg);
 
-static void __set_error_message(int err_type, char ** err_msg)
+static void __set_error_message(int err_type, char **err_msg)
 {
        if (err_msg)
                *err_msg = NULL;
        else
                return;
 
-       if(err_type == ERR_HANDLE)
+       if (err_type == ERR_HANDLE)
                *err_msg = strdup("invalid handle");
-       else if(err_type == ERR_FILE_PATH)
+       else if (err_type == ERR_FILE_PATH)
                *err_msg = strdup("invalid file path");
-       else if(err_type == ERR_FOLDER_PATH)
+       else if (err_type == ERR_FOLDER_PATH)
                *err_msg = strdup("invalid folder path");
-       else if(err_type == ERR_MIME_TYPE)
+       else if (err_type == ERR_MIME_TYPE)
                *err_msg = strdup("invalid mime type");
-       else if(err_type == ERR_NOT_MEDIAFILE)
+       else if (err_type == ERR_NOT_MEDIAFILE)
                *err_msg = strdup("not media content");
-       else if(err_type == ERR_STORAGE_TYPE)
+       else if (err_type == ERR_STORAGE_TYPE)
                *err_msg = strdup("invalid storage type");
-       else if(err_type == ERR_CHECK_ITEM)
+       else if (err_type == ERR_CHECK_ITEM)
                *err_msg = strdup("item does not exist");
-       else if(err_type == MS_MEDIA_ERR_DB_CONNECT_FAIL)
+       else if (err_type == MS_MEDIA_ERR_DB_CONNECT_FAIL)
                *err_msg = strdup("DB connect error");
-       else if(err_type == MS_MEDIA_ERR_DB_DISCONNECT_FAIL)
+       else if (err_type == MS_MEDIA_ERR_DB_DISCONNECT_FAIL)
                *err_msg = strdup("DB disconnect error");
-       else if(err_type == MS_MEDIA_ERR_INVALID_PARAMETER)
+       else if (err_type == MS_MEDIA_ERR_INVALID_PARAMETER)
                *err_msg = strdup("invalid parameter");
-       else if(err_type == MS_MEDIA_ERR_DB_INTERNAL)
+       else if (err_type == MS_MEDIA_ERR_DB_INTERNAL)
                *err_msg = strdup("DB internal error");
-       else if(err_type == MS_MEDIA_ERR_DB_NO_RECORD)
+       else if (err_type == MS_MEDIA_ERR_DB_NO_RECORD)
                *err_msg = strdup("not found in DB");
-       else if(err_type == MS_MEDIA_ERR_INTERNAL)
+       else if (err_type == MS_MEDIA_ERR_INTERNAL)
                *err_msg = strdup("media service internal error");
-       else if(err_type == MS_MEDIA_ERR_DB_CORRUPT)
+       else if (err_type == MS_MEDIA_ERR_DB_CORRUPT)
                *err_msg = strdup("DB corrupt error");
        else
                *err_msg = strdup("error unknown");
@@ -89,11 +89,11 @@ static void __set_error_message(int err_type, char ** err_msg)
        return;
 }
 
-int connect_db(void ** handle, uid_t uid, char ** err_msg)
+int connect_db(void **handle, uid_t uid, char **err_msg)
 {
        int ret = media_svc_connect(handle, uid);
 
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -101,17 +101,17 @@ int connect_db(void ** handle, uid_t uid, char ** err_msg)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int disconnect_db(void * handle, char ** err_msg)
+int disconnect_db(void *handle, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_disconnect(handle);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -119,12 +119,12 @@ int disconnect_db(void * handle, char ** err_msg)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int check_item_exist(void* handle, const char *file_path, bool *modified, char ** err_msg)
+int check_item_exist(void *handle, const char *file_path, bool *modified, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
        *modified = TRUE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -135,41 +135,41 @@ int check_item_exist(void* handle, const char *file_path, bool *modified, char *
        }
 
        ret = media_svc_check_item_exist_by_path(handle, file_path);
-       if(ret == MS_MEDIA_ERR_NONE) {
+       if (ret == MS_MEDIA_ERR_NONE) {
                time_t modified_time = 0;
                unsigned long long file_size = 0;
                struct stat st;
 
                ret = media_svc_get_file_info(handle, file_path, &modified_time, &file_size);
-               if(ret == MS_MEDIA_ERR_NONE) {
+               if (ret == MS_MEDIA_ERR_NONE) {
                        memset(&st, 0, sizeof(struct stat));
                        if (stat(file_path, &st) == 0) {
-                               if((st.st_mtime != modified_time) || (st.st_size != file_size))
+                               if ((st.st_mtime != modified_time) || (st.st_size != file_size))
                                        *modified = TRUE;
                                else
                                        *modified = FALSE;
                        }
                }
 
-               return MEDIA_SVC_PLUGIN_ERROR_NONE;     //exist
+               return MEDIA_SVC_PLUGIN_ERROR_NONE;     /*exist */
        }
 
        __set_error_message(ERR_CHECK_ITEM, err_msg);
 
-       return MEDIA_SVC_PLUGIN_ERROR;          //not exist
+       return MEDIA_SVC_PLUGIN_ERROR;          /*not exist */
 }
 
-int insert_item_begin(void * handle, int item_cnt, int with_noti, int from_pid, char ** err_msg)
+int insert_item_begin(void *handle, int item_cnt, int with_noti, int from_pid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_insert_item_begin(handle, item_cnt, with_noti, from_pid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -177,17 +177,17 @@ int insert_item_begin(void * handle, int item_cnt, int with_noti, int from_pid,
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int insert_item_end(void * handle, uid_t uid, char ** err_msg)
+int insert_item_end(void *handle, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_insert_item_end(handle, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -195,11 +195,11 @@ int insert_item_end(void * handle, uid_t uid, char ** err_msg)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int insert_item(void * handle, const char *file_path, int storage_type, uid_t uid, char ** err_msg)
+int insert_item(void *handle, const char *file_path, int storage_type, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -209,13 +209,13 @@ int insert_item(void * handle, const char *file_path, int storage_type, uid_t ui
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(!STORAGE_VALID(storage_type)) {
+       if (!STORAGE_VALID(storage_type)) {
                __set_error_message(ERR_STORAGE_TYPE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_insert_item_bulk(handle, storage_type, file_path, FALSE, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -223,11 +223,11 @@ int insert_item(void * handle, const char *file_path, int storage_type, uid_t ui
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int insert_item_immediately(void * handle, const char *file_path, int storage_type, uid_t uid, char ** err_msg)
+int insert_item_immediately(void *handle, const char *file_path, int storage_type, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -237,13 +237,13 @@ int insert_item_immediately(void * handle, const char *file_path, int storage_ty
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(!STORAGE_VALID(storage_type)) {
+       if (!STORAGE_VALID(storage_type)) {
                __set_error_message(ERR_STORAGE_TYPE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_insert_item_immediately(handle, storage_type, file_path, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -251,11 +251,11 @@ int insert_item_immediately(void * handle, const char *file_path, int storage_ty
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int insert_burst_item(void * handle, const char *file_path, int storage_type, uid_t uid, char ** err_msg)
+int insert_burst_item(void *handle, const char *file_path, int storage_type, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -265,13 +265,13 @@ int insert_burst_item(void * handle, const char *file_path, int storage_type, ui
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(!STORAGE_VALID(storage_type)) {
+       if (!STORAGE_VALID(storage_type)) {
                __set_error_message(ERR_STORAGE_TYPE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_insert_item_bulk(handle, storage_type, file_path, TRUE, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -279,22 +279,22 @@ int insert_burst_item(void * handle, const char *file_path, int storage_type, ui
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int set_all_storage_items_validity(void * handle, int storage_type, int validity, uid_t uid, char ** err_msg)
+int set_all_storage_items_validity(void *handle, int storage_type, int validity, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(!STORAGE_VALID(storage_type)) {
+       if (!STORAGE_VALID(storage_type)) {
                __set_error_message(ERR_STORAGE_TYPE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_set_all_storage_items_validity(handle, storage_type, validity, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -302,11 +302,11 @@ int set_all_storage_items_validity(void * handle, int storage_type, int validity
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int set_folder_item_validity(void * handle, const char * folder_path, int validity, int recursive, uid_t uid, char ** err_msg)
+int set_folder_item_validity(void *handle, const char *folder_path, int validity, int recursive, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -317,7 +317,7 @@ int set_folder_item_validity(void * handle, const char * folder_path, int validi
        }
 
        ret = media_svc_set_folder_items_validity(handle, folder_path, validity, recursive, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -325,17 +325,17 @@ int set_folder_item_validity(void * handle, const char * folder_path, int validi
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int set_item_validity_begin(void * handle, int item_cnt, char ** err_msg)
+int set_item_validity_begin(void *handle, int item_cnt, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_set_item_validity_begin(handle, item_cnt);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -343,17 +343,17 @@ int set_item_validity_begin(void * handle, int item_cnt, char ** err_msg)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int set_item_validity_end(void * handle, uid_t uid, char ** err_msg)
+int set_item_validity_end(void *handle, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_set_item_validity_end(handle, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -361,11 +361,11 @@ int set_item_validity_end(void * handle, uid_t uid, char ** err_msg)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int set_item_validity(void * handle, const char *file_path, int storage_type, int validity, uid_t uid, char ** err_msg)
+int set_item_validity(void *handle, const char *file_path, int storage_type, int validity, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -375,14 +375,14 @@ int set_item_validity(void * handle, const char *file_path, int storage_type, in
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(!STORAGE_VALID(storage_type)) {
+       if (!STORAGE_VALID(storage_type)) {
                __set_error_message(ERR_STORAGE_TYPE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_set_item_validity(handle, file_path, validity, uid);
 
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -390,11 +390,11 @@ int set_item_validity(void * handle, const char *file_path, int storage_type, in
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int delete_item(void * handle, const char *file_path, uid_t uid, char ** err_msg)
+int delete_item(void *handle, const char *file_path, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -405,72 +405,71 @@ int delete_item(void * handle, const char *file_path, uid_t uid, char ** err_msg
        }
 
        ret = media_svc_check_item_exist_by_path(handle, file_path);
-       if(ret == 0) {
+       if (ret == 0) {
                ret = media_svc_delete_item_by_path(handle, "media", file_path, uid);
 
-               if(ret < 0) {
+               if (ret < 0) {
                        __set_error_message(ret, err_msg);
                        return MEDIA_SVC_PLUGIN_ERROR;
-               }
-               else
+               } else
                        return MEDIA_SVC_PLUGIN_ERROR_NONE;
        }
 
-       __set_error_message(ERR_CHECK_ITEM, err_msg);   //not exist in DB so can't delete item.
+       __set_error_message(ERR_CHECK_ITEM, err_msg);   /*not exist in DB so can't delete item. */
        return MEDIA_SVC_PLUGIN_ERROR;
 }
 
-int delete_all_items_in_storage(void * handle, int storage_type, uid_t uid, char ** err_msg)
+int delete_all_items_in_storage(void *handle, int storage_type, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(!STORAGE_VALID(storage_type)) {
+       if (!STORAGE_VALID(storage_type)) {
                __set_error_message(ERR_STORAGE_TYPE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_delete_all_items_in_storage(handle, storage_type, uid);
-       if(ret < 0) {
-                       __set_error_message(ret, err_msg);
-                       return MEDIA_SVC_PLUGIN_ERROR;
+       if (ret < 0) {
+               __set_error_message(ret, err_msg);
+               return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int delete_all_invalid_items_in_storage(void * handle, int storage_type, uid_t uid, char ** err_msg)
+int delete_all_invalid_items_in_storage(void *handle, int storage_type, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(!STORAGE_VALID(storage_type)) {
+       if (!STORAGE_VALID(storage_type)) {
                __set_error_message(ERR_STORAGE_TYPE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_delete_invalid_items_in_storage(handle, storage_type, uid);
-       if(ret < 0) {
-                       __set_error_message(ret, err_msg);
-                       return MEDIA_SVC_PLUGIN_ERROR;
+       if (ret < 0) {
+               __set_error_message(ret, err_msg);
+               return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int delete_all_invalid_items_in_folder(void * handle, const char *folder_path, uid_t uid, char ** err_msg)
+int delete_all_invalid_items_in_folder(void *handle, const char *folder_path, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -481,7 +480,7 @@ int delete_all_invalid_items_in_folder(void * handle, const char *folder_path, u
        }
 
        ret = media_svc_delete_invalid_items_in_folder(handle, folder_path, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -507,7 +506,7 @@ int update_end(uid_t uid)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int send_dir_update_noti(void * handle, const char *dir_path, char **err_msg)
+int send_dir_update_noti(void *handle, const char *dir_path, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
@@ -525,16 +524,16 @@ int send_dir_update_noti(void * handle, const char *dir_path, char **err_msg)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int count_delete_items_in_folder(void * handle, const char *folder_path, int *count, char ** err_msg)
+int count_delete_items_in_folder(void *handle, const char *folder_path, int *count, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(count == NULL) {
+       if (count == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -545,7 +544,7 @@ int count_delete_items_in_folder(void * handle, const char *folder_path, int *co
        }
 
        ret = media_svc_count_invalid_items_in_folder(handle, folder_path, count);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -553,20 +552,20 @@ int count_delete_items_in_folder(void * handle, const char *folder_path, int *co
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int check_db(void * handle, uid_t uid, char **err_msg)
+int check_db(void *handle, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
        /*check db schema*/
        ret = media_svc_create_table(handle, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        /*check db version*/
        ret = media_svc_check_db_upgrade(handle, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -574,13 +573,13 @@ int check_db(void * handle, uid_t uid, char **err_msg)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int check_db_corrupt(void * handle, char **err_msg)
+int check_db_corrupt(void *handle, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
        /*check db version*/
        ret = media_svc_check_db_corrupt(handle);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -588,22 +587,22 @@ int check_db_corrupt(void * handle, char **err_msg)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int get_folder_list(void * handle, char* start_path, char ***folder_list, int **modified_time_list, int **item_num_list, int *count, char ** err_msg)
+int get_folder_list(void *handle, char *start_path, char ***folder_list, int **modified_time_list, int **item_num_list, int *count, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(count == NULL) {
+       if (count == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       ret = media_svc_get_folder_list(handle, start_path, folder_list, (time_t**)modified_time_list, item_num_list, count);
-       if(ret < 0) {
+       ret = media_svc_get_folder_list(handle, start_path, folder_list, (time_t **)modified_time_list, item_num_list, count);
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -611,22 +610,22 @@ int get_folder_list(void * handle, char* start_path, char ***folder_list, int **
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int update_folder_time(void * handle, char *folder_path, uid_t uid, char ** err_msg)
+int update_folder_time(void *handle, char *folder_path, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(folder_path == NULL) {
+       if (folder_path == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_update_folder_time(handle, folder_path, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -634,17 +633,17 @@ int update_folder_time(void * handle, char *folder_path, uid_t uid, char ** err_
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int update_item_begin(void * handle, int item_cnt, char ** err_msg)
+int update_item_begin(void *handle, int item_cnt, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_update_item_begin(handle, item_cnt);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -652,17 +651,17 @@ int update_item_begin(void * handle, int item_cnt, char ** err_msg)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int update_item_end(void * handle, uid_t uid, char ** err_msg)
+int update_item_end(void *handle, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_update_item_end(handle, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
@@ -670,22 +669,22 @@ int update_item_end(void * handle, uid_t uid, char ** err_msg)
        return MEDIA_SVC_PLUGIN_ERROR_NONE;
 }
 
-int update_item_meta(void * handle, const char *file_path, int storage_type, uid_t uid, char ** err_msg)
+int update_item_meta(void *handle, const char *file_path, int storage_type, uid_t uid, char **err_msg)
 {
        int ret = MEDIA_SVC_PLUGIN_ERROR_NONE;
 
-       if(handle == NULL) {
+       if (handle == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
-       if(file_path == NULL) {
+       if (file_path == NULL) {
                __set_error_message(ERR_HANDLE, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
 
        ret = media_svc_update_item_meta(handle, file_path, storage_type, uid);
-       if(ret < 0) {
+       if (ret < 0) {
                __set_error_message(ret, err_msg);
                return MEDIA_SVC_PLUGIN_ERROR;
        }
index 7a1c7b9..65f1d9b 100755 (executable)
@@ -26,7 +26,7 @@
 #include "media-svc-util.h"
 #include "media-svc-db-utils.h"
 
-int _media_svc_get_album_id(sqlite3 *handle, const char *album, const char *artist, int * album_id)
+int _media_svc_get_album_id(sqlite3 *handle, const char *album, const char *artist, int *album_id)
 {
        int ret = MS_MEDIA_ERR_NONE;
        sqlite3_stmt *sql_stmt = NULL;
@@ -34,7 +34,7 @@ int _media_svc_get_album_id(sqlite3 *handle, const char *album, const char *arti
 
        media_svc_retvm_if(album == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "album is NULL");
 
-       if(artist != NULL) {
+       if (artist != NULL) {
                sql = sqlite3_mprintf("SELECT album_id FROM %s WHERE name = '%q' AND artist = '%q';", MEDIA_SVC_DB_TABLE_ALBUM, album, artist);
        } else {
                sql = sqlite3_mprintf("SELECT album_id FROM %s WHERE name = '%q' AND artist IS NULL;", MEDIA_SVC_DB_TABLE_ALBUM, album, artist);
@@ -43,10 +43,9 @@ int _media_svc_get_album_id(sqlite3 *handle, const char *album, const char *arti
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
 
        if (ret != MS_MEDIA_ERR_NONE) {
-               if(ret == MS_MEDIA_ERR_DB_NO_RECORD) {
+               if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
                        media_svc_debug("there is no album.");
-               }
-               else {
+               } else {
                        media_svc_error("error when _media_svc_get_album_id. err = [%d]", ret);
                }
                return ret;
@@ -70,10 +69,9 @@ int _media_svc_get_album_art_by_album_id(sqlite3 *handle, int album_id, char **a
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
 
        if (ret != MS_MEDIA_ERR_NONE) {
-               if(ret == MS_MEDIA_ERR_DB_NO_RECORD) {
+               if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
                        media_svc_debug("there is no album_id.");
-               }
-               else {
+               } else {
                        media_svc_error("error when get album_art. err = [%d]", ret);
                }
                return ret;
@@ -96,17 +94,17 @@ int _media_svc_get_album_art_by_album_id(sqlite3 *handle, int album_id, char **a
        return MS_MEDIA_ERR_NONE;
 }
 
-int _media_svc_append_album(sqlite3 *handle, const char *album, const char *artist, const char *album_art, int * album_id, uid_t uid)
+int _media_svc_append_album(sqlite3 *handle, const char *album, const char *artist, const char *album_art, int *album_id, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
 
        char *sql = sqlite3_mprintf("INSERT INTO %s (name, artist, album_art, album_art) values (%Q, %Q, %Q, %Q); ",
-                                            MEDIA_SVC_DB_TABLE_ALBUM, album, artist, album_art, album_art);
+                                   MEDIA_SVC_DB_TABLE_ALBUM, album, artist, album_art, album_art);
        ret = _media_svc_sql_query(handle, sql, uid);
        sqlite3_free(sql);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       //*album_id = sqlite3_last_insert_rowid(handle);
+       /**album_id = sqlite3_last_insert_rowid(handle); */
        int inserted_album_id = 0;
        ret = _media_svc_get_album_id(handle, album, artist, &inserted_album_id);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
@@ -128,10 +126,9 @@ int _media_svc_get_media_count_with_album_id_by_path(sqlite3 *handle, const char
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
 
        if (ret != MS_MEDIA_ERR_NONE) {
-               if(ret == MS_MEDIA_ERR_DB_NO_RECORD) {
+               if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
                        media_svc_debug("there is no media in relted to this media's album.");
-               }
-               else {
+               } else {
                        media_svc_error("error when _media_svc_get_media_count_with_album_id_by_path. err = [%d]", ret);
                }
                return ret;
index 333dd69..6859b6d 100755 (executable)
@@ -41,32 +41,29 @@ static int __media_svc_rebuild_view_query(sqlite3 *db_handle, uid_t uid);
 static GHashTable *table;
 static GSList *column_list[MEDIA_SVC_DB_LIST_MAX];
 
-char_media_svc_get_path(uid_t uid)
+char *_media_svc_get_path(uid_t uid)
 {
        char *result_psswd = NULL;
        struct group *grpinfo = NULL;
-       if(uid == getuid())
-       {
+       if (uid == getuid()) {
                result_psswd = strdup(MEDIA_ROOT_PATH_INTERNAL);
                grpinfo = getgrnam("users");
-               if(grpinfo == NULL) {
+               if (grpinfo == NULL) {
                        media_svc_error("getgrnam(users) returns NULL !");
                        return NULL;
                }
-    }
-       else
-       {
+       } else {
                struct passwd *userinfo = getpwuid(uid);
-               if(userinfo == NULL) {
+               if (userinfo == NULL) {
                        media_svc_error("getpwuid(%d) returns NULL !", uid);
                        return NULL;
                }
                grpinfo = getgrnam("users");
-               if(grpinfo == NULL) {
+               if (grpinfo == NULL) {
                        media_svc_error("getgrnam(users) returns NULL !");
                        return NULL;
                }
-               // Compare git_t type and not group name
+               /* Compare git_t type and not group name */
                if (grpinfo->gr_gid != userinfo->pw_gid) {
                        media_svc_error("UID [%d] does not belong to 'users' group!", uid);
                        return NULL;
@@ -81,18 +78,18 @@ int __media_svc_add_table_info(char *name, char *triggerName, char *eventTable,
 {
        table_info *tbl = NULL;
        tbl = malloc(sizeof(table_info));
-       if(tbl == NULL) {
+       if (tbl == NULL) {
                media_svc_error("MS_MEDIA_ERR_OUT_OF_MEMORY");
                return MS_MEDIA_ERR_OUT_OF_MEMORY;
        }
        memset(tbl, 0, sizeof(table_info));
 
-       if(triggerName != NULL) {
+       if (triggerName != NULL) {
                tbl->triggerName = strndup(triggerName, strlen(triggerName));
                tbl->eventTable = strndup(eventTable, strlen(eventTable));
                tbl->actionTable = strndup(actionTable, strlen(actionTable));
        }
-       if(viewName != NULL) {
+       if (viewName != NULL) {
                tbl->viewName = strndup(viewName, strlen(viewName));
        }
        g_hash_table_insert(table, name, tbl);
@@ -104,7 +101,7 @@ int __media_svc_add_column_info(GSList **slist, char *name, char *type, char *op
 {
        column_info *col = NULL;
        col = malloc(sizeof(column_info));
-       if(col == NULL) {
+       if (col == NULL) {
                media_svc_error("MS_MEDIA_ERR_OUT_OF_MEMORY");
                return MS_MEDIA_ERR_OUT_OF_MEMORY;
        }
@@ -112,14 +109,14 @@ int __media_svc_add_column_info(GSList **slist, char *name, char *type, char *op
 
        col->name = strndup(name, strlen(name));
        col->type = strndup(type, strlen(type));
-       if(option != NULL) {
+       if (option != NULL) {
                col->hasOption = true;
                col->option = strndup(option, strlen(option));
        } else {
                col->hasOption = false;
        }
        col->version = version;
-       if(indexName != NULL) {
+       if (indexName != NULL) {
                col->isIndex = true;
                col->indexName = strndup(indexName, strlen(indexName));
        } else {
@@ -138,14 +135,14 @@ static int __media_svc_rebuild_view_query(sqlite3 *db_handle, uid_t uid)
        int ret = MS_MEDIA_ERR_NONE;
        column_info *col_ptr = NULL;
        char *sql = NULL;
-       char table_query[4096] = {0,};
-       char temp[1024] = {0,};
+       char table_query[4096] = {0, };
+       char temp[1024] = {0, };
        int table_len = 0;
        int i, len;
-       //media
+       /*media */
        _media_svc_update_media_view(db_handle, uid);
 
-       //drop playlist_view, tag_view
+       /*drop playlist_view, tag_view */
        sql = sqlite3_mprintf(MEDIA_SVC_DB_QUERY_DROP_VIEW, MEDIA_SVC_DB_VIEW_PLAYLIST);
        ret = _media_svc_sql_query(db_handle, sql, uid);
        sqlite3_free(sql);
@@ -156,13 +153,13 @@ static int __media_svc_rebuild_view_query(sqlite3 *db_handle, uid_t uid)
        sqlite3_free(sql);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       //create playlist_view
+       /*create playlist_view */
        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST]);
-       for(i=1;i<len;i++) {
+       for (i = 1; i < len; i++) {
                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST], i);
-               if(col_ptr->isView) {
-                       if(table_len > 0) {
-                               if(strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_THUMBNAIL, strlen(MEDIA_SVC_DB_COLUMN_THUMBNAIL)) == 0)
+               if (col_ptr->isView) {
+                       if (table_len > 0) {
+                               if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_THUMBNAIL, strlen(MEDIA_SVC_DB_COLUMN_THUMBNAIL)) == 0)
                                        snprintf(temp, sizeof(temp), ", playlist.%s AS p_thumbnail_path", col_ptr->name);
                                else
                                        snprintf(temp, sizeof(temp), ", playlist.%s", col_ptr->name);
@@ -177,10 +174,10 @@ static int __media_svc_rebuild_view_query(sqlite3 *db_handle, uid_t uid)
                memset(temp, 0, sizeof(temp));
        }
        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP]);
-       for(i=1;i<len;i++) {
+       for (i = 1; i < len; i++) {
                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP], i);
-               if(col_ptr->isView) {
-                       if(strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
+               if (col_ptr->isView) {
+                       if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
                                snprintf(temp, sizeof(temp), ", playlist_map.%s AS pm_id", col_ptr->name);
                        else
                                snprintf(temp, sizeof(temp), ", playlist_map.%s", col_ptr->name);
@@ -191,9 +188,9 @@ static int __media_svc_rebuild_view_query(sqlite3 *db_handle, uid_t uid)
        }
 
        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
-       for(i=1;i<len;i++) {
+       for (i = 1; i < len; i++) {
                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
-               if(col_ptr->isView) {
+               if (col_ptr->isView) {
                        snprintf(temp, sizeof(temp), ", media.%s", col_ptr->name);
                        strncat(table_query, temp, strlen(temp));
                        table_len = strlen(table_query);
@@ -205,15 +202,15 @@ static int __media_svc_rebuild_view_query(sqlite3 *db_handle, uid_t uid)
        sqlite3_free(sql);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       //create tag_view
+       /*create tag_view */
        table_len = 0;
        memset(table_query, 0, sizeof(table_query));
 
        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG]);
-       for(i=1;i<len;i++) {
+       for (i = 1; i < len; i++) {
                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG], i);
-               if(col_ptr->isView) {
-                       if(table_len > 0) {
+               if (col_ptr->isView) {
+                       if (table_len > 0) {
                                snprintf(temp, sizeof(temp), ", tag.%s", col_ptr->name);
                                strncat(table_query, temp, strlen(temp));
                                table_len = strlen(table_query);
@@ -226,10 +223,10 @@ static int __media_svc_rebuild_view_query(sqlite3 *db_handle, uid_t uid)
                memset(temp, 0, sizeof(temp));
        }
        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG_MAP]);
-       for(i=1;i<len;i++) {
+       for (i = 1; i < len; i++) {
                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG_MAP], i);
-               if(col_ptr->isView) {
-                       if(strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
+               if (col_ptr->isView) {
+                       if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
                                snprintf(temp, sizeof(temp), ", tag_map.%s AS tm_id", col_ptr->name);
                        else
                                snprintf(temp, sizeof(temp), ", tag_map.%s", col_ptr->name);
@@ -240,9 +237,9 @@ static int __media_svc_rebuild_view_query(sqlite3 *db_handle, uid_t uid)
        }
 
        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
-       for(i=1;i<len;i++) {
+       for (i = 1; i < len; i++) {
                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
-               if(col_ptr->isView) {
+               if (col_ptr->isView) {
                        snprintf(temp, sizeof(temp), ", media.%s", col_ptr->name);
                        strncat(table_query, temp, strlen(temp));
                        table_len = strlen(table_query);
@@ -263,11 +260,11 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
        table_info *tb = NULL;
        column_info *col_ptr = NULL;
        char *sql = NULL;
-       char table_query[4096] = {0,};
-       char index_query[4096] = {0,};
-       char trigger_query[4096] = {0,};
-       char table_query_sub[1024] = {0,};
-       char temp[1024] = {0,};
+       char table_query[4096] = {0, };
+       char index_query[4096] = {0, };
+       char trigger_query[4096] = {0, };
+       char table_query_sub[1024] = {0, };
+       char temp[1024] = {0, };
        int table_len = 0;
        int index_len = 0;
        int trigger_len = 0;
@@ -280,17 +277,16 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
        tb = g_hash_table_lookup(table, table_name);
        len = g_slist_length(column_list[list]);
 
-       if(len == 0)
-       {
+       if (len == 0) {
                media_svc_error("Invalid column");
                return MS_MEDIA_ERR_INTERNAL;
        }
 
-       for(i=1; i<len; i++) {
+       for (i = 1; i < len; i++) {
                col_ptr = g_slist_nth_data(column_list[list], i);
-               //create table
-               if(col_ptr->hasOption) {
-                       if(table_len > 0) {
+               /*create table */
+               if (col_ptr->hasOption) {
+                       if (table_len > 0) {
                                snprintf(temp, sizeof(temp), ", %s %s %s", col_ptr->name, col_ptr->type, col_ptr->option);
                                strncat(table_query, temp, strlen(temp));
                                table_len = strlen(table_query);
@@ -300,7 +296,7 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                                table_len = strlen(table_query);
                        }
                } else {
-                       if(table_len > 0) {
+                       if (table_len > 0) {
                                snprintf(temp, sizeof(temp), ", %s %s", col_ptr->name, col_ptr->type);
                                strncat(table_query, temp, strlen(temp));
                                table_len = strlen(table_query);
@@ -311,9 +307,9 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                        }
                }
                memset(temp, 0, sizeof(temp));
-               //unique
-               if(col_ptr->isUnique) {
-                       if(table_sub_len > 0) {
+               /*unique */
+               if (col_ptr->isUnique) {
+                       if (table_sub_len > 0) {
                                snprintf(temp, sizeof(temp), ", %s", col_ptr->name);
                                strncat(table_query_sub, temp, strlen(temp));
                                table_sub_len = strlen(table_query_sub);
@@ -324,9 +320,9 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                        }
                }
                memset(temp, 0, sizeof(temp));
-               //create index
-               if(col_ptr->isIndex) {
-                       if(index_len > 0) {
+               /*create index */
+               if (col_ptr->isIndex) {
+                       if (index_len > 0) {
                                snprintf(temp, sizeof(temp), MEDIA_SVC_DB_QUERY_INDEX, col_ptr->indexName, table_name, col_ptr->name);
                                strncat(index_query, temp, strlen(temp));
                                index_len = strlen(index_query);
@@ -337,9 +333,9 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                        }
                }
                memset(temp, 0, sizeof(temp));
-               //create trigger
-               if(col_ptr->isTrigger) {
-                       if(strncmp(table_name, MEDIA_SVC_DB_TABLE_ALBUM, strlen(MEDIA_SVC_DB_TABLE_ALBUM)) == 0) {
+               /*create trigger */
+               if (col_ptr->isTrigger) {
+                       if (strncmp(table_name, MEDIA_SVC_DB_TABLE_ALBUM, strlen(MEDIA_SVC_DB_TABLE_ALBUM)) == 0) {
                                snprintf(temp, sizeof(temp), MEDIA_SVC_DB_QUERY_TRIGGER_WITH_COUNT, tb->triggerName, tb->eventTable, tb->actionTable, tb->eventTable, col_ptr->name, col_ptr->name, col_ptr->name, col_ptr->name);
                                strncpy(trigger_query, temp, strlen(temp));
                                trigger_len = strlen(trigger_query);
@@ -352,8 +348,8 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                memset(temp, 0, sizeof(temp));
        }
 
-       //send queries
-       if(table_sub_len > 0) {
+       /*send queries */
+       if (table_sub_len > 0) {
                sql = sqlite3_mprintf(MEDIA_SVC_DB_QUERY_TABLE_WITH_UNIQUE, table_name, table_query, table_query_sub);
                ret = _media_svc_sql_query(db_handle, sql, uid);
                sqlite3_free(sql);
@@ -368,34 +364,34 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
        }
 
-       if(index_len > 0) {
+       if (index_len > 0) {
                ret = _media_svc_sql_query(db_handle, index_query, uid);
                memset(index_query, 0, sizeof(index_query));
                media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
        }
 
-       if(trigger_len > 0) {
+       if (trigger_len > 0) {
                ret = _media_svc_sql_query(db_handle, trigger_query, uid);
                memset(trigger_query, 0, sizeof(trigger_query));
                media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
        }
 
-       //create view
+       /*create view */
        table_len = 0;
-       if(tb != NULL && tb->viewName != NULL) {
-               if(strncmp(table_name, MEDIA_SVC_DB_TABLE_MEDIA, strlen(MEDIA_SVC_DB_TABLE_MEDIA)) == 0) {
+       if (tb != NULL && tb->viewName != NULL) {
+               if (strncmp(table_name, MEDIA_SVC_DB_TABLE_MEDIA, strlen(MEDIA_SVC_DB_TABLE_MEDIA)) == 0) {
                        sql = sqlite3_mprintf(MEDIA_SVC_DB_QUERY_VIEW_MEDIA, tb->viewName, table_name);
                        ret = _media_svc_sql_query(db_handle, sql, uid);
                        sqlite3_free(sql);
                        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-               } else if(strncmp(table_name, MEDIA_SVC_DB_TABLE_PLAYLIST, strlen(MEDIA_SVC_DB_TABLE_PLAYLIST)) == 0) {
+               } else if (strncmp(table_name, MEDIA_SVC_DB_TABLE_PLAYLIST, strlen(MEDIA_SVC_DB_TABLE_PLAYLIST)) == 0) {
                        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST]);
-                       for(i=1; i<len; i++) {
+                       for (i = 1; i < len; i++) {
                                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST], i);
-                               if(col_ptr->isView) {
-                                       if(table_len > 0) {
-                                               if(strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_THUMBNAIL, strlen(MEDIA_SVC_DB_COLUMN_THUMBNAIL)) == 0)
+                               if (col_ptr->isView) {
+                                       if (table_len > 0) {
+                                               if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_THUMBNAIL, strlen(MEDIA_SVC_DB_COLUMN_THUMBNAIL)) == 0)
                                                        snprintf(temp, sizeof(temp), ", playlist.%s AS p_thumbnail_path", col_ptr->name);
                                                else
                                                        snprintf(temp, sizeof(temp), ", playlist.%s", col_ptr->name);
@@ -410,10 +406,10 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                                memset(temp, 0, sizeof(temp));
                        }
                        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP]);
-                       for(i=1; i<len; i++) {
+                       for (i = 1; i < len; i++) {
                                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP], i);
-                               if(col_ptr->isView) {
-                                       if(strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
+                               if (col_ptr->isView) {
+                                       if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
                                                snprintf(temp, sizeof(temp), ", media_count IS NOT NULL AS media_count, playlist_map.%s AS pm_id", col_ptr->name);
                                        else
                                                snprintf(temp, sizeof(temp), ", playlist_map.%s", col_ptr->name);
@@ -424,9 +420,9 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                        }
 
                        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
-                       for(i=1; i<len; i++) {
+                       for (i = 1; i < len; i++) {
                                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
-                               if(col_ptr->isView) {
+                               if (col_ptr->isView) {
                                        snprintf(temp, sizeof(temp), ", media.%s", col_ptr->name);
                                        strncat(table_query, temp, strlen(temp));
                                        table_len = strlen(table_query);
@@ -440,10 +436,10 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
 
                } else {
                        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG]);
-                       for(i=1; i<len; i++) {
+                       for (i = 1; i < len; i++) {
                                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG], i);
-                               if(col_ptr->isView) {
-                                       if(table_len > 0) {
+                               if (col_ptr->isView) {
+                                       if (table_len > 0) {
                                                snprintf(temp, sizeof(temp), ", tag.%s", col_ptr->name);
                                                strncat(table_query, temp, strlen(temp));
                                                table_len = strlen(table_query);
@@ -456,10 +452,10 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                                memset(temp, 0, sizeof(temp));
                        }
                        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG_MAP]);
-                       for(i=1; i<len; i++) {
+                       for (i = 1; i < len; i++) {
                                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG_MAP], i);
-                               if(col_ptr->isView) {
-                                       if(strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
+                               if (col_ptr->isView) {
+                                       if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
                                                snprintf(temp, sizeof(temp), ", media_count IS NOT NULL AS media_count, tag_map.%s AS tm_id", col_ptr->name);
                                        else
                                                snprintf(temp, sizeof(temp), ", tag_map.%s", col_ptr->name);
@@ -470,9 +466,9 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                        }
 
                        len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
-                       for(i=1; i<len; i++) {
+                       for (i = 1; i < len; i++) {
                                col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
-                               if(col_ptr->isView) {
+                               if (col_ptr->isView) {
                                        snprintf(temp, sizeof(temp), ", media.%s", col_ptr->name);
                                        strncat(table_query, temp, strlen(temp));
                                        table_len = strlen(table_query);
@@ -487,7 +483,7 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                }
        }
 
-       if(strncmp(table_name, MEDIA_SVC_DB_TABLE_STORAGE, strlen(MEDIA_SVC_DB_TABLE_STORAGE)) == 0) {
+       if (strncmp(table_name, MEDIA_SVC_DB_TABLE_STORAGE, strlen(MEDIA_SVC_DB_TABLE_STORAGE)) == 0) {
                sql = sqlite3_mprintf("SELECT COUNT(*) FROM '%s' WHERE storage_uuid='%s'", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_MEDIA);
                ret = _media_svc_sql_prepare_to_step(db_handle, sql, &sql_stmt);
                media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
@@ -495,7 +491,7 @@ int _media_svc_make_table_query(sqlite3 *db_handle, const char *table_name, medi
                storage_cnt = sqlite3_column_int(sql_stmt, 0);
                SQLITE3_FINALIZE(sql_stmt);
 
-               if(storage_cnt == 0) {
+               if (storage_cnt == 0) {
                        sql = sqlite3_mprintf("INSERT INTO %s VALUES('%s', '%s', '%s', '%s', 0, 0, 1);", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_MEDIA, _media_svc_get_path(uid), NULL);
                        ret = _media_svc_sql_query(db_handle, sql, uid);
                        sqlite3_free(sql);
@@ -511,8 +507,8 @@ int _media_svc_upgrade_table_query(sqlite3 *db_handle, char *table_name, media_s
        int ret = MS_MEDIA_ERR_NONE;
        column_info *col_ptr = NULL;
        char *sql = NULL;
-       char temp[1024] = {0,};
-       int len,i;
+       char temp[1024] = {0, };
+       int len, i;
        int cur_version = 0;
        sqlite3_stmt *sql_stmt = NULL;
 
@@ -529,11 +525,11 @@ int _media_svc_upgrade_table_query(sqlite3 *db_handle, char *table_name, media_s
        SQLITE3_FINALIZE(sql_stmt);
 
        len = g_slist_length(column_list[list]);
-       for(i=1;i<len;i++) {
+       for (i = 1; i < len; i++) {
                col_ptr = g_slist_nth_data(column_list[list], i);
-               if(col_ptr->version > cur_version) {
-                       //alter table
-                       if(col_ptr->hasOption)
+               if (col_ptr->version > cur_version) {
+                       /*alter table */
+                       if (col_ptr->hasOption)
                                snprintf(temp, sizeof(temp), "%s %s %s", col_ptr->name, col_ptr->type, col_ptr->option);
                        else
                                snprintf(temp, sizeof(temp), "%s %s", col_ptr->name, col_ptr->type);
@@ -541,8 +537,8 @@ int _media_svc_upgrade_table_query(sqlite3 *db_handle, char *table_name, media_s
                        ret = _media_svc_sql_query(db_handle, sql, uid);
                        sqlite3_free(sql);
                        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-                       //create index
-                       if(col_ptr->isIndex) {
+                       /*create index */
+                       if (col_ptr->isIndex) {
                                memset(temp, 0, sizeof(temp));
                                snprintf(temp, sizeof(temp), MEDIA_SVC_DB_QUERY_INDEX, col_ptr->indexName, table_name, col_ptr->name);
                                ret = _media_svc_sql_query(db_handle, temp, uid);
@@ -560,13 +556,13 @@ int _media_svc_init_table_query()
        int ret = MS_MEDIA_ERR_NONE;
        int i = 0;
 
-       //variable initialize..
+       /*variable initialize.. */
        table = g_hash_table_new(g_str_hash, g_str_equal);
-       for(i=0;i<MEDIA_SVC_DB_LIST_MAX;i++) {
+       for (i = 0; i < MEDIA_SVC_DB_LIST_MAX; i++) {
                column_list[i] = g_slist_alloc();
        }
 
-       //table specification..                  (table_name, index, unique set, trigger, view, trigger name, event table, action table, view name)
+       /*table specification..                  (table_name, index, unique set, trigger, view, trigger name, event table, action table, view name) */
        ret = __media_svc_add_table_info(MEDIA_SVC_DB_TABLE_MEDIA, NULL, NULL, NULL, MEDIA_SVC_DB_VIEW_MEDIA);
        ret = __media_svc_add_table_info(MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TRIGGER_FOLDER, MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_FOLDER, NULL);
        ret = __media_svc_add_table_info(MEDIA_SVC_DB_TABLE_PLAYLIST_MAP, MEDIA_SVC_DB_TRIGGER_PLAYLIST_MAP, MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_PLAYLIST_MAP, NULL);
@@ -579,7 +575,7 @@ int _media_svc_init_table_query()
        ret = __media_svc_add_table_info(MEDIA_SVC_DB_TABLE_CUSTOM, MEDIA_SVC_DB_TRIGGER_CUSTOM, MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_CUSTOM, NULL);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       //insert column info..
+       /*insert column info.. */
        /*media*/
        ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_MEDIA], "media_uuid", MEDIA_SVC_DB_TYPE_TEXT, "PRIMARY KEY", 0, NULL, false, false, true);
        ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_MEDIA], "path", MEDIA_SVC_DB_TYPE_TEXT, "NOT NULL UNIQUE", 0, NULL, true, false, true);
@@ -742,43 +738,43 @@ void _media_svc_destroy_table_query()
        g_hash_table_remove_all(table);
        g_hash_table_destroy(table);
 
-       for(i=0; i<MEDIA_SVC_DB_LIST_MAX; i++)
+       for (i = 0; i < MEDIA_SVC_DB_LIST_MAX; i++)
                g_slist_free(column_list[i]);
 }
 
 static int __media_svc_db_upgrade(sqlite3 *db_handle, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       char * sql = NULL;
+       char *sql = NULL;
 
        ret = _media_svc_init_table_query();
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_MEDIA , MEDIA_SVC_DB_LIST_MEDIA, uid);
+       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_LIST_MEDIA, uid);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_FOLDER , MEDIA_SVC_DB_LIST_FOLDER, uid);
+       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_LIST_FOLDER, uid);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_PLAYLIST_MAP , MEDIA_SVC_DB_LIST_PLAYLIST_MAP, uid);
+       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_PLAYLIST_MAP, MEDIA_SVC_DB_LIST_PLAYLIST_MAP, uid);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_PLAYLIST , MEDIA_SVC_DB_LIST_PLAYLIST, uid);
+       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_PLAYLIST, MEDIA_SVC_DB_LIST_PLAYLIST, uid);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_ALBUM , MEDIA_SVC_DB_LIST_ALBUM, uid);
+       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_ALBUM, MEDIA_SVC_DB_LIST_ALBUM, uid);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_TAG_MAP , MEDIA_SVC_DB_LIST_TAG_MAP, uid);
+       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_TAG_MAP, MEDIA_SVC_DB_LIST_TAG_MAP, uid);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_TAG , MEDIA_SVC_DB_LIST_TAG, uid);
+       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_TAG, MEDIA_SVC_DB_LIST_TAG, uid);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_BOOKMARK , MEDIA_SVC_DB_LIST_BOOKMARK, uid);
+       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_BOOKMARK, MEDIA_SVC_DB_LIST_BOOKMARK, uid);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_STORAGE , MEDIA_SVC_DB_LIST_STORAGE, uid);
+       ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_LIST_STORAGE, uid);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
        ret = __media_svc_rebuild_view_query(db_handle, uid);
@@ -804,14 +800,13 @@ int _media_svc_sql_query(sqlite3 *db_handle, const char *sql_str, uid_t uid)
        return ret;
 }
 
-int _media_svc_sql_prepare_to_step(sqlite3 *handle, const char *sql_str, sqlite3_stmt** stmt)
+int _media_svc_sql_prepare_to_step(sqlite3 *handle, const char *sql_str, sqlite3_stmt **stmt)
 {
        int err = -1;
 
        media_svc_sec_debug("[SQL query] : %s", sql_str);
 
-       if(!STRING_VALID(sql_str))
-       {
+       if (!STRING_VALID(sql_str)) {
                media_svc_error("invalid query");
                return MS_MEDIA_ERR_INVALID_PARAMETER;
        }
@@ -820,7 +815,7 @@ int _media_svc_sql_prepare_to_step(sqlite3 *handle, const char *sql_str, sqlite3
        sqlite3_free((char *)sql_str);
 
        if (err != SQLITE_OK) {
-               media_svc_error ("prepare error %d[%s]", err, sqlite3_errmsg(handle));
+               media_svc_error("prepare error %d[%s]", err, sqlite3_errmsg(handle));
                if (err == SQLITE_CORRUPT) {
                        return MS_MEDIA_ERR_DB_CORRUPT;
                } else if (err == SQLITE_PERM) {
@@ -840,14 +835,13 @@ int _media_svc_sql_prepare_to_step(sqlite3 *handle, const char *sql_str, sqlite3
        return MS_MEDIA_ERR_NONE;
 }
 
-int _media_svc_sql_prepare_to_step_simple(sqlite3 *handle, const char *sql_str, sqlite3_stmt** stmt)
+int _media_svc_sql_prepare_to_step_simple(sqlite3 *handle, const char *sql_str, sqlite3_stmt **stmt)
 {
        int err = -1;
 
        media_svc_sec_debug("[SQL query] : %s", sql_str);
 
-       if(!STRING_VALID(sql_str))
-       {
+       if (!STRING_VALID(sql_str)) {
                media_svc_error("invalid query");
                return MS_MEDIA_ERR_INVALID_PARAMETER;
        }
@@ -856,7 +850,7 @@ int _media_svc_sql_prepare_to_step_simple(sqlite3 *handle, const char *sql_str,
        sqlite3_free((char *)sql_str);
 
        if (err != SQLITE_OK) {
-               media_svc_error ("prepare error %d[%s]", err, sqlite3_errmsg(handle));
+               media_svc_error("prepare error %d[%s]", err, sqlite3_errmsg(handle));
                if (err == SQLITE_CORRUPT) {
                        return MS_MEDIA_ERR_DB_CORRUPT;
                } else if (err == SQLITE_PERM) {
@@ -908,9 +902,9 @@ int _media_svc_sql_query_list(sqlite3 *handle, GList **query_list, uid_t uid)
        media_svc_debug("query list length : [%d]", length);
 
        for (idx = 0; idx < length; idx++) {
-               sql = (char*)g_list_nth_data(*query_list, idx);
-               if(sql != NULL) {
-                       //ret = _media_svc_sql_query(handle, sql);
+               sql = (char *)g_list_nth_data(*query_list, idx);
+               if (sql != NULL) {
+                       /*ret = _media_svc_sql_query(handle, sql); */
                        ret = media_db_request_update_db_batch(sql, uid);
                        if (ret != MS_MEDIA_ERR_NONE) {
                                media_svc_error("media_db_request_update_db_batch failed : %d", ret);
@@ -928,7 +922,7 @@ int _media_svc_sql_query_list(sqlite3 *handle, GList **query_list, uid_t uid)
 
 void _media_svc_sql_query_add(GList **query_list, char **query)
 {
-       *query_list = g_list_append( *query_list, *query);
+       *query_list = g_list_append(*query_list, *query);
 }
 
 void _media_svc_sql_query_release(GList **query_list)
@@ -982,7 +976,7 @@ int _media_db_check_corrupt(sqlite3 *db_handle)
        result = (char *)sqlite3_column_text(sql_stmt, 0);
        SQLITE3_FINALIZE(sql_stmt);
 
-       if(result != NULL) {
+       if (result != NULL) {
                media_svc_debug("result %s", result);
                if (strcasecmp(result, "OK"))
                        ret = MS_MEDIA_ERR_DB_CORRUPT;
@@ -1025,12 +1019,12 @@ int _media_svc_drop_media_table(sqlite3 *handle, const char *storage_id, uid_t u
 int _media_svc_update_media_view(sqlite3 *db_handle, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       char * sql = NULL;
+       char *sql = NULL;
        sqlite3_stmt *sql_stmt = NULL;
        int item_cnt = 0;
        int idx = 0;
        GList *storage_list = NULL;
-       char view_query[4096] = {0,};
+       char view_query[4096] = {0, };
        memset(view_query, 0x00, sizeof(view_query));
 
        snprintf(view_query, sizeof(view_query),  "DROP VIEW IF EXISTS %s; CREATE VIEW IF NOT EXISTS %s AS SELECT * from %s ", MEDIA_SVC_DB_VIEW_MEDIA, MEDIA_SVC_DB_VIEW_MEDIA, MEDIA_SVC_DB_TABLE_MEDIA);
@@ -1040,32 +1034,26 @@ int _media_svc_update_media_view(sqlite3 *db_handle, uid_t uid)
        ret = _media_svc_sql_prepare_to_step_simple(db_handle, sql, &sql_stmt);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       while (sqlite3_step(sql_stmt) == SQLITE_ROW)
-       {
-               if(STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 0)))
-               {
+       while (sqlite3_step(sql_stmt) == SQLITE_ROW) {
+               if (STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 0))) {
                        storage_list = g_list_append(storage_list, strdup((char *)sqlite3_column_text(sql_stmt, 0)));
                }
        }
        SQLITE3_FINALIZE(sql_stmt);
 
-       if((storage_list != NULL) && ( g_list_length(storage_list) > 0))
-       {
+       if ((storage_list != NULL) && (g_list_length(storage_list) > 0)) {
                item_cnt = g_list_length(storage_list);
 
-               for(idx = 0; idx < item_cnt; idx++)
-               {
+               for (idx = 0; idx < item_cnt; idx++) {
                        int table_cnt = 0;
-                       char * storage_id = NULL;
+                       char *storage_id = NULL;
                        storage_id = g_list_nth_data(storage_list, idx);
 
-                       if(STRING_VALID(storage_id))
-                       {
+                       if (STRING_VALID(storage_id)) {
                                /*Select list of storage*/
                                sql = sqlite3_mprintf("SELECT COUNT(*) FROM SQLITE_MASTER WHERE type='table' and name='%q'", storage_id);
                                ret = _media_svc_sql_prepare_to_step(db_handle, sql, &sql_stmt);
-                               if(ret != MS_MEDIA_ERR_NONE)
-                               {
+                               if (ret != MS_MEDIA_ERR_NONE) {
                                        SAFE_FREE(storage_id);
                                        continue;
                                }
@@ -1073,15 +1061,12 @@ int _media_svc_update_media_view(sqlite3 *db_handle, uid_t uid)
                                table_cnt = sqlite3_column_int(sql_stmt, 0);
                                SQLITE3_FINALIZE(sql_stmt);
 
-                               if(table_cnt > 0)
-                               {
-                                       char append_query[128] = {0,};
+                               if (table_cnt > 0) {
+                                       char append_query[128] = {0, };
                                        memset(append_query, 0x00, sizeof(append_query));
                                        snprintf(append_query, sizeof(append_query), " UNION SELECT * from '%s'", storage_id);
                                        strncat(view_query, append_query, strlen(append_query));
-                               }
-                               else
-                               {
+                               } else {
                                        media_svc_error("media table not exist for storage [%s]", storage_id);
                                }
 
index 2ec252f..997c4b3 100755 (executable)
@@ -42,7 +42,7 @@ void mediainfo_init_file_debug()
 {
        if (g_log_fp == NULL) {
                snprintf(_g_file_path, sizeof(_g_file_path), "/tmp/%s",
-                        "media-info");
+                        "media-info");
                if (access(_g_file_path, R_OK == 0)) {
                        remove(_g_file_path);
                }
@@ -90,7 +90,7 @@ void mediainfo_print_debug_time(char *time_string)
        gettimeofday(&time, NULL);
        totaltime =
            (double)(time.tv_sec * 1000000 + time.tv_usec -
-                    g_time_usec) / CLOCKS_PER_SEC;
+                    g_time_usec) / CLOCKS_PER_SEC;
 
        media_svc_debug("time [%s] : %f", time_string, totaltime);
 #endif
@@ -98,7 +98,7 @@ void mediainfo_print_debug_time(char *time_string)
 
 void
 mediainfo_print_debug_time_ex(long start, long end, const char *func_name,
-                             char *time_string)
+                              char *time_string)
 {
 #ifdef _PERFORMANCE_CHECK_
        double totaltime = 0.0;
@@ -106,6 +106,6 @@ mediainfo_print_debug_time_ex(long start, long end, const char *func_name,
        totaltime = (double)(end - start) / CLOCKS_PER_SEC;
 
        media_svc_debug("time [%s: %s] : %f", func_name, time_string,
-                     totaltime);
+                       totaltime);
 #endif
 }
index 46fc99c..ab3992c 100755 (executable)
@@ -28,7 +28,7 @@
 #include "media-svc-debug.h"
 #include "media-svc-localize-utils.h"
 
-#define SAFE_STRLEN(src) ((src)?strlen(src):0)
+#define SAFE_STRLEN(src) ((src) ? strlen(src) : 0)
 
 int _media_svc_check_utf8(char c)
 {
@@ -58,13 +58,12 @@ int SAFE_SNPRINTF(char **buf, int *buf_size, int len, const char *src)
 
        remain = *buf_size - len;
        if (remain > strlen(src) + 1) {
-               temp_len = snprintf((*buf)+len, remain, "%s", src);
+               temp_len = snprintf((*buf) + len, remain, "%s", src);
                return temp_len;
-       }
-       else {
+       } else {
                char *temp;
-               while(1) {
-                       temp = realloc(*buf, *buf_size*2);
+               while (1) {
+                       temp = realloc(*buf, *buf_size * 2);
                        if (NULL == temp)
                                return -1;
                        *buf = temp;
@@ -73,14 +72,14 @@ int SAFE_SNPRINTF(char **buf, int *buf_size, int len, const char *src)
                        if (remain > strlen(src) + 1)
                                break;
                }
-               temp_len = snprintf((*buf)+len, remain, "%s", src);
+               temp_len = snprintf((*buf) + len, remain, "%s", src);
                return temp_len;
        }
 }
 
 static int __media_svc_remove_special_char(const char *src, char *dest, int dest_size)
 {
-       int s_pos=0, d_pos=0, char_type, src_size;
+       int s_pos = 0, d_pos = 0, char_type, src_size;
 
        if (NULL == src) {
                media_svc_error("The parameter(src) is NULL");
@@ -93,11 +92,10 @@ static int __media_svc_remove_special_char(const char *src, char *dest, int dest
                char_type = _media_svc_check_utf8(src[s_pos]);
 
                if (0 < char_type && char_type < dest_size - d_pos && char_type <= src_size - s_pos) {
-                       memcpy(dest+d_pos, src+s_pos, char_type);
+                       memcpy(dest + d_pos, src + s_pos, char_type);
                        d_pos += char_type;
                        s_pos += char_type;
-               }
-               else {
+               } else {
                        media_svc_error("The parameter(src:%s) has invalid character set", src);
                        dest[d_pos] = '\0';
                        return MS_MEDIA_ERR_INVALID_PARAMETER;
@@ -117,10 +115,10 @@ static inline int __media_svc_collation_str(const char *src, char **dest)
        char region[50] = {0};
        char *lang = NULL;
 
-       //lang = vconf_get_str(VCONFKEY_LANGSET);
-       if(lang != NULL) {
-               if(strlen(lang) < 50) {
-                       strncpy (region, lang, strlen(lang));
+       /*lang = vconf_get_str(VCONFKEY_LANGSET); */
+       if (lang != NULL) {
+               if (strlen(lang) < 50) {
+                       strncpy(region, lang, strlen(lang));
                        free(lang);
                } else {
                        media_svc_error("Lang size error(%s)", lang);
@@ -137,7 +135,7 @@ static inline int __media_svc_collation_str(const char *src, char **dest)
        collator = ucol_open(region, &status);
 
        media_svc_retvm_if(U_FAILURE(status), MS_MEDIA_ERR_INTERNAL,
-                       "ucol_open() Failed(%s)", u_errorName(status));
+                          "ucol_open() Failed(%s)", u_errorName(status));
 
        u_strFromUTF8(NULL, 0, &size, src, strlen(src), &status);
        if (U_FAILURE(status) && status != U_BUFFER_OVERFLOW_ERROR) {
@@ -148,7 +146,7 @@ static inline int __media_svc_collation_str(const char *src, char **dest)
        status = U_ZERO_ERROR;
        tmp_result = calloc(1, sizeof(UChar) * (size + 1));
        u_strFromUTF8(tmp_result, size + 1, NULL, src, -1, &status);
-       if (U_FAILURE(status)){
+       if (U_FAILURE(status)) {
                media_svc_error("u_strFromUTF8 Failed(%s)", u_errorName(status));
                free(tmp_result);
                ucol_close(collator);
@@ -157,7 +155,7 @@ static inline int __media_svc_collation_str(const char *src, char **dest)
 
        size = ucol_getSortKey(collator, tmp_result, -1, NULL, 0);
        *dest = calloc(1, sizeof(uint8_t) * (size + 1));
-       size = ucol_getSortKey(collator, tmp_result, -1, (uint8_t *)*dest, size + 1);
+       size = ucol_getSortKey(collator, tmp_result, -1, (uint8_t *) * dest, size + 1);
 
        ucol_close(collator);
        free(tmp_result);
index c51e3d7..540a369 100755 (executable)
 #define CHINESE_UNICODE_START                          0x4E00
 #define CHINESE_UNICODE_END                                    0x9FA5
 
-static const char* const pinyin_spell_table[] = {
-       "yi","ding|zheng","kao|qiao|yu","qi","shang","xia","mo","wan|mo","zhang","san",
-       "shang","xia","qi|ji","bu|fou","yu","mian","gai","chou","chou","zhuan",
-       "qie|ju","pi","shi","shi","qiu","bing","ye","cong","dong","si",
-       "cheng","diu","qiu","liang","diu","you","liang","yan","bing","sang",
-       "gun","jiu","ge","ya","pan","zhong","ji","jie","feng","guan|kuang",
-       "chuan","chan","lin","zhuo","zhu","ba","wan","dan","wei","zhu",
-       "jing","li","ju","pie","fu","yi|ji","yi","nai","wu","jiu",
-       "jiu","tuo|zhe","me|yao|mB","yi","ho","zhi","wu","zha","hu","fa",
-       "le|yue","yin","ping","pang","qiao","hu","guai","cheng|sheng","cheng|sheng","yi",
-       "hao","zhe","mie|nie","jiu","qi","ye","xi","xiang","gai","jiu",
-       "hal","hol","shu","dou","shi","ji","nang","kal","keol","tol",
-       "mol","ol","mai","luan","cal","ru","xue","yan","phoi","sha",
-       "na","qian","sol","er","zu","ceor","qian|gan","zhi|luan","gui","qian",
-       "luan","lin","yi","jue","liao|le","ma","yu","zheng","shi","shi",
-       "er","chu","yu","kui","yu","yun","hu","qi","wu","jing",
-       "si","sui","gen","gen","ya","xie|suo","ya","qi|zhai","ya","ji|qi",
-       "tou","wang|wu","kang","da","jiao","hai","yi","chan","heng|peng","mu",
-       "ye","xiang","jing","ting","liang","xiang","jing","ye","qin|qing","bo",
-       "you","xie","dan","lian","duo","wei|men","ren","ren","ji","ji",
-       "wang","yi","shi|shen","ren","le","ding","ze","jin","pu","chou|qiu",
-       "ba","zhang","jin","jie","bing","reng","cong|zong","fo","jin|san","lun",
-       "bing","cang","zi|zai","shi","ta","zhang","fu","xian","xian","tuo|cha|duo",
-       "hong","tong","ren","qian","gan|han","yi|ge","bo","dai","ling","yi",
-       "chao","chang|zhang","sa","chang","yi","mu","men","ren","fan","chao|miao",
-       "yang|ang","qian","zhong","pi","wo","wu","jian","jia|jie","yao|fo","feng",
-       "cang","ren","wang","fen|bin","di","fang","zhong","qi","pei","yu",
-       "diao","dun","wen","yi","xin","kang","yi","ji","ai","wu",
-       "ji|qi","fu","fa","xiu|xu","jin","pi","dan","fu","tang","zhong",
-       "you","huo","hui|kuai","yu","cui","yun","san","wei","chuan|zhuan","che|ju",
-       "ya","qian","shang","chang","lun","cang|chen","xun","xin","wei","zhu",
-       "chi","xian|xuan","nu","bo|bai|ba","gu","ni","ni","xie","ban","xu",
-       "ling","zhou","shen","qu","si|ci","peng","si|shi","qie|jia|ga","pi","zhi",
-       "si","yi|chi","zheng","dian|tian","han|gan","mai","dan","zhu","bu","qu",
-       "bi","zhao|shao","ci","wei","di","zhu","zuo","you","yang","ti|ben",
-       "zhan|dian","he","bi","tuo","she","yu","yi|die","fo|fu|bi|bo","zuo","gou|kou",
-       "ning","tong","ni","xian","qu","yong","wa","qian","shi","ka",
-       "bao","pei","hui|huai","ge","lao","xiang","ge","yang","bai","fa",
-       "ming","jia","er|nai","bing","ji","hen","huo","gui","quan","tiao",
-       "jiao","ci","yi","shi","xing","shen","tuo","kan","zhi","gai",
-       "lai","yi","chi","kua","gong","li","yin","shi","mi","zhu",
-       "xu","you","an","lu","mou","er","lun","dong|tong","cha","chi",
-       "xun","gong","zhou","yi","ru","cun","xia","si","dai","lv",
-       "ta","jiao|yao","zhen","ce|ze|zhai","qiao","kuai","chai","ning","nong","jin",
-       "wu","hou","jiong","cheng|ting","zhen","zuo","hao","qin","lv","jv",
-       "shu|dou","ting","shen","tuo|tui","bo","nan","xiao","bian|pian","tui","yu",
-       "xi","cu","e","qiu","xu","guang","ku","wu","jun","yi",
-       "fu","liang","zu","qiao|xiao","li","yong","hun","jing","qian","san",
-       "pei","su","fu","xi","li","fu","ping","bao","yu|shu","si|qi",
-       "xia","xin|shen","xiu","yu","di","che|ju","chou","zhi","yan","liang|lia",
-       "li","lai","si","jian","xiu","fu","huo","ju","xiao","pai",
-       "jian","biao","chu|ti","fei","feng","ya","an","bei","yu","xin",
-       "bi","hu|chi","chang","zhi","bing","jiu","yao","cui|zu","liang|lia","wan",
-       "lai","cang","zong","ge","guan","bei","tian","shu","shu","men",
-       "dao","tan","jue","chui","xing","peng","tang|chang","hou","yi","qi",
-       "ti","gan","liang|jing","jie","sui","chang","jie","fang","zhi","kong",
-       "juan","zong","ju","qian","ni","lun","zhuo","wo|wei","luo","song",
-       "leng","hun","dong","zi","ben","wu","ju","nai","cai","jian",
-       "zhai","ye","zhi","sha","qing","ning","ying","cheng|chen","qian","yan",
-       "ruan","zhong|tong","chun","jia","ji|jie","wei","yu","bing","ruo","ti",
-       "wei","pian","yan","feng","tang|dang","wo","e","xie","che","sheng",
-       "kan","di","zuo","cha","ting","bei","xie","huang","yao","zhan",
-       "chou|qiao","an","you","jian","xu","zha","ci","fu","bi","zhi",
-       "zong","mian","ji","yi","xie","xun","cai|si","duan","ce|ze|zhai","zhen",
-       "ou","tou","tou","bei","zan|za|zBn","lv|lou","jie","wei","fen","chang",
-       "kui|gui","sou","zhi|si","su","xia","fu","yuan","rong","li","nu",
-       "yun","jiang|gou","ma","bang","dian","tang","hao","jie","xi","shan",
-       "qian|jian","que|jue","cang|chen","chu","san","bei","xiao","rong","yao","ta|tan",
-       "suo","yang","fa","bing","jia","dai","zai","tang","gu","bin",
-       "chu","nuo","can","lei","cui","yong","zao|cao","zong","peng","song",
-       "ao","chuan|zhuan","yu","zhai","qi|cou","shang","chuang","jing","chi","sha",
-       "han","zhang","qing","yan","di","xie","lv|lou","bei","piao|biao","jin",
-       "lian","lu","man","qian","xian","tan","ying","dong","zhuan","xiang",
-       "shan","qiao","jiong","tui","zun","pu","xi","lao","chang","guang",
-       "liao","qi","cheng|deng","zhan|zhuan|chan","wei","ji","bo","hui","chuan","tie|jian",
-       "dan","jiao|yao","jiu","seng","fen","xian","yu|ju","e|wu","jiao","jian",
-       "tong|zhuang","lin","bo","gu","xian","su","xian","jiang","min","ye",
-       "jin","jia|jie","qiao","pi","feng","zhou","ai","sai","yi","jun",
-       "nong","chan|tan|shan","yi","dang","jing","xuan","kuai","jian","chu","dan",
-       "jiao","sha","zai","can","bin","an","ru","tai","chou","chai",
-       "lan","ni|yi","jin","qian","meng","wu","ning","qiong","ni","chang",
-       "lie","lei","lv","kuang","bao","yu","biao","zan","zhi","si",
-       "you","hao","qing","chen","li","teng","wei","long","chu","chan",
-       "rang|xiang","shu","hui|xie","li","luo","zan","nuo","tang","yan","lei",
-       "nang","er","wu","yun","zan","yuan","xiong","chong","zhao","xiong",
-       "xian","guang","dui|rui|yue","ke","dui|rui|yue","mian","tu","chang|zhang","er","dui|rui|yue",
-       "er|ni","jin","tu","si","yan","yan","shi","shike","dang","qibnke",
-       "dou","gongfenPPPU","hboke","shen","dou","baike","jing","gongli","huang","ru",
-       "wang","nei","quan","liang","yu|shu","ba","gong","liu|lu","xi","han",
-       "lan","gong","tian","guan","xing","bing","qi|ji","ju","dian","zi|ci",
-       "bun","yang","jian","shou","ji","yi","ji","chan","jiong","mao",
-       "ran","nei|na","yuan","mao","gang","ran","ce","jiong","ce","zai",
-       "gua","jiong","mao","zhou","mao|mo","gou","xu","mian","mi","rong",
-       "yin|you","xie","kan","jun","nong","yi","shen","shi","guan","meng",
-       "zhong","zui","yuan","ming","kou","lin","fu","xie","mi","bing",
-       "dong","tai","gang","feng|ping","bing","hu","chong","jue","ya","kuang",
-       "ye","leng","pan","fa","min","dong","xian","lie","qia","jian",
-       "jing|cheng","sou","mei","tu","qi","gu","zhun","song","jing|cheng","liang",
-       "qing","diao","ling","dong","gan","jian","yin","cou","ai","li",
-       "cang","ming","zhun","cui","si","duo","jin","lin","lin","ning",
-       "xi","du","ji","fan","fan","fan","feng","ju","chu","yi kB|yi kB no bo li|tB ko",
-       "feng","mu","zhi","fu","feng","ping","feng","kai","huang","kai",
-       "gan","deng","ping","kan|qian","xiong","kuai","tu","ao|wa","chu","ji",
-       "dang","han","han","zao","dao","diao","dao","ren","ren","chuang",
-       "fen","qie","yi","ji","kan","qian","cun","chu","wen","ji",
-       "dan","xing","hua","wan","jue","li","yue","lie","liu","ze",
-       "gang","chuang","fu","chu","qu","diao","shan","min","ling","zhong",
-       "pan","bie","jie","jie","pao|bao","li","shan","bie","chan","jing",
-       "gua","geng","dao","chuang","kui","ku","duo","er","zhi","shua",
-       "quan|xuan","cha|sha","ci","ke","jie","gui","ci","gui","kai","duo",
-       "ji","ti","jing","dou","luo","ze","yuan","cuo","xiao|xue","kei|ke",
-       "la","qian","cha|sha","chuang","gua","jian","cuo","li","ti","fei",
-       "pou","chan","qi","chuang","zi","gang","wan","bao|bo","ji","duo",
-       "qing","yan|shan","du|zhuo","jian","ji","bao|bo","yan","ju","huo","sheng",
-       "jian","duo","zhi|duan","wu","gua","fu|pi","sheng","jian","ge","da|zha",
-       "kai","chuang","chuan","chan","tuan|zhuan","lu|jiu","li","peng","shan","piao",
-       "kou","jiao|chao","gua","qiao","jue","hua","zha","zhuo","lian","ju",
-       "pi","liu","gui","jiao|chao","gui","jian","jian","tang","huo","ji",
-       "jian","yi","jian","zhi","chan","zuan","mo","li","zhu","li",
-       "ya","quan","ban","gong","jia","wu","mai","lie","jin|jing","keng",
-       "xie|lie","zhi","dong","zhu|chu","nu","jie","qu","shao","yi","zhu",
-       "miao","li","jin|jing","lao","lao","juan","kou","yang","wa","xiao",
-       "mou","kuang","jie","lie","he","shi","ke","jin|jing","gao","bo|bei",
-       "min","chi","lang","yong","yong","mian","ke","xun","juan","qing",
-       "lu","bu","meng","chi","le|lei","kai","mian","dong","xu","xu",
-       "kan","wu","yi","xun","weng|yang","sheng","lao","mu","lu","piao",
-       "shi","ji","qin","jiang","jiao|chao","quan","xiang","yi","qiao","fan",
-       "juan","tong|dong","ju","dan","xie","mai","xun","xun","lv","li",
-       "che","rang|xiang","quan","bao","shao","yun","jiu","bao","gou","wu",
-       "yun","mo","xiong","gai","gai","bao","cong","yi","xiong","peng",
-       "ju","tao|yao","ge","pu","e","pao","fu","gong","da","jiu",
-       "gong","bi","hua","bei","nao","chi|shi","fang","jiu","yi","za",
-       "jiang","kang","jiang","kuang","hu","xia","qu","fan","gui","qie",
-       "zang|cang","kuang","fei","hu","yu","gui","kui|gui","hui","dan","kui|gui",
-       "lian","lian","suan","du","jiu","jue","xi","pi","qu|ou","yi",
-       "ke|qia","yan","bian","ni","qu|ou","shi","xun","qian","nian","sa",
-       "zu","sheng","wu","hui","ban","shi","xi","wan","hua","xie",
-       "wan","bei","zu|cu","zhuo","xie","dan|shan|chan","mai","nan|na","dan","ji",
-       "bo","shuai|lv","bu|bo","guan|kuang","bian","bu","zhan","qia|ka","lu","you",
-       "lu","xi","gua","wo","xie","jie","jie","wei","yang|ang","qiong",
-       "zhi","mao","yin","wei","shao","ji","que","luan","chi","juan",
-       "xie","xu","jin","que","wu","ji","e","qing","xi","san",
-       "chang|an|han","wei","e","ting","li","zhe|zhai","han|an","li","ya","ya",
-       "yan","she","di","zha|zhai","pang","ya","qie","ya","zhi|shi","ce",
-       "mang","ti","li","she","hou","ting","zui","cuo","fei","yuan",
-       "ce","yuan","xiang","yan","li","jue","sha|xia","dian","chu","jiu",
-       "jin","ao","gui","yan","si","li","chang","qian|lan","li","yan",
-       "yan","yuan","si|mou","gong|hong","lin|miao","rou|qiu","qu","qu","ke","lei",
-       "du","xian|xuan","zhuan","san","can|shen|cen|san","can|shen|cen|san","can|shen|cen|san","can|shen|cen|san","ai|yi","dai",
-       "you","cha","ji","you","shuang","fan","shou","guai","ba","fa",
-       "ruo","li","shu","zhuo|yi|li|jue","qu","shou","bian","xu","jia","pan",
-       "sou","ji","wei|yu","sou","die","rui","cong","kou","gu","ju|gou",
-       "ling","gua","tao|dao","kou","zhi","jiao","zhao|shao","ba","ding","ke",
-       "tai","chi","shi","you","qiu","po","ye|xie","hao","si","tan",
-       "chi","le","diao","ji","dug","hong","mie","xu|yu","mang","chi",
-       "ge","xuan|song","yao","zi","he|ge","ji","diao","dou|cun","tong","ming",
-       "hou","li","tu","xiang","zha","xia|he","ye","lv","a","ma|mB",
-       "ou","huo","yi","jun","chou","lin","tun","yin","fei","pi|bi",
-       "qin","qin","jie|ge","bu","fou|pi","ba","dun","fen","e|hua","han",
-       "ting","hang|keng","shun","qi","hong","zhi|zi","yin|shen","wu","wu","chao",
-       "na|ne","xue|chuo|jue","xi","chui","dou|ru","wen","hou","hou|hong|ou","wu|yu","gao",
-       "ya|yB","jun","lv","e","ge","wen","dai","qi","cheng","wu",
-       "gao","fu","jiao","hong","chi","sheng","na|ne","tun|tian","fu|?","yi",
-       "dai","ou","li","bei|bai","yuan|yun","wai|he|wo|wa|gua|guo","hua|qi","qiang","wu","e",
-       "shi","juan","pen","wen|min","ne","mou|m","ling","ran","you","di",
-       "zhou","shi","zhou","tie|che","xi","yi","qi|zhi","ping","zi|ci","gua|gu",
-       "zi|ci","wei","xu|hou|gou","he|a|ke","nao","xia","pei","yi","xiao|hao","shen",
-       "hu","ming","da|dan","qu","ju|zui","xian|gan","za","tuo","duo","pou",
-       "pao","bi","fu","yang","he","zha|za","he|huo|hu","hai","jiu","yong",
-       "fu","da","zhou","wa","ka","gu","ka|ga","zuo","bu","long",
-       "dong","ning","tuo","si","xian","huo","qi","er","e","guang",
-       "zha","die|xi","yi","lie","zi","mie","mi","zhi","yao","ji|xi|qia",
-       "zhou","ka|luo|lo|ge","shu|xun","zan|za|zBn","xiao","ke|hai","hui","kua","huai|shi","tao",
-       "xian","e|an","xuan","xiu","wai|he|wo|wa|gua|guo","yan|ye","lao","yi","ai","pin",
-       "shen","tong","hong","xiong","duo","wa|wB","ha","zai","you","die|di",
-       "pai","xiang","ai","gen|hen","kuang","ya","da","xiao","bi","yue|hui",
-       "nian","hua","xing","kuai","duo","po","ji|jie|zhai","nong","mou","yo",
-       "hao","yuan|yun","long","pou","mang","ge","o","chi","shao","li",
-       "na|nei|nB|ne","zu","he","ku","xiao","xian","lao","po|ba|bo","zhe","zha",
-       "liang|lang","ba","mie","lie|lv","sui","fu","bu","han","heng|hng","geng",
-       "chuo|yue","ge|jia","you","yan","gu","gu","bei|bai","han","suo","chun",
-       "yi","ai","jia|qian","tu","dan|xian|yan","wan","li","xi","tang","zuo",
-       "qiu","che","wu","zao","ya","dou","qi","di","qin","ma",
-       "ma","gong|hong","dou","ge","lao","liang","suo","zao","huan","leng",
-       "sha|shB","ji","zu","wo|wei","feng","jin|yin","hu|xia","qi","shou","wei",
-       "shua","chang","er|wa","li","qiang","an","jie|ze|zuo","yo","nian","yu",
-       "tian","lai","sha","xi","tuo","hu","ai","zhou|zhao|tiao","gou","ken",
-       "zhuo","zhuo|zhao","shang","di","heng","lan|lin","a","cai","qiang","zhun|tun|xiang|dui",
-       "wu","wen","cui|qi","sha|jie|die|ti","gu","qi","qi","tao","dan","dan",
-       "yue|wa","zi|ci","bi|tu","cui","chuo|chuai","he","ya","qi","zhe","fei",
-       "liang","xian","pi","sha","lB|la","ze","qing|ying","gua","pa","ze|shi",
-       "se","zhuan","nie","guo","luo","yan","di","quan","tan|chan|tuo","bo",
-       "ding","lang","xiao","ju","tang","chi","ti","an","jiu","dan",
-       "ka","yong","wei","nan","shan","yu","zhe","la","jie","hou",
-       "han","die|zha","zhou","chai","wai","nuo|re","huo|guo|xu","yin","zan|za|zBn","yao",
-       "o|wo","mian","hu","yun","chuan","hui","huan","huan|yuan|xuan|he","xi","he|ye",
-       "ji","kui","zhong|chuang","wei","sha","xu","huang","duo|zha","yan","xuan",
-       "liang","yu","sang","chi","qiao|jiao","yan","dan|shan|chan","pen|ben","can|sun|qi","li",
-       "yo","zha|cha","wei","miao","ying","pen","pbo","kui","xi","yu",
-       "jie","lou","ku","zao|qiao","hu","ti","yao","he|xiao|hu","sha|a","xiu",
-       "qiang","se","yong","su","gong|hong","xie","yi|ai","suo","ma|mB","cha",
-       "hai","ke","ta|da","sang","chen","ru","sou","wa|gu","ji","beng|pang",
-       "wu","xian|qian|qie","shi","ge","zi","jie","lao","weng","wa","si",
-       "chi","hao","suo","jia","hai|hei","suo","qin","nie","he","zi",
-       "sai","ng","ge","na","dia","ai","qiang","tong","bi","ao",
-       "ao","lian","zui|sui","zhe|zhu","mo","sou","sou","tan","di","qi",
-       "jiao","chong","jiao|dao","kai|ge","tan","shan|can","cao","jia","ai","xiao",
-       "piao","lou","ga","gu","xiao|jiao","hu","hui","guo","ou","xian",
-       "ze","chang","xu|shi","po","de|dei","ma","ma","hu","le","du",
-       "ga","tang","ye","beng","ying","sai","jiao","mi","xiao","hua",
-       "mai","ran","zuo","peng","lao","xiao","ji","zhu","chao|zhao","kui",
-       "zui","xiao","si","hao","fu|?","liao","qiao","xi","chu|xu|shou","tan|chan",
-       "dan|tan","hei|mo","xun","e","zun","fan|bo","chi","hui","zan","chuang",
-       "cu|za|he","dan","jue","tun|kuo","ceng","jiao","ye","xi","qi","hao",
-       "lian","xu|shi","deng","hui","yin","pu","jue","qin","xun","nie",
-       "lu","si","yan","ying","da","zhan","o","zhou|zhuo","jin","nong",
-       "yue|hui","xie","qi","e","zao","yi","shi","jiao|qiao|chi","yuan","ai",
-       "yong","jue|xue","kuai","yu","pen","dao","ga","xin|hen","dun","dang",
-       "xin","sai","pi","pi","yin","zui","ning","di","lan","ta",
-       "huo|o","ru","hao","he|xia","yan","duo","xiu|pi","zhou|chou","ji|jie|zhai","jin",
-       "hao","ti","chang","xun","me","ca|cha","ti","lu","hui","bo|pao|bao",
-       "you","nie","yin","hu","mei|me|mo","hong","zhe","li","liu","xie|hai",
-       "nang","xiao","mo","yan","li","lu","long","po","dan","chen",
-       "pin","pi","xiang","huo","me","xi","duo","ku","yan","chan",
-       "ying","rang","dian","la","ta","xiao","jiao|jue","chuo","huan","huo",
-       "zhuan","nie","xiao","ca","li","chan","chai","li","yi","luo",
-       "nang","za|zan|can","su","xi","zeng","jian","yan|za|nie","zhu","lan","nie",
-       "nang","ramo","luo","wei|guo","hui","yin","qiu","si","nin","jian|nan",
-       "hui","xin","yin","nan","tuan","tuan","dun|tun","kang","yuan","jiong",
-       "pian","yun","cong","hu","hui","yuan","e","guo","kun","cong",
-       "wei|tong","tu","wei","lun","guo","qun","ri","ling","gu","guo",
-       "tai","guo","tu","you","guo","yin","hun","pu","yu","han",
-       "yuan","lun","quan|juan","yu","qing","guo","chuan|chui","wei","yuan","quan|juan",
-       "ku","pu","yuan","yuan","ya","tuan","tu","tu","tuan","lve",
-       "hui","yi","huan|yuan","luan","luan","tu","ya","tu","ting","sheng",
-       "pu","lu","kuai","ya","zai","wei|xu","ge","yu|zhun","wu","gui",
-       "pi","yi","di|de","qian|su","qian","zhen","zhuo","dang","qia","xia",
-       "shan","kuang","chang","qi|yin","nie","mo","ji","jia","zhi","zhi",
-       "ban","xun","yi","qin","mei|fen","jun","rong|keng","tun|dun","fang","ben|fen",
-       "ben","tan","kan","huai|pei|pi","zuo","keng","bi","jing","di|lan","jing",
-       "ji","kuai","di","jing","jian","tan","li","ba","wu","fen",
-       "zhui","po","pan|ban","tang","kun","qu","tan","zhi","tuo","gan",
-       "ping","dian","gua","ni","tai","pi","jiong","yang","fo","ao",
-       "lu","qiu","mu","ke","gou","xue","fa","di|chi","che","ling",
-       "zhu","fu","hu","zhi","chui","la","long","long","lu","ao",
-       "dai","pao","min","xing","dong|tong","ji","he","lv","ci","chi",
-       "lei","gai","yin","hou","dui","zhao","fu","guang","yao","duo",
-       "duo","gui","cha","yang","yin","fa","gou","yuan","die","xie",
-       "ken","shang","shou","e","bing","dian","hong","ya","kua","da",
-       "ka","dang","kai","hang","nao","an","xing","xian","yuan|huan","bang",
-       "pou|fu","ba","yi","yin","han","xu","chui","cen","geng","ai",
-       "beng|feng","di|fang","que|jue","yong","jun","xia|jia","di","mai|man","lang","juan",
-       "cheng","yan|shan","qin|jin","zhe","lie","lie","pu|bu","cheng","hua","bu",
-       "shi","xun","guo","jiong","ye","nian","di","yu","bu","ya",
-       "quan","sui|su","pi","qing|zheng","wan","ju","lun","zheng|cheng","kong","chong|shang",
-       "dong","dai","tan","an","cai","chu|tou","beng","xian|kan","zhi","duo",
-       "yi|shi","zhi","yi","pei","ji","zhun","qi","sao","ju","ni",
-       "ku","ke","tang","kun","ni","jian","dui","jin","gang","yu",
-       "e","peng|beng","gu","tu","leng","fang","ya","qian|zan|jian","kun","an",
-       "shen","duo|hui","nao","tu","cheng","yin","huan","bi","lian","guo",
-       "die","zhuan","hou","bao|bu|pu","bao","yu","di","mao|mou|wu","jie","ruan",
-       "e|ai|ye","geng","kan","zong","yu","huang","e","yao","yan","bao",
-       "ji","mei","chang","du","tuo","yin","feng","zhong","jie","jin",
-       "feng","gang","chuan","jian","ping","lei","jiang","huang","leng","duan",
-       "wan","xuan","xi","ji","kuai","ying","ta","cheng","yong","kai",
-       "su","su","shi","mi","ta","weng","cheng","tu","tang","que",
-       "zhong","li","peng","bang","sai|se","zang","dui","tian","wu","zheng",
-       "xun","ge","zhen","ai","gong","yan","xian","tian|zhen","yuan","wen",
-       "xie","liu","hai","lang","chang","peng","beng","chen","lu","lu",
-       "ou|qiu","qian|zan|jian","mei","mo","zhuan|tuan","shuang","shu","lou","chi","man",
-       "biao","jing","qi","shu","zhi|di","zhang","kan","yong","dian","chen",
-       "zhi|zhuo","xi","guo","qiang","jin","shang","shang","mu","cui","yan",
-       "ta","zeng","qian","qiang","liang","wei","zhui","qiao","zeng","xu",
-       "shan","shan","fa","pu","kuai|tui","tuan|dong","fan","qiao|que","mo","dun",
-       "dun","zun|dun","di","sheng","duo|hui","duo","tan","deng","wu","fen",
-       "huang","tan","da","ye","zhu","jian","ao","qiang","ji","qiao|ao",
-       "ken","yi|tu","pi","bi","dian","jiang","ye","yong","xue|bo|jue","tan",
-       "lan","ju","huai","dang","rang","qian","xun","xian|lan","xi","he",
-       "ai","ya","dao","hao","ruan","jin","lei","kuang","lu","yan",
-       "tan","wei","huai","long","long","rui","li","lin","rang","chan",
-       "xun","yan","lei","ba","wan","shi","ren","san","zhuang","zhuang",
-       "sheng","yi","mai","ke|qiao","zhu","zhuang","hu","hu","kun","yi",
-       "hu","xu","kun","shou","mang","dun","shou","yi","zhi|zhong","gu|ying",
-       "chu","jiang|xiang","feng|pang","bei","zhai","bian","sui","qun","ling","fu",
-       "cuo","xia","xiong|xuan","xie","nao","xia","kui","xi","wai","yuan|wan",
-       "mao|wan","su","duo","duo","ye","qing","yi","gou","gou","qi",
-       "meng","meng","yin","huo","chen","da|dai","ce","tian","tai","fu",
-       "guai","yao","yang","hang|ben","gao","shi","tao|ben","tai","tou","yan|tao",
-       "bi","yi","kua","jia|ga|xia","duo","hua","kuang","yun","jia|ga|xia","ba",
-       "en","lian","huan","di|ti","yan","pao","juan","qi|ji","nai","feng",
-       "xie","fen","dian","quan|juan","kui","zou","huan","qi|qie|xie","kai","she|chi|zha",
-       "ben","yi","jiang","tao","zang|zhuang","ben","xi","huang","fei","diao",
-       "xun|zhui","beng","dian","ao","she","weng","po|ha|tai","ao|yu","wu","ao|yu",
-       "jiang","lian","duo","yun","jiang","shi","fen","huo","bi","luan",
-       "duo|che","nv","nu","ding|tian","nai","qian","jian","ta|jie","jiu","nuan",
-       "cha","hao","xian","fan","ji","shuo","ru","fei|pei","wang","hong",
-       "zhuang","fu","ma","dan","ren","fu|you","jing","yan","hai|jie","wen",
-       "zhong","pa","du","ji","keng|hang","zhong","yao","jin","yun","miao",
-       "fou|pei|pi","chi","yue|jue","zhuang","niu","yan","na|nan","xin","fen","bi",
-       "yu","tuo","feng","wan|yuan","fang","wu","yu","gui","du","ba",
-       "ni","zhou","zhuo","zhao","da","ni|nai","yuan","tou","xian|xuan|xu","zhi|yi",
-       "e","mei","mo","qi","bi","shen","qie","e","he","xu",
-       "fa","zheng","min","ban","mu","fu","ling","zi","zi","shi",
-       "ran","shan","yang","gan","jie","gu","si","xing","wei","zi",
-       "ju","shan","pin","ren","yao","dong","jiang","shu","ji","gai",
-       "xiang","hua|huo","juan","jiao|xiao","gou|du","mu|lao","jian","jian","yi","nian",
-       "zhi","zhen","ji","xian","heng","guang","jun|xun","kua|hu","yan","ming",
-       "lie","pei","e","you","yan","cha","shen|xian","yin","shi","gui",
-       "quan","zi","song","wei","hong","wa","lou","ya","rao","jiao",
-       "luan","ping","xian","shao","li","cheng|sheng","xie","mang","fu","suo",
-       "wu|mu","wei","ke","chuo|lai","chuo","ting","niang","xing","nan","yu",
-       "na|nuo","pou|bi","nei|sui","juan","shen","zhi","han","di","zhuang","e",
-       "pin","tui","man","mian","wu|yu","yan","wu","xi|ai","yan","yu",
-       "si","yu","wa","li","xian","ju","qu","zhui|shui","qi","xian",
-       "zhuo","dong","chang","lu","ai|e","e","e","lou","mian","cong",
-       "pou|pei|bu","ju","po","cai","ling","wan","biao","xiao","shu","qi",
-       "hui","fu|fan","wo","wo","tan","fei","fei","jie","tian","ni",
-       "quan|juan","jing","hun","jing","qian|jin","dian","xing","hu","wan|wa","lai",
-       "bi","yin","zhou|chou","chuo|nao","fu","jing","lun","an|n<e","lan","hun|kun",
-       "yin","ya","ju","li","dian","xian","huB|dB tBi","hua","ying","chan",
-       "shen","ting","dang|yang","yao","wu","nan","ruo|chuo","jia","tou|yu","xu",
-       "yu","wei","di|ti","rou","mei","dan","ruan|nen","qin","hui","wo",
-       "qian","chun","miao","fu","jie","duan","yi|pei","zhong","mei","huang",
-       "mian","an","ying","xuan","jie","wei","mei","yuan","zheng","qiu",
-       "ti","xie","tuo|duo","lian","mao","ran","si","pian","wei","wa",
-       "cu","hu","ao|yun|wo","jie","bao","xu","tou|yu","gui","chu|zou","yao",
-       "pi","xi","yuan","ying","rong","ru","chi","liu","mei","pan",
-       "ao|yun|wo","ma","gou","kui","qin|shen","jia","sao","zhen","yuan","jie|suo",
-       "rong","ming","ying","ji","su","niao","xian","tao","pang","lang",
-       "nao","biao","ai","pi","pin","yi","piao","yu","lei","xuan",
-       "man","yi","zhang","kang","yong","ni","li","di","gui","yan",
-       "jin","zhuan","chang","ze","han|nan","nen","lao","mo","zhe","hu",
-       "hu","ao","nen","qiang","ma","pie","gu","wu","qiao","tuo",
-       "zhan","miao","xian","xian","mo","liao","lian","hua","gui","deng",
-       "zhi","xu","yi","hua","xi","kui","rao","xi","yan","chan",
-       "jiao","mei","fan","fan","xian|yan|jin","yi","hui","jiao","fu","shi",
-       "bi","shan","sui","qiang","lian","huan|xuan|qiong","xin","niao","dong","yi",
-       "can","ai","niang","ning","mo","tiao","chou","jin","ci","yu",
-       "pin","rong","ru","nai","yan","tai","ying","qian","niao","yue",
-       "ying","mian","bi","mo","shen","xing","ni","du","liu","yuan",
-       "lan","yan","shuang","ling","jiao","niang","lan","xian|qian","ying","shuang",
-       "xie|hui","huan|quan","mi","li","luan","yan","zhu|chuo","lan","zi","jie",
-       "jue","jue","kong","yun","zi|ma","zi","cun","sun|xun","fu","bei",
-       "zi","xiao","xin","meng","si","tai","bao","ji","gu","nu",
-       "xue","you","zhuan","hai","luan","sun|xun","nao","mie","cong","qian",
-       "shu","chan|can","ya","zi","ni","fu","zi","li","xue","bo",
-       "ru","nai","nie","nie","ying","luan","mian","ning","rong","ta",
-       "gui","zhai","qiong","yu","shou","an","tu|jia","song","wan","rou",
-       "yao","hong","yi","jing","zhun","mi|fu","zhu","dang","hong","zong",
-       "guan","zhou","ding","wan|yuan","yi","bao","shi","shi","chong","shen",
-       "ke","xuan","shi","you","huan","yi","tiao","shi","xian","gong",
-       "cheng","qun","gong","xiao","zai","zha","bao|shi","hai","yan","xiao",
-       "jia|jiB","cai","chen","rong","huang","mi","kou","kuan","bin","su|xiu",
-       "cai","zan","ji","yuan","ji","yin","mi","kou","qing","he",
-       "zhen","jian","fu","ning","bing","huan","mei","qin","han","yu",
-       "shi","ning","jin|qin","ning","zhi","yu","bao","kuan","ning","qin",
-       "mo","cha","ju|lou","gua","qin","hu","wu","liao","shi","ning",
-       "zhai","shen","wei","xie","kuan","hui","liao","jun","huan","yi",
-       "yi","bao","qin","chong","bao","feng","cun","dui","si","xun",
-       "dao","l<e|luo","dui","shou","po","feng","zhuan","fu","she|ye|yi","kei|ke",
-       "jiang","jiang","zhuan","wei|yu","zun","xun","shu|zhu","dui","dao","xiao",
-       "jie|ji","shao","er","er","er","ga","jian","shu","chen","shang",
-       "shang","mo","ga","chang","liao","xian","xian","hun","you","wang",
-       "you","liao","liao","yao","long|mang|meng|pang","wang","wang","wang","ga","yao",
-       "duo","kui","zhong","jiu","gan","gu","gan","tui","gan","gan",
-       "shi","yin","chi|che","kao","ni","jin","wei|yi","niao|sui","ju","pi",
-       "ceng","xi","bi","ju","jie","tian","qu","ti","jie","wu",
-       "diao","shi","shi","ping|bing","ji","xie","zhen","xi","ni","zhan",
-       "xi","wei","man","e","lou","ping|bing","ti","fei","shu|zhu","xie|ti",
-       "tu","lv","lv","xi","ceng","lv","ju","xie","ju","jue",
-       "liao","jue","shu|zhu","xi","che|cao","tun|zhun","ni|ji","shan","wa","xian",
-       "li","an","hui","hui","hong|long","yi","qi","ren","wu","han|an",
-       "shen","yu","chu","sui","qi|kai","yin","yue","ban","yao","ang",
-       "ya","wu","jie","e","ji","qian","fen","wan","qi","cen",
-       "qian","qi","cha","jie","qu","gang","xian","ao","lan","dao",
-       "ba","zuo","zuo","yang","ju","gang","ke","gou","xue","po",
-       "li","tiao","ju","yan","fu","xiu","jia","ling","tuo","pi",
-       "ao","dai","kuang","yue","qu","hu","po","min","an","tiao",
-       "ling","di","ping","dong","zBi|ze mo","kui","xiu","mao","tong","xue",
-       "yi","bian","he","ke|ba","luo","e","fu|nie","xun","die","lu",
-       "en","er","gai","quan","tong|dong","yi","mu","shi","an","wei",
-       "huan","zhi|shi","mi","li","fa","tong","wei","you","qia","xia",
-       "li","yao","jiao|qiao","zheng","luan","jiao","e","e","yu","xie|ye",
-       "bu","qiao","qun","feng","feng","nao","li","you","xian","rong",
-       "dao","shen","cheng","tu","geng","jun","gao","xia","yin","wu",
-       "lang","kan","lao","lai","xian","que","kong","chong","chong","ta",
-       "lin","hua","ju","lai","qi","min","kun","kun","zu|cui","gu",
-       "cui","ya","ya","gang","lun","lun","ling","jue","duo","zheng",
-       "guo","yin","dong","han","zheng","wei","xiao","pi|bi","yan","song",
-       "jie","beng","zu","jue","dong","zhan|chan","gu","yin","zi","ze",
-       "huang","yu","wai|wei","yang|dang","feng","qiu","yang","ti","yi","zhi|shi",
-       "shi|die","zai","yao","e","zhu","kan|zhan","lv","yan","mei","han",
-       "ji","ji","huan","ting","sheng","mei","qian|kan","wu|mao","yu","zong",
-       "lan","ke|jie","yan","yan","wei","zong","cha","sui","rong","ke",
-       "qin","yu","qi","lou","tu","cui","xi","weng","cang","dang|tang",
-       "rong|ying","jie","kai|ai","liu","wu","song","kao|qiao","zi","wei","beng",
-       "dian","cuo","qin|qian","yong","nie","cuo","ji","shi","ruo","song",
-       "zong","jiang","liao","kang","yan","die|di","cen","ding","tu","lou",
-       "zhang","zhan|chan","zhan|chan","ao","cao","qu","qiang","wei","zui","dao",
-       "dao","xi","yu","pi|pei","long","xiang","ceng","bo","qin","jiao",
-       "yan","lao","zhan","lin","liao","liao","qin","deng","tuo","zun",
-       "jiao|qiao","jue|gui","yao","jiao","yao","jue","zhan|shan","yi","xue","nao",
-       "ye","ye","yi","nie","xian","ji","xie|jie","ke|jie","gui|xi|juan","di",
-       "ao","zui","wei","ni","rong","dao","ling","jie","yu","yue",
-       "yin","ru","jie","li|lie","gui|xi|juan","long","long","dian","ying|hong","xi",
-       "ju","chan","ying","kui","yan","wei","nao","quan","chao","cuan",
-       "luan","dian","dian","nie","yan","yan","yan","kui","yan","chuan",
-       "kuai","chuan","zhou","huang","jing|xing","xun","chao","chao","lie","gong",
-       "zuo","qiao","ju","gong","ge","wu","pu","pu","cha|chai|ci","qiu",
-       "qiu","ji","yi","si","ba","zhi","zhao","xiang|hang","yi","jin",
-       "xun","juan","pa","xun","jin","fu","za","bi","shi","bu",
-       "ding","shuai","fan","nie","shi","fen","pa","zhi","xi","hu",
-       "dan","wei","zhang","tang|nu","dai","mo|wa","pei","pa","tie","fu",
-       "lian","zhi","zhou","bo","zhi","di","mo","yi","yi","ping",
-       "qia","juan","ru","shuai","dai","zhen","shui","qiao","zhen","shi",
-       "qun","xi","bang","dai","gui","chou|dao","ping","zhang","jian|san","wan",
-       "dai","wei","chang","sha|qie","qi|ji","ze","guo","mao","zhu","hou",
-       "zhen","zheng","mi","wei","wo","fu","yi","bang","ping","die",
-       "gong","pan","huang","tao","mi","jia","teng","hui","zhong","shan|qiao|shen",
-       "man","mu","biao","guo","ze","mu","bang","zhang","jing","chan",
-       "fu","zhi","hu","fan","chuang|zhuang","bi","bi","zhang","mi","qiao",
-       "chan","fen","meng","bang","chou|dao","mie","chu","jie","xian","lan",
-       "gan","ping","nian","jian","bing","bing","xing","gan","yao","huan",
-       "you","you","ji","guang|an","pi","ting","ze","guang","zhuang","me|mo",
-       "qing","bi","qin","dun|tun","chuang","gui","ya","bai|ting","jie","xu",
-       "lu","wu","zhuang","ku","ying","di|de","pao","dian","ya","miao",
-       "geng","ci","fu","tong","pang","fei","xiang","yi","zhi","tiao",
-       "zhi","xiu","du|duo","zuo","xiao","tu","gui","ku","mang|meng|pang","ting",
-       "you","bu","bing|ping","cheng","lai","bei","ji|cuo","an","shu","kang",
-       "yong","tuo","song","shu","qing","yu","yu","miao","sou","ce",
-       "xiang","fei","jiu","e","gui|wei|hui","liu","sha|xia","lian","lang","sou",
-       "zhi","bu","qing","jiu","jiu","jin|qin","ao","kuo","lou","yin",
-       "liao","dai","lu","yi","chu","chan","tu","si","xin","miao",
-       "chang","wu","fei","guang","kao","kuai","bi","qiang|se","xie","lin",
-       "lin","liao","lu","ji","ying","xian","ting","yong","li","ting",
-       "yin","xun","yan","ting","di","po|pai","jian","hui","nai","hui",
-       "gong","nian","kai","bian","yi","qi","nong|long","fen","ju","yan",
-       "yi","zang","bi","yi","yi","er","san","shi","er","shi",
-       "shi","gong","diao","yin","hu","fu","hong","wu","tui","chi",
-       "jiang","ba","shen","di|ti|tui","zhang","jue|zhang","tao","fu","di","mi",
-       "xian","hu","chao","nu","jing","zhen","yi","mi","juan|quan","wan",
-       "shao","ruo","xuan|yuan","jing","diao","zhang","jiang","qiang|jiang","peng","dan|tan",
-       "qiang|jiang","bi","bi","she","dan|tan","jian","gou","ge","fa","bi",
-       "kou","jian","bie","xiao","dan|tan","guo","qiang|jiang","hong","mi","guo",
-       "wan","jue","xue","ji","gui","dang","lu","lu","tuan","hui",
-       "zhi","hui","hui","yi","yi","yi","yi","huo","huo","shan|xian",
-       "xing","wen","tong","yan","yan","yu","chi","cai","biao","diao",
-       "bin","peng|bang","yong","piao","zhang","ying","chi","chi","zhuo|bo","tuo|yi",
-       "ji","pang|fang","zhong","yi","wang","che","bi","di","ling","fo",
-       "wang","zheng","cu","wang","jing","dai","xi","xun","hen","yang",
-       "huai","lv","hou","wang|jia|wa","cheng|zheng","zhi","xu","jing","tu","cong",
-       "cong","lai","cong","de|dei","pai","xi","dong","ji","chang","zhi",
-       "cong|zong","zhou","lai","yu","xie","jie","jian","shi|ti","jia|xia","bian",
-       "huang","fu","xun","wei","pang","yao","wei","xi","zheng","piao",
-       "ti|chi","de","zhi|zheng","zhi|zheng","bie","de","zhong|chong","che","jiao|yao","hui",
-       "jiao","hui","mei","long","xiang","bao","qu|ju","xin","xin","bi",
-       "yi","le","ren","dao","ding|ting","gai","ji","ren","ren","chan",
-       "tan","te","te|tui","gan|han","yi|qi","shi|tai","cun","zhi","wang","mang",
-       "xi|lie","fan","ying","tian","min|wen","min|wen","zhong","chong","wu","ji",
-       "wu","xi","jia","you","wan","cong","song|zhong","kuai","yu|shu","bian",
-       "zhi","qi|shi","cui","chen","tai","tun|zhun|dun","qian|qin","nian","hun","xiong",
-       "niu","kuang|wang","xian","xin","kang|hang","hu","kai","fen","huai","tai",
-       "song","wu","ou","chang","chuang","ju","yi","bao","chao","min|men",
-       "pei","zuo|zha","zen","yang","kou|ju","ban","nu","nao|niu","zheng","pa",
-       "bu","tie|zhan","hu|gu","hu","cu|ju|zu","da","lian","si|sai","you|chou","di",
-       "dai","yi","tu|die","you","fu","ji","peng","xing","yuan","ni",
-       "guai","fei","xi","bi","you|yao","qie","xuan","cong","bing","huang",
-       "xu|xue","chu","bi|pi","shu","xi|shu","tan","yong","zong","dui","mi",
-       "gi","yi","shi","nen|nin","xun","shi","xi","lao","heng","kuang",
-       "mou","zhi","xie","lian","tiao|yao","huang","die","hao","kong","gui",
-       "heng","xi|qi|xu","xiao|jiao","shu","si","hu|kua","qiu","yang","hui","hui",
-       "chi","jia","yi","xiong","guai","lin","hui","zi","xu","chi",
-       "shang","nv","hen","en","ke","dong","tian","gong","quan|zhuan","xi",
-       "qia","yue","peng","ken","de","hui","e|wu","qiu","tong","yan",
-       "kai","ce","nao","yun","mang","yong","yong","yuan|juan","pi","kun",
-       "qiao","yue","yu|shu","tu","jie|ke","xi","zhe","lin","ti","han",
-       "hao|jiao","qie","ti","bu","yi","qian","hui","xi","bei","man|men",
-       "yi","heng","song","quan","cheng","kui|li","wu","wu","you","li",
-       "liang","huan","cong","yi|nian","yue","li","nin","nao","e","que",
-       "xuan","qian","wu","min","cong","fei","bei","de","cui","chang",
-       "men","li","ji","guan","guan","xing","dao","qi","kong","tian",
-       "lun","xi","kan","gun","ni","qing","chou","dun","guo","zhan",
-       "jing","wan","yuan|wan","jin","ji","lan|lin","yu|xu","huo","he","juan|quan",
-       "tan|dan","ti","ti","nian","wang","chuo|chui","hu","hun|men","xi","chang",
-       "xin","wei","hui","e|wu","suo|rui","zong","jian","yong","dian","ju",
-       "can","cheng","de","bei","qie","can","dan|da","guan","duo","nao",
-       "yun","xiang","zhui","die","huang","chun","qiong","re","xing","ce",
-       "bian","min","zong","ti|shi","qiao","chou","bei","xuan","wei","ge",
-       "qian","wei","yu","yu|tou","bi","xuan","huan","min","bi","yi",
-       "mian","yong","qi|kai","dang|shang|tang|yang","yin","e","chen|xin|dan","mao","ke|qia","ke",
-       "yu","ai","qie","yan","nuo","gan","yun","cong|song","sai|si","leng",
-       "fen","ying","kui","kui","que","gong|hong","yun","su","su|shuo","qi",
-       "yao","song","huang","ji","gu","ju","chuang","ni","xie","kai",
-       "zheng","yong","cao","xun","shen","bo","kai|xi","yuan","xi|xie","hun",
-       "yong","yang","li","cao|sao","tao","yin","ci","xu|chu","qian|qie","tai",
-       "huang","yun","shen","ming","gong|hong","she","cao|cong","piao","mu","mu",
-       "guo","chi","can","can","can","cui","min","te","zhang","tong",
-       "ao","shuang","man","guan","que","zao","jiu","hui","kai","lian",
-       "ou","song","qin|jin","yin","lv","shang","wei","tuan","man","qian",
-       "she","yong","qing","kang","di|chi","zhi|zhe","lou|lv","juan","qi","qi",
-       "yu","ping","liao","cong","you","chong","zhi","tong","cheng","qi",
-       "qu","peng","bei","bie","qiong","jiao","zeng","chi","lian","ping",
-       "kui","hui","qiao","cheng|deng|zheng","yin","yin","xi","xi","dan|da","tan",
-       "duo","dui","dui|dun|tun","su","jue","ce","xiao|jiao","fan","fen","lao",
-       "lao","chong","han","qi","xian","min","jing","liao","wu","can",
-       "jue","cu","xian","tan","sheng","pi","yi","chu","xian","nao|nang",
-       "dan","tan","jing","song","han","jiao|ji","wei","xuan|huan","dong","qin",
-       "qin","ju","cao|sao","ken","xie","ying","ao","mao","yi","lin",
-       "se","jun","huai","men","lan","ai","lin","yan","guo","xia",
-       "chi","yu","yin","dai","meng","ai|yi|ni","meng","dui","qi|ji","mo",
-       "lan|xian","men","chou","zhi","nuo","nuo","yan","yang","bo","zhi",
-       "kuang","kuang","you","fu","liu","mie","cheng","hui","chan","meng",
-       "lan","huai","xuan","rang","chan","ji","ju","huan","she","yi",
-       "lian","nan","mi","tang","jue","gang|zhuang","gang|zhuang","gang|zhuang","ge","yue",
-       "wu","jian","qu","shu","rong","xi|hu","cheng","wo","jie","ge",
-       "jian","qiang","huo","qiang","zhan","dong","qi","jia","die","zei",
-       "jia","ji","zhi","kan","ji","kui","gai","deng","zhan","qiang",
-       "ge","jian","jie","yu","jian","yan","lu","xi|hu","zhan","xi|hu",
-       "xi|hu","chuo","dai","qu","hu","hu","hu","e","shi","ti",
-       "mao","hu","li","fang","suo","bian|pian","dian","jiong","shang|jiong","yi",
-       "yi","shan","hu","fei","yan","shou","shou","cai","za|zha","qiu",
-       "le|li|cai","pu","ba|pa","da","reng","fan|fu","ru","zai","tuo","zhang",
-       "diao|di|yue|li","kang|gang","yu|wu","yu|wu|ku","han","shen","cha","tuo|chi|yi","gu|xi|ge|jie","kou",
-       "wu","den","qian","zhi","ren","kuo","men","sao","yang","niu",
-       "ban","che","rao","xi|cha|qi","qian|qin","ban","jia","yu","fu","ba|ao",
-       "xi|zhe","pi","di","zhi|sun|kan","e","den","zhao","cheng","ji","yan",
-       "kuang|wang|zai","bian","chao","ju","wen","hu|gu","yue","jue","ba","qin",
-       "dan|shen","zheng","yun","wan","ne|ni|rui|na","yi","shu","zhua","pou","tou",
-       "dou","kang","zhe|she","pou|fu","fu","pao","ba","ao|niu","ze|zhBi","tuan",
-       "kou","lun","qiang|cheng","yun","hu","bao","bing","zhi|zhai","peng","nan",
-       "bu|pu","pi","tai","yao|tao","zhen","zha","yang","bao","he|qia","ni",
-       "ye","di","chi","pi|pei","jia","mo|ma","mei","chen","ya","chou",
-       "qu","min","zhu","jia|ya","fu|bi","zha","zhu","dan","chai|ca","mu",
-       "nian","la","fu","pao","ban|pan","pai","lin","na","guai","qian",
-       "ju","tuo|ta|zhi","ba","tuo","tuo","ao|niu","ju|gou","zhuo","pan|pin|fan","zhao",
-       "bai","bai","di","ni","ju","kuo","long","jian","qia","yong",
-       "lan","ning","bo","ze|zhai","qian","hen","kuo|gua","shi","jie|jia","zheng",
-       "nin","gong","gong","quan","shuan","cun|zun","za|zan","kao","yi|chi|hai","xie",
-       "ce|se|chuo","hui","pin","zhuai|ye","shi|she","na","bai","chi","gua","zhi",
-       "kuo|guang","duo","duo","zhi","qie","an","nong","zhen","ge","jiao",
-       "kua|ku","dong","ru|na","tiao","lie","zha","lv","die|she","wa","jue",
-       "lie ri","ju","zhi","luan","ya","zhua|wo","ta","xie|jia","nao","dang",
-       "jiao","zheng","ji","hui","xian","yu","ai","tuo|shui","nuo","cuo",
-       "bo","geng","ti","zhen","cheng","suo|sB|shB","suo|sB|shB","keng|qian","mei","nong",
-       "ju","bang|peng","jian","yi","ting","shan","nuo","wan","xie|jia","cha",
-       "peng","jiao|ku","wu","jun","jiu","tong","kun","huo|chi","tu|shu|cha","zhuo",
-       "pou|fu","luo|lv","ba","han","shao","nie","juan","ze","shu|song|sou","ye|yu",
-       "jue|zhuo","bu","wan","bu|pu|zhi","zun","ye","zhai","lv","sou","tuo|shui",
-       "lao","sun","bang","jian","huan","dao","wei","wan|yu","qin","peng",
-       "she","lie","min","men","fu|bu","bai","ju","dao","wo|luo","ai",
-       "juan|quan","yue","zong","chen","chui","jie","tu","ben","na","nian|nie",
-       "ruo|wei|re","zuo","wo|xia","qi","xian","cheng","dian","sao","lun","qing|qian",
-       "gang","duo","shou","diao","pou","di","zhang","hun","ji","tao",
-       "qia","qi","pai","shu","qian|wan","ling","ye","ya","jue","zheng",
-       "liang","gua","ni|nie|yi","huo|xu","shan|yan","zheng|ding","lve","cai","tan","che",
-       "bing","jie","ti","kong","tui","yan","cuo","zou|zhou|chou","ju","tian",
-       "qian","ken","bai","pa","jie","lu","guai","ming","jie","zhi",
-       "dan|shan","meng","chan|xian|can|shan","sao","guan","peng","yuan","nuo","jian","zheng|keng",
-       "jiu|you","jian","yu","yan","kui","nan","hong","rou","pi|che","wei",
-       "sai|zong|cai","zou","xuan","miao","ti|di","nie","cha","shi","zong|song","zhen",
-       "yi","xun","huang|yong","bian","yang","huan","yan","zan|zuan","an","xu|ju",
-       "ya","wo","ke|qia","chuai|tuan|zhui","ji","ti|di","la","la","cheng","kai",
-       "jiu","jiu","tu","jie|qi","hui","gen","chong|dong","xiao","she|die|ye","xie",
-       "yuan","qian|jian","ye","cha","zha","bei","yao","wei","beng","lan",
-       "wen","qin","chan","ge","lou","zong","gen","jiao","gou","qin",
-       "rong","que","chou|zou","chuai","zhan","sun","sun","bo","chu","rong|nang",
-       "bang|peng","cuo","sao","e","yao","dao","zhi","nu|nuo|nou","la|xie|xian","jian",
-       "sou","qiu","gao","gan","shuo","sang","jin","mie","e","chui",
-       "nuo","shan","ta","jie|zhe","tang","pan|ban|po","ban","da","li","tao",
-       "hu|ku","zhi|nai","wa","hua","qian","wen","qiang|cheng","tian|shen","zhen","e",
-       "xie","na|nuo","quan","cha","zha","ge","wu","en","she","kang",
-       "she|nie","shu","bai","yao","bin","sou","tan","sa|sha|shai","chan|sun","suo",
-       "jiu|liu|liao|jiao|nao","chong","chuang","guai","bing","feng|peng","shuai","di|tu|zhi","qi|ji|cha","sou|song",
-       "zhai","lian","cheng","chi","guan","lu","luo","lou","zong","gai|xi",
-       "hu|chu","zha","qiang","tang","hua","cui","zhi|nai","mo|ma","jiang|qiang","gui",
-       "ying","zhi","ao|qiao","zhi","nie|che","man","chan|can","kou","chu","se|mi|su",
-       "tuan","jiao|chao","mo","mo","zhe","chan|xian|can|shan","keng|qian","biao","jiang","yao",
-       "gou","qian","liao","ji","ying","jue","pie","pie","lao","dun",
-       "xian","ruan","gui","zan|zen|qian","yi","xian","cheng","cheng","sa","nao",
-       "hong","si","han","heng|guang","da","zun","nian","lin","zheng|cheng","hui|wei",
-       "zhuang","jiao","ji","cao","dan","dan|shan","che","bo","che","jue",
-       "xiao|sou","liao","ben","fu","qiao","bo","cuo|zuo","zhuo","zhuan","wei|tuo",
-       "pu","qin","dun","nian","hua","xie","lu","jiao","cuan","ta",
-       "han","qiao|yao|ji","zhua|wo","jian","gan","yong","lei","nang","lu","shan",
-       "zhuo","ze|zhai","pu","chuo","ji","dang","se","cao","qing","qing|jing",
-       "huan","jie","qin","kuai","dan","xie","qia|jia|ye","pi|bo","bo|bai","ao",
-       "ju","ye","e","meng","sou","mi","ji","tai","zhuo","dao",
-       "xing","lan","ca","ju","ye","ru","ye","ye","ni","huo",
-       "jie","bin","ning","ge","zhi","zhi|jie","kuo","mo","jian","xie",
-       "lie|la","tan","bai","sou","lu","li|luo|yue","rao","ti|zhi|zhai","pan","yang",
-       "lei","ca|sa","shu","zan","nian","xian","jun|pei","huo","li|luo","la|lai",
-       "huan","ying","lu|luo","long","qian","qian","zan|cuan","qian","lan","xian|jian",
-       "ying","mei","rang","chan","weng","cuan","xie","she|nie","luo","jun",
-       "mi|mo","chi","zan|cuan","luan","tan","zuan","li|shai","dian","wa","dang",
-       "jiao","jue","lan","li|luo","nang","zhi","gui","gui","qi|yi|ji","xun",
-       "pu","pu","shou","kao","you","gai","yi","gong","gan|han","ban",
-       "fang","zheng","po","dian","kou","min","wu|mou","gu","he","ce",
-       "xiao","mi","chu|shou","ge|guo|e","di","xu","jiao","min","chen","jiu",
-       "shen","duo|dui","yu","chi","ao","bai","xu","jiao","duo|dui","lian",
-       "nie","bi","chang","dian","duo|que","yi","gan","san","ke","yan",
-       "dun|dui","qi|yi|ji","tou","xiao|xue","duo|que","jiao","jing","yang","xia","min",
-       "shu|shuo","ai|zhu","qiao","ai|zhu","zheng","di","chen","fu","shu|shuo","liao",
-       "qu","xiong|xuan","yi","jiao","shan","jiao","zhuo|zhu","yi|du","lian","bi",
-       "li|tai","xiao","xiao","wen","xue","qi","qi","zhai","bin","jue|jiao",
-       "zhai","lang","fei","ban","ban","lan","yu|zhong","lan","wei|men","dou",
-       "sheng","liao","jia","hu","xie","jia","yu","zhen","jiao","wo|guan",
-       "tou|tiao","dou","jin","chi","yin|zhi","fu","qiang","zhan","qu","zhuo",
-       "zhan","duan","zhuo","si","xin","zhuo","zhuo","qin","lin","zhuo",
-       "chu","duan","zhu","fang","chan|jie","hang","yu|wu","shi","pei","liu|you",
-       "mie","pang|bang","qi","zhan","mao","lv","pei","pi|bi","liu","fu",
-       "fang","xuan","jing","jing","ni","zu","zhao","yi","liu","shao",
-       "jian","en","yi","qi","zhi","fan","piao","fan","zhan","kuai",
-       "sui","yu","wu","ji","ji","ji","huo","ri","dan","jiu",
-       "zhi","zao","xie","tiao","xun","xu","ga","la","gan|han","han",
-       "tai|ying","di|de","xu","chan","shi","kuang","yang","shi","wang","min",
-       "min","tun|zhun","chun","wu","yun","bei","ang","ze","ban","jie",
-       "kun","sheng","hu","fang","hao","gui","chang","xuan","ming","hun",
-       "fen","qin","hu","yi","xi","xin","yan","ze","fang","tan",
-       "shen","ju","yang","zan","bing","xing","ying","xuan","po","zhen",
-       "ling","chun","hao","mei","zuo","mo","bian","xu","hun","zhao",
-       "zong","shi","shi","yu","fei","die|yi","mao","ni","chang","wen",
-       "dong","ai","bing","ang","zhou","long","xian","kuang","tiao","chao",
-       "shi","huang","huang","xuan","kui","xu|kua","jiao","jin","zhi","jin",
-       "shang","tong","hong","yan","gai","xiang","shai","xiao","ye","yun",
-       "hui","han","han","jun","wan","xian","kun","zhou","xi","sheng|cheng",
-       "sheng","bu","zhe","zhe","wu","wan","hui","hao","chen","wan",
-       "tian","zhuo","zui","zhou","pu","jing|ying","xi","shan","ni","xi",
-       "qing","qi|du","jing","gui","zheng","yi","zhi","an|yan","wan","lin",
-       "liang","cheng","wang","xiao","zan","fei","xuan","xuan","yi","xia",
-       "yun","hui","xu","min","kui","ye","ying","shu|du","wei","shu",
-       "qing","mao","nan","jian|lan","nuan","an","yang","chun","yao","suo",
-       "pu","ming","jiao","kai","hao","weng","chang","qi","hao","yan",
-       "li","ai","ji","ji","men","zan","xie","hao","mu","mu",
-       "cong","ni","zhang","hui","bao|pu","han","xuan","chuan","liao","xian",
-       "tan","jing","pie","lin","tun","xi","yi","ji","huang","dai",
-       "ye","ye","li","tan","tong","xiao","fei","shen","zhao","hao",
-       "yi","xiang","xing","shen","jiao","bao","jing","yan","ai","ye",
-       "ru","shu","meng","xun","yao","pu|bao","li","chen","kuang","die",
-       "liao","yan","huo","lu","xi","rong","long","nang","luo","luan",
-       "shai","tang","yan","zhu","yue","yue","qu","ye","geng","ye",
-       "hu","he","shu","cao","cao","sheng","man","zeng|ceng","zeng|ceng","ti",
-       "zui","can|qian|jian","xu","hui|kuai","yin","qie|he","fen","bi|pi","yue","you",
-       "ruan","peng","fen|ban","fu","ling","fei|ku","qu|xu|chun","ti","nv|ga","tiao",
-       "shuo","zhen","lang","lang","juan|zui","ming","huang|mang|wang","wang","tun","zhao|chao",
-       "ji","qi|ji","ying","zong","wang","tong|chuang","lang","lao","meng","long",
-       "mu","pin","wei","mo","ben","zha","shu|zhu","shu|zhu","teul","zhu|shu",
-       "ren","ba","piao|pu|po","duo","duo","dao|tiao|mu","li","qiu|gui","ji","jiu",
-       "bi","xiu","cheng","ci","sha","ru","za","quan","qian","yu|wu",
-       "gan","wu","cha","shan|sha","xun","fan","wu","zi","li","xing",
-       "cai","cun","ren|er","shao|biao","tuo|zhe","di|duo","zhang","mang","chi","yi",
-       "gu|gai","gong","du","yi|li|duo|tuo","qi","shu","gang","tiao","jie","mian",
-       "wan","lai","jiu","mang","yang","ma","miao","si|zhi|xi","yuan|wan","hang",
-       "fei|bei","bei","jie","dong","gao","yao","xian","chu","chun","pa",
-       "shu|dui","hua","xin","niu|chou","zhu","chou","song","ban","song","ji",
-       "wo|yue","jin","gou","ji","mao","pi","pi|mi","wang","ang","fang|bing",
-       "fen","yi","fu","nan","xi","hu|di","ya","dou","xin","zhen",
-       "yao","lin","rui","e","mei","zhao","guo","zhi|qi","cong|zong","yun",
-       "hua","sheng","shu","zao","di|duo","li","lu","jian","cheng","song|mB ti su",
-       "qiang","feng","zhan","xiao","xian|zhen","ku","ping","si|tai","xi","zhi",
-       "guai","xiao","jia","jia","ju|gou","bao|fu","mo","yi|xie","ye","ye",
-       "shi","nie","bi","tuo|duo","yi|duo|li","ling","bing","ni|chi","la","he",
-       "pan|ban","fan","zhong","dai","ci","yang|ying","fu","bai|bo","mou","gan",
-       "qi","ran","rou","mao","shao","song","zhe","xia","you","shen",
-       "gui|ju","tuo","zuo|zha","nan","ning","yong","di","zhi|die","zha|zu","cha|zha",
-       "dan","gu","bu|pu","jiu","ao","fu","jian","ba|fu|pei|bo|bie","duo|zuo|wu","ke",
-       "nai","zhu","bi|bie","liu","chai","zha","si","zhu","bei|pei","shi|fei",
-       "guai","cha|zha","yao","cheng","jiu","shi","zhi","liu","mei","li",
-       "rong","zha|shan|shi|ce","zao","biao","zhan","zhi","long","dong","lu","sa",
-       "li|yue","lan","yong","shu","xun","shuan","qi|qie","chen","qi|xi","li",
-       "yi","xiang","zhen","li","se","gua|tian","kan","ben|bing","ren","xiao|jiao",
-       "bai","ren","bing","zi","chou","yi|xie","ci","xu","zhu","jian|zun",
-       "zui","er","er","you|yu","fa","gong","kao","lao","zhan","lie",
-       "yin","yang","he|hu","gen","zhi|yi","shi","ge","zai","luan","fu",
-       "jie","heng|hang","gui","tao","guang","wei","kuang","ru","an","an",
-       "juan","yi|ti","zhuo","ku","zhi","qiong","tong","sang","sang","huan",
-       "jie|ju","jiu","xue","duo","chui","yu|mou","za|zan","kB sei","ying","jie",
-       "liu","zhan","ya","nao","zhen","dang","qi","qiao","hua","gui|hui",
-       "jiang","zhuang","xun","suo","sha","chen|zhen","bei","ting|ying","gua","jing",
-       "bo","ben|fan","fu","rui","tong","jue","xi","lang","liu","feng",
-       "qi","wen","jun","gan","su|yin","liang","qiu","ting","you","mei",
-       "bang","long","peng","zhuang","di","xuan|juan|xie","tu|cha","zao","ao|you","gu",
-       "bi","di","han","zi","zhi","ren|er","bei","geng","jian","huan",
-       "wan","nuo","jia","tiao","ji","xiao","lv","kuan","shao|sao","chen",
-       "fen","song","meng","wu","li","si|qi","dou","qin","ying","suo",
-       "ju","ti","xie","kun","zhuo","shu","chan|yan","fan","wei","jing",
-       "li","bin|bing","xia","fo","chou|tao|dao","zhi","lai","lian","jian","zhuo",
-       "ling","li","qi","bing","lun","cong|song","qian","mian","qi","qi",
-       "cai","gun|hun","chan","de|zhe","fei","pai|bei|pei","bang","bang|pou|bei","hun","zong",
-       "cheng","zao","ji","li|lie","peng","yu","yu","gu","jun","dong",
-       "tang","gang","wang","di|dai|ti","que","fan","cheng","zhan","qi","yuan",
-       "yan","yu","quan|juan","yi","sen","ren|shen","chui","leng|ling","qi","zhuo",
-       "fu|su","ke","lai","zou|sou","zou","zhao|zhuo","guan","fen","fen","chen",
-       "qing","ni","wan","guo","lu","hao","jie|qie","yi","chou|zhou|diao","ju",
-       "ju","cheng|sheng","zu|cui","liang","qiang|kong","zhi","zhui|chui","ya","ju","bei",
-       "jiao","zhuo","zi","bin","peng","ding","chu","chang","men","hua",
-       "jian","gui","xi","du","qian","dao","gui","dian","luo","zhi",
-       "quan|juan","mi eng","fu","geng","peng","shan","yi","tuo","sen","duo|chuan",
-       "ye","fu","wei|hui","wei","duan","jia","zong","jian|han","yi","zhen|shen",
-       "xi","yan|ya","yan","chuan","jian","chun","yu","he","zha|cha","wo",
-       "pian","bi","yao","guo|kua","xu","ruo","yang","la","yan","ben",
-       "hui","kui","jie","kui","si","feng","xie","tuo","ji|zhi","jian",
-       "mu","mao","chu","ku|hu","hu","lian","leng","ting","nan","yu",
-       "you","mei","song|cong","xuan|yuan","xuan","yang|ying","zhen","pian","die|ye","ji",
-       "jie","ye","chu","shun|dun","yu","cou|zou","wei","mei","di|shi","ji",
-       "jie","kai|jie","qiu","ying","rou","huang","lou","le|yue","quan","xiang",
-       "pin","shi","gai","tan","lan","wen|yun","yu","chen","lv","ju",
-       "shen","chu","bi|pi","xie","jia","yi","zhan|nian|zhen","fu|bo","nuo","mi",
-       "lang","rong","gu","jian|jin","ju","ta","yao","zhen","bang","sha|xie",
-       "yuan","zi","ming","su","jia","yao","jie","huang","gan","fei",
-       "zha","qian","ma","sun","yuan","xie","rong","shi","zhi","cui",
-       "wen","ting","liu","rong","tang","que","zhai","si","sheng","ta",
-       "ke","xi","gu","qi","gao","gao","sun","pan","tao","ge",
-       "chun","dian","nou","ji","shuo","gou","chui","qiang","cha","qian|lian|xian",
-       "huai","mei","xu","gang","gao","zhuo","tuo","qiao","yang","dian|zhen",
-       "jia","jian|kan","zui","dao","long","bin|bing","zhu","sang","xi|die","ji|gui",
-       "lian","hui","rong|yong","qian","guo","gai","gai","tuan|shuan|quan","hua","qi|se",
-       "sen","cui|zhi","peng","you|chao","hu","jiang","hu","huan","gui","nie",
-       "yi","gao","kang","gui","gui","cao","man|wan","jin","di","zhuang",
-       "le|yue","lang","chen","cong|zong","li|chi","xiu","qing","shang","fan","tong",
-       "guan","ze","su","lei","lu","liang","mi","lou","chao|jiao","su",
-       "ke","chu","cheng","biao","lu","jiu|liao","zhe","zha","shu","zhang",
-       "man","mo|mu","niao|mu","yang","tiao","peng","zhu","sha|xie","xi","quan",
-       "heng","jian","cong","ji","yan","qiang","xue","ying","er","xun",
-       "zhi","qiao","zui","cong","piao","shu","hua","gui","zhen","zun",
-       "yue","shan","xi","chun","dian","fa|fei","gan","mo","wu","qiao",
-       "rao|nao","lin","liu","qiao","xian","run","fan","zhan|jian","tuo","liao",
-       "yun","shun","tui|dun","cheng","tang|cheng","meng","ju","cheng","su|qiu","jue",
-       "jue","tan|dian","hui","ji","nuo","xiang","tuo","ning","rui","zhu",
-       "tong|chuang","zeng|ceng","fen|fei","qiong","ran|yan","heng","qian","gu","liu","lao",
-       "gao","chu","xi","sheng","zi","zan","ji","dou","jing","lu",
-       "xian","cu|chu","yuan","ta","shu|qiao","jiang","tan","lin","nong","yin",
-       "xi","hui","shan","zui","xuan","cheng","gan","ju","zui","yi",
-       "qin","pu","yan","lei","feng","hui","dang","ji","sui","bo",
-       "ping|bo","cheng","chu","zhua","gui|hui","ji","jie","jia","qing","zhai|shi|tu",
-       "jian","qiang","dao","yi","biao","song","she","lin","li","cha",
-       "meng","yin","chou|tao|dao","tai","mian","qi","tuan","bin|bing","huo","ji",
-       "qian|lian","ni|mi","ning","yi","gao","jian|kan","yin","nou|ruan|ru","qing","yan",
-       "qi","mi","zhao","gui","chun","ji","kui","po","deng","chu",
-       "ge","mian","you","zhi","huang|guo|gu","qian","lei","lei","sa","lu",
-       "li","cuan","lv|chu","mie|mei","hui","ou","lv","zhi","gao","du",
-       "yuan","li|yue","fei","zhuo|zhu","sou","lian","jiang","chu","qing","zhu",
-       "lu","yan","li","zhu","chen","jue|ji","e","su","huai|gui","nie",
-       "yu","long","la|lai","qiao","xian","gui","ju","xiao","ling","ying",
-       "jian","yin","you","ying","xiang","nong","bo","chan|zhan","lan","ju",
-       "shuang","she","wei|zui","cong","quan","qu","cang","jiu","yu","luo",
-       "li","cuan","luan","dang","qu","yan","lan","lan","zhu","lei",
-       "li","ba","nang","yu","ling","guan","qian","ci","huan","xin",
-       "yu","yu|yi","qian|xian","ou","xu","chao","chu|qu|xi","qi","ke|ai","yi|yin",
-       "jue","xi|kai","xu","he","yu","kuai","lang","kuan","shuo|sou","xi",
-       "ei|ai","qi","qi","xu|chua","chi|chuai","qin","kuan","kan|qian","kuan","kan|ke",
-       "chuan","sha","gua","yan|yin","xin","xie","yu","qian","xiao","ye",
-       "ge","wu","tan","jin|qun","ou","hu","ti","huan","xu","pen",
-       "xi","xiao","xu","xi|she","shan","lian|han","chu","yi","e","yu",
-       "chuo","huan","zhi","zheng","ci","bu","wu","qi","bu","bu",
-       "wai","ju","qian","zhi|chi","se","chi","se|sha","zhong","sui","sui",
-       "li","ze","yu","li","gui","dai","dai","si","jian","zhe",
-       "mo|wen","mo","yao","mo","cu","yang","tian","sheng","dai","shang",
-       "xu","xun","shu","can","jing","piao","qia","qiu","su","qing|jing",
-       "yun","lian","yi","fou|bo","zhi|shi","ye|yan","can","hun|mei","dan","ji",
-       "die","zhen","yun","wen","chou","bin","ti","jin","shang","yin",
-       "chi","jiu","kui|hui","cuan","yi","dan","du","jiang","lian","bin",
-       "du","jian","jian","shu","ou","duan","zhu","yin|yan","qing|keng|sheng","yi",
-       "sha","ke|qiao","ke|qiao","xiao|yao","xun","dian","hui","hui","gu","qiao",
-       "ji","yi","ou","hui","duan","yi","xiao","wu","guan|wan","mu",
-       "mei","mei","ai","jie","du|dai","yu","bi","bi","bi","pi",
-       "pi","bi","chan","mao","hao","cai","bi","lie","jia","zhan",
-       "sai","mu","tuo","xun","er","rong","xian","ju","mu","hao",
-       "qiu","dou|nuo","mushiruPPPV","tan","pei","ju","duo","cui","bi","san",
-       "san","mao","sai|sui","shu","shu","tuo","he","jian","ta","san",
-       "lv","mu","mao","tong","rong","chang","pu","lu","zhan","sao",
-       "zhan","meng","lu","qu","die","shi|zhi","di","min","jue","meng|mang",
-       "qi","pie","nai","qi","dao","xian","chuan","fen","yang|ri","nei",
-       "nei","fu","shen","dong","qing","qi","yin","xi","hai","yang",
-       "an","ya","ke","qing","ya","dong","dan","lv","qing","yang",
-       "yun","yun","shui","shui","zheng|cheng","bing","yong","dang","shui","le",
-       "ni","tun","fan","gui|jiu","ting","zhi","qiu","bin|pa","ze","mian",
-       "cuan","hui","diao","han","cha","zhuo|que","chuan","wan","fan","da",
-       "xi","tuo","mang","qiu","qi","shan","pin","han","qian","wu",
-       "wu","xun","si","ru","gong","jiang","chi","wu","tu","jiu",
-       "tang|shang","zhi|ji","zhi","qian","mi","gu|yu","wang","jing","jing","rui",
-       "jun","hong","tai","tai","ji","bian","bian","gan|han|cen","wen|men","zhong",
-       "fang|pang","xiong","jue","hu|huang","niu|you","qi","fen","xu","xu","qin",
-       "yi","wo","yun","yuan","hang","yan","shen|chen","chen","dan","you",
-       "dun","hu","huo","qi","mu","nv|niu","mei|mo","ta|da","mian","mi|wu",
-       "chong","hong|pang","bi","sha","zhi","pei","pan","zhui|zi","za","gou",
-       "pai","mei|mo","ze","feng","ou","li","lun","cang","feng","wei",
-       "hu","mo","mei","shu","ju","za","tuo|duo","tuo","tuo|duo","he",
-       "li","mi|li","yi|chi","fa","fei","you","tian","zhi","zhao","gu",
-       "zhan","yan","si","kuang","jiong","ju","xie|yi","qiu","yi|die","jia",
-       "zhong","quan","bo|po","hui","mi|bi","ben","ze","chu|she","le","you|ao",
-       "gu","hong","gan","fa","mao","si","hu","peng|ping","ci","fan",
-       "zhi","su","ning","cheng","ling","pao","bo","qi","si","ni",
-       "ju","yue|sa","zhu","sheng","lei","xuan","jue|xue","fu","pan","min",
-       "tai","yang","ji","yong","guan","beng","xue","long|shuang","lu","dan",
-       "luo|po","xie","po","ze|shi","jing","yin","pan","jie","yie","hui",
-       "hui","zai","cheng","yin","wei","hou","jian","yang","lie","si",
-       "ji","er","xing","fu","sa|xi","se|qi|zi","zhi","yin","wu","xi|xian",
-       "kao","zhu","jiang","luo","luo","an|yan|e","dong","ti","si","lei",
-       "yi","mi","quan","jin","po","wei","xiao","xie","hong","xu",
-       "su|shuo","kuang","tao","qie|jie","ju","er","zhou","ru","ping","xun",
-       "xiong","zhi","guang","huan","ming","huo","wa","qia","pai","wu",
-       "qu","liu","yi","jia","jing","qian|jian","jiang","jiao","zhen","shi",
-       "zhuo","ce","fa","kuai|hui","ji","liu","chan","hun","hu|xu","nong",
-       "xun","jin","lie","qiu","wei","zhe","jun|xun","han","bang","mang",
-       "zhuo","you|di","xi","bo","dou","huan","hong","yi","pu","ying|cheng",
-       "lan","hao","lang","han","li","geng","fu","wu","li","chun",
-       "feng|hong","yi","yu","tong","lao","hai","jin","jia","chong","jiong",
-       "mei","sui|nei","cheng","pei","xian","shen","tu","kun","ping","nie",
-       "han","jing","xiao","she","nian","tu","yong|chong","xiao","xian","ting",
-       "e","su","tun|yun","juan","cen","ti","li","shui","si","lei",
-       "shui","tao","du","lao","lai","lian","wei","wo|guo","yun","huan",
-       "di","heng","run","jian","zhang","se","fu","guan","xing","shou|tao",
-       "shuan","ya","chuo","zhang","ye","kong|nang","wan|wo|yuan","han","tuo","dong",
-       "he","wo","ju","she","liang","hun","ta","zhuo","dian","qie|ji",
-       "de","juan","zi","xi","xiao","qi","gu","guo|guan","yan","lin",
-       "tang|chang","zhou","peng","hao","chang","shu","qi","fang","zhi","lu",
-       "nao|chuo|zhuo","ju","tao","cong","lei","zhe","ping|peng","fei","song","tian",
-       "pi|pei","dan","yu|xu","ni","yu","lu","gan","mi","jing|cheng","ling",
-       "lun","yin","cui","qu","huai","yu","nian|shen","shen","biao|hu","chun|zhun",
-       "hu","yuan","lai","hun","qing","yan","qian","tian","miao","zhi",
-       "yin","bo","ben","yuan","wen|min","ruo|re|luo","fei","qing","yuan","ke",
-       "ji","she","yuan","se","lu","zi","du|dou","yi","jian","mian|sheng",
-       "pai","xi","yu","yuan","shen","shen","rou","huan","zhu","jian",
-       "nuan","yu","qiu|wu","ting","qu|ju","du","feng","zha","bo","wo",
-       "wo|guo","ti|di","wei","wen","ru","xie","ce","wei","he","gang|jiang",
-       "yan","hong","xuan","mi","ke","mao","ying","yan","you","hong|qing",
-       "miao","sheng","mei","zai","hun","nai","gui","chi","e","pai",
-       "mei","lian","qi","qi","mei","tian","cou","wei","can","tuan",
-       "mian","hui|min|xu","po","xu","ji","pen","jian","jian","hu","feng",
-       "xiang","yi","yin","zhan","shi","jie","zhen","huang","tan","yu",
-       "bi","min|hun","shi","tu","sheng","yong","ju","dong","tuan|nuan","qiu|jiao",
-       "qiu|jiao","qiu","yan|yin","tang|shang","long","huo","yuan","nan","ban|pan","you",
-       "quan","zhuang|hun","liang","chan","xian","chun","nie","zi","wan","shi",
-       "man","ying","la","kui|hui","feng|hong","jian","xu","lou","wei","gai",
-       "bo","ying","po","jin","yan|gui","tang","yuan","suo","yuan","lian|nian|xian",
-       "yao","meng","zhun","cheng","ke","tai","da|ta","wa","liu","gou",
-       "sao","ming","zha","shi","yi","lun","ma","pu","wei","li",
-       "zai","wu","xi","wen","qiang","ze","shi","su","ai","zhen|qin",
-       "sou","yun","xiu","yin","rong","hun","su","suo","ni|niao","ta",
-       "shi","ru","ai","pan","chu|xu","chu","pang","weng","cang","mie",
-       "ge","dian","hao|xue","huang","qi|xi|xie","zi","di","zhi","xing|ying","fu",
-       "jie","hua","ge","zi","tao","teng","sui","bi","jiao","hui",
-       "gun","yin","ze|hao","long","zhi","yan","she","man","ying","chun",
-       "lv","lan","luan","yao","bin","tan","yu","xiu","hu","bi",
-       "biao","zhi","jiang","kou","shen","shang","di","mi","ao","lu",
-       "hu|xu","hu","you","chan","fan","yong","gun","man","qing","yu",
-       "piao","ji","ya","chao","qi","xi","ji","lu","lou","long",
-       "jin","guo","cong|song","lou","zhi","gai","qiang","li","yan","cao",
-       "jiao","cong","chun","tuan|zhuan","ou","teng","ye","xi","mi","tang",
-       "mo","shang","han","lian","lan","wa","chi","gan","feng|peng","xuan",
-       "yi","man","zi","mang","kang","luo|ta","ben|peng","shu","zhang","zhang",
-       "chong|zhuang","xu","huan","huo|kuo","jian","yan","shuang","liao|liu","cui","ti",
-       "yang","jiang","cong|zong","ying","hong","xiu","shu","guan","ying","xiao",
-       "cong|zong","kun","xu","lian","zhi","wei","pi|pie","yu","jiao|qiao","po",
-       "dang|xiang","hui","jie","wu","pa","ji","pan","wei","su","qian",
-       "qian","xi|ya","lu","xi","xun","dun","huang|guang","min","run","su",
-       "lao|liao","zhen","cong|zong","yi","zhi","wan","tan|shan","tan","chao","xun",
-       "kui|hui","ye","shao","tu|zha","zhu","san|sa","hei","bi","shan","chan",
-       "chan","shu","tong","pu","lin","wei","se","se","cheng","jiong",
-       "cheng|deng","hua","jiao","lao","che","gan","cun","jing","si","shu|zhu",
-       "peng","han","yun","liu","hong|gong","fu","hao","he","xian","jian",
-       "shan","xi","ao","lu","lan","ning","yu","lin","mian|sheng","zao",
-       "dang","huan","ze|shi","xie","yu","li","shi","xue","ling","wan|man",
-       "zi","yong","kuai|hui","can","lian","dian","ye","ao","huan","zhen",
-       "chan","man","gan","dan|tan","yi","sui","pi","ju","ta","qin",
-       "ji","zhuo","lian","nong","guo|wo","jin","fen|pen","se","ji|sha","sui",
-       "hui|huo","chu","ta","song","ding|ting","se","zhu","lai","bin","lian",
-       "mi|ni","shi","shu","mi","ning","ying","ying","meng","jin","qi",
-       "bi|pi","ji","hao","ru","cui|zui","wo","tao","yin","yin","dui",
-       "ci","huo|hu","qing","lan","jun|xun","ai|kai|ke","pu","zhuo|zhao","wei","bin",
-       "gu","qian","ying","bin","kuo","fei","cang","me","jian","wei|dui",
-       "luo|po","zan|cuan","lv","li","you","yang","lu","si","zhi","ying",
-       "du|dou","wang","hui","xie","pan","shen","biao","chan","mie|mo","liu",
-       "jian","pu|bao","se","cheng|deng","gu","bin","huo","xian","lu","qin",
-       "han","ying","rong","li","jing","xiao","ying","sui","wei|dui","xie",
-       "huai|wai","xue","zhu","long|shuang","lai","dui","fan","hu","lai","shu",
-       "lian","ying","mi","ji","lian","jian|zun","ying","fen","lin","yi",
-       "jian","yue","chan","dai","rang|nang","jian","lan","fan","shuang","yuan",
-       "zhuo|jiao|ze","feng","she","lei","lan","cong","qu","yong","qian","fa",
-       "guan","jue","yan","hao","ying","sa","zan|cuan","luan","yan","li",
-       "mi","shan","tan","dang|tang","jiao","chan","ying","hao","ba","zhu",
-       "lan","lan","nang","wan","luan","xun|quan","xian","yan","gan","yan",
-       "yu","huo","huo|biao","mie","guang","deng","hui","xiao","xiao","hui",
-       "hong","ling","zao","zhuan","jiu","zha|yu","xie","chi","zhuo","zai",
-       "zai","can","yang","qi","zhong","fen|ben","niu","jiong|gui","wen","pu",
-       "yi","lu","chui","pi","kai","pan","yan","yan","pang|feng","mu",
-       "chao","liao","que","kang","dun","guang","xin","zhi","guang","guang",
-       "wei","qiang","bian","da","xia","zheng","zhu","ke","zhao","fu",
-       "ba","xie","xie","ling","zhuo|chu","xuan","ju","tan","pao|bao","jiong",
-       "pao|fou","tai","tai","bing","yang","tong","shan|qian","zhu","zha","dian",
-       "wei","shi","lian","chi","huang","zhou","hu","shuo","lan","ting",
-       "jiao|yao","xu","heng","quan","lie","huan","yang","xiao","xiu","xian",
-       "yin","wu","zhou","yao","shi","wei","tong|dong","mie","zai","kai",
-       "hong","lao|luo","xia","zhu","xuan","zheng","po","yan","hui","guang",
-       "che","hui","kao","chen","fan","shao","ye","hui","uu","tang",
-       "jin","re","lie","xi","fu|pao","jiong","xie|che","pu","ting","zhuo",
-       "ting","wan","hai","peng","lang","yan","xu","feng","chi","rong",
-       "hu","xi","shu","he","xun|hun","ku","juan|ye","xiao","xi","yan",
-       "han","zhuang","qu|jun","di","xie|che","ji|qi","wu","yan","lv","han",
-       "yan","huan","men","ju","dao","bei","fen","lin","kun","hun",
-       "tun","xi","cui","wu","hong","chao|ju","fu","wo|ai","jiao","zong|cong",
-       "feng","ping","qiong","ruo","xi|yi","qiong","xin","zhuo|chao","yan","yan",
-       "yi","jue","yu","gang","ran","pi","xiong|ying","gang","sheng","chang",
-       "shao","xiong|ying","nem","geng","qu","chen","he","kui","zhong","duan",
-       "xia","hui|yun|xun","feng","lian","xuan","xing","huang","jiao","jian","bi",
-       "ying","zhu","wei","tuan","shan|qian","xi|yi","nuan","nuan","chan","yan",
-       "jiong","jiong","yu","mei","sha","wei","ye|zha","jin","qiong","rou",
-       "mei","huan","xu","zhao","wei","fan","qiu","sui","yang","lie",
-       "zhu","jie","zao","gua","bao","hu","yun","nan","shi","huo",
-       "bian","gou","tui","tang","chao","shan","en|yun","bo","huang","xie",
-       "xi","wu","xi","yun","he","he|xiao","xi","yun","xiong","xiong",
-       "shan","qiong","yao","xun","mi","lian","ying","wu","rong","gong",
-       "yan","qiang","liu","xi","bi","biao","cong|zong","lu|ao","jian","shu",
-       "yi","lou","peng|feng","sui|cui","yi","teng","jue","zong","yun|yu","hu",
-       "yi","zhi","ao","wei","liu","han|ran","ou","re","jiong","man",
-       "kun","shang","cuan","zeng","jian","xi","xi","xi","yi","xiao",
-       "chi","huang","chan|dan","ye","tan","ran","yan","xun","qiao","jun",
-       "deng","dun","shen","jiao|qiao|jue|zhuo","fen","si","liao","yu","lin","tong|dong",
-       "shao","fen","fan","yan","xun","lan","mei","tang","yi","jiong",
-       "men","zhu","jiao","ying","yu","yi","xue","lan","tai|lie","zao",
-       "can","sui","xi","que","zong","lian","hui","zhu","xie","ling",
-       "wei","yi","xie","zhao","hui","da","nong","lan","xu","xian",
-       "he","xun","jin","chou","tao","yao","he","lan","biao","rong|ying",
-       "li|lie","mo","bao","ruo","lv","la|lie","ao","xun","kuang|huang","shuo",
-       "liao","li","lu","jue","liao","yan|xun","xi","xie","long","ye",
-       "can","rang","yue","lan","cong","jue","chong","guan","qu","che",
-       "mi","tang","lan","zhu","lan","ling","cuan","yu","zhao|zhua","zhao|zhua",
-       "pa","zheng","pao","cheng|chen","yuan","ai","wei","han","jue","jue",
-       "fu","ye","ba","die","ye","yao","zu","shuang","er","pan",
-       "chuang","ke","zang","die","qiang","yong","qiang","pian","ban","pan",
-       "chao","jian","pai","du","chuang","yu","zha","bian|mian","die","bang",
-       "bo","chuang","you","you|yong","du","ya","cheng","niu","niu","pin",
-       "jiu|le","mou|mu","ta","mu","lao","ren","mang","fang","mao","mu",
-       "gang","wu","yan","ge|qiu","bei","si","jian","gu","you|chou","ke",
-       "sheng","mu","di","qian","quan","quan","zi","te","xi","mang",
-       "keng","qian","wu","gu","xi","li","li","pou","ji","gang",
-       "zhi|te","ben","quan","chun","du","ju","jia","jian|qian","feng","pian",
-       "ke","ju","kao","chu","xi","bei","luo","jie","ma","san",
-       "wei","mao|li","dun","tong","qiao","jiang","xi","li","du","lie",
-       "bai","piao","bao","xi","chou","wei","kui","chou","quan","quan",
-       "quan|ba","fan","qiu","ji","chai","zhuo|bao","han|an","ge","zhuang","guang",
-       "ma","you","kang|gang","pei|fei","hou","ya","yin","huan|fan","zhuang","yun",
-       "kuang","niu","di","kuang","zhong","mu","bei","pi","ju","yi|quan|chi",
-       "sheng|xing","pao","xia","tuo|yi","hu","ling","fei","pi","ni","yao",
-       "you","gou","xue","ju","dan","bo","ku","xian","ning","huan",
-       "hen","jiao","he","zhao","jie","xun","shan","ta|shi","rong","shou",
-       "tong|dong","lao","du","xia","shi","kuai","zheng","yu","sun","yu",
-       "bi","mang|dou","xi|shi","juan","li","xia","yin","suan","lang","bei",
-       "zhi","yan","sha","li","han","xian","jing","pai","fei","xiao",
-       "bai|pi","qi","ni","biao","yin","lai","lie","jian|yan","qiang","kun",
-       "yan","guo","zong","mi","chang","yi","zhi","zheng","ya|wei","meng",
-       "cai","cu","she","lie","ceon","luo","hu","zong","gui","wei",
-       "feng","wo","yuan","xing","zhu","mao","wei","chuan","xian","tuan",
-       "ya|jia|qie","nao","xie|he|ge|hai","jia","hou","bian|pian","you","you","mei","cha",
-       "yao","sun","bo|po","ming","hua","yuan","sou","ma","huan","dai",
-       "yu","shi","hao","qiang","yi","zhen","cang","hao|gao","man","jing",
-       "jiang","mo","zhang","chan","ao","ao","hao","suo","fen","jue",
-       "bi","bi","huang","pu","lin","xu","tong","yao|xiao","lao","shuo|xi",
-       "xiao","shou","dun","jiao","ge|lie|xie","juan","du","hui","kuai","xian",
-       "xie","ta","xian","xun","ning","bian|pian","huo","nou|ru","meng","lie",
-       "nao|you","guang","shou","lu","ta","xian","mi","rang","huan","nao|you",
-       "luo","xian","qi","jue","xuan","miao","zi","shuai|lv","lu","yu",
-       "su","wang","qiu","ga","ding","le","ba","ji","hong","di",
-       "chuan","gan","jiu","yu","qi","yu","chang|yang","ma","hong","wu",
-       "fu","min|wen","jie","ya","bin|fen","bian","bang","yue","jue","men|yun",
-       "jue","wan","jian|qian","mei","dan","pin","wei","huan","xian","qiang|cang",
-       "ling","dai","yi","an|gan","ping","dian","fu","xuan|xian","xi","bo",
-       "ci","gou","jia","shao","po","ci","ke","ran","sheng","shen",
-       "yi|tai","zu|ju","jia","min","shan","liu","bi","zhen","zhen","jue",
-       "fa","long","jin","jiao","jian","li","guang","xian","zhou","gong",
-       "yan","xiu","yang","xu","luo","su","zhu","qin","yin|ken","xun",
-       "bao","er","xiang","yao","xia","hang","gui","chong","xu","ban",
-       "pei","lao","dang","ying","hun|hui","wen","e","cheng","di|ti","wu",
-       "wu","cheng","jun","mei","bei","ting","xian","chu","han","xuan|qiong",
-       "yan","qiu","xuan","lang","li","xiu","fu","liu","ya","xi",
-       "ling","li","jin","lian","suo","suo","feng","wan","dian","pin|bing",
-       "zhan","cui|se","min","yu","ju","chen","lai","min","sheng","wei|yu",
-       "tian","shu","zhuo|zuo","beng|pei","cheng","hu","qi","e","kun","chang",
-       "qi","beng","wan","lu","cong","guan","yan","diao","bei","lin",
-       "qin","pi","pa","que","zhuo","qin","fa","jin","qiong","du",
-       "jie","hun|hui","yu","mao","mei","chun","xuan","ti","xing","dai",
-       "rou","min","jian","wei","ruan","huan","xie|jie","chuan","jian","zhuan",
-       "chang|yang","lian","quan","xia","duan","yuan","ye","nao","hu","ying",
-       "yu","huang","rui","se","liu","shi","rong","suo","yao","wen",
-       "wu","zhen","jin","ying","ma","tao","liu","tang","li","lang",
-       "gui","tian|zhen","qiang|cang","cuo","jue","zhao","yao","ai","bin|pian","tu|shu",
-       "chang","kun","zhuan","cong","jin","yi","cui","cong","qi","li",
-       "jing","zao|suo","qiu","xuan","ao","lian","men","zhang","yin","ye",
-       "ying","zhi","lu","wu","deng","xiu","zeng","xun","qu","dang",
-       "lin","liao","qiong|jue","su","huang","gui","pu","jing","fan","jin",
-       "liu","ji","hui","jing","ai","bi","can","qu","zao","dang",
-       "jiao","guan","tan","hui|kuai","huan","se","sui","tian","chu","yu",
-       "jin","lu|fu","bin|pian","shu","wen","zui","lan","xi","ji|zi","xuan",
-       "ruan","wo","gai","lei","du","li","zhi","rou","li","zan",
-       "qiong","ti","gui","sui","la","long","lu","li","zan","lan",
-       "ying","mi|xi","xiang","qiong|wei","guan","dao","zan","huan|ye|ya","gua","bo",
-       "die","bo|pao","hu","zhi|hu","piao","ban","rang","li","wa","shiwa",
-       "xiang|hong","qianwa","ban","pen","fang","dan","weng","ou","fenwa","maowa",
-       "ki ro ton|mao wa","hu","ling","yi","ping","ci","bai","juan","chang","chi",
-       "liwa","dang","wa","bu","zhui","ping","bian","zhou","zhen","liwa",
-       "ci","ying","qi","xian","lou","di","ou","meng","zhuan","beng",
-       "lin","zeng","wu","pi","dan","weng","ying","yan","gan","dai",
-       "shen","tian","tian","han","chang","sheng","qing","shen","chan","chan",
-       "rui","sheng","su","shen","yong","shuai","lu","fu","yong","beng",
-       "beng","ning","tian","you","jia","shen","you","dian","fu","nan",
-       "dian|tian|sheng","ping","ting|ding","hua","ting|ding","zhen","zai|zi","meng","bi","bi|qi",
-       "mu","xun","liu","chang","mu","yun","fan","fu","geng","tian",
-       "jie","jie","quan","wei","fu|bi","tian","mu","tap","pan","jiang",
-       "wa","da|fu","nan","liu","ben","zhen","xu|chu","mu","mu","ce|ji",
-       "zai|zi","gai","bi","da","zhi|chou|shi","lve","qi","lve","fan|pan","yi",
-       "fan|pan","hua","she|yu","she","mu","jun","yi","liu","she","die",
-       "chou","hua","dang","zhui","ji","wan","jiang","cheng","chang","tuan",
-       "lei","ji","cha","liu","die","tuan","lin","jiang","jiang|qiang","chou",
-       "pi","die","die","pi|ya|shu","jie|qie","dan","shu","shu","zhi|di","yi|ni",
-       "ne","nai","ding","bi","jie","liao","gang","ge|yi","jiu","zhou",
-       "xia","shan","xu","n<e|yao","li|lai","yang","chen","you","ba","jie",
-       "jue|xue","qi","ya|xia","cui","bi","yi","li","zong","chuang","feng",
-       "zhu","pao","pi","gan","ke","ci","xue","zhi","da","zhen",
-       "fa|bian","zhi","teng","ju","ji","fei","gou","shan|dian","jia","xuan",
-       "zha","bing","nie","zheng","yong","jing","quan","teng|chong","tong","yi",
-       "jie","wei|you|yu","hui","tan|shi","yang","zhi","zhi","hen","ya","mei",
-       "dou","jing","xiao","tong","tu","mang","pi","xiao","suan","pu",
-       "li","zhi","cuo","duo","wu","sha","lao","shou","huan","xian",
-       "yi","beng|peng","zhang","guan","tan","fei","ma","ma|lin","chi","ji",
-       "tian|dian","an|ye|e","chi","bi","bi","min","gu","dui","ke|e","wei",
-       "yu","cui","ya","zhu","cu","dan","shen","zhong","zhi|chi","yu",
-       "hou","feng","la","yang","chen","tu","yu","guo","wen","huan",
-       "ku","jia|xia","yin","yi","lou","sao","jue","chi","xi","guan",
-       "yi","wen","ji","chuang","ban","hui|lei","liu","chai|cuo","shou","n<e|yao",
-       "dian|chen","da|dB","bie","tan","zhang","biao","shen","cu","luo","yi",
-       "zong","chou","zhang","zhai","sou","se","que","diao","lou","lou",
-       "mo","qin","yin","ying","huang","fu","liao","long","qiao|jiao","liu",
-       "lao","xian","fei","dan","yin","he","ai","ban","xian","guan",
-       "gui|wei","nong","yu","wei","yi","yong","pi","lei","li|lai","shu",
-       "dan","lin","dian","lin","la","bie","ji","chi","yang","xuan",
-       "jie","zheng","mo","li","huo","la","ji","dian","xuan","ying",
-       "yin","qu","yong","tan","dian","luo","luan","luan","bo","uu",
-       "gui","ba","fa","deng","fa","bai","bai","qie","ji|bi","zao",
-       "zao","mao","di|de","pa|ba","jie","huang","gui","ci","ling","gao|yao",
-       "mo","ji","jiao","peng","gao|yao","ai","e","hao","han","bi",
-       "wan","chou","qian","xi","ai","xiao","hao","huang","hao","ze",
-       "cui","hao","xiao","ye","po","hao","jiao","ai","xing","huang",
-       "li|luo|bo","piao","he","jiao","pi","gan","pao","zhou","jun","qiu",
-       "cun","que","zha","gu","jun","jun","zhou","zha|cu","gu","zhao|zhan|dan",
-       "du","min","qi","ying","yu","bei","diao","zhong","pen","he",
-       "ying","he","yi","bo","wan","he","ang","zhan","yan","jian",
-       "he","yu","kui","fan","gai|ge|he","dao","pan","fu","qiu","sheng|cheng",
-       "dao","lu","zhan","meng","li","jin","xu","jian","pan","guan",
-       "an","lu","xu","zhou|chou","dang","an","gu","li","mu","ding",
-       "gan","xu","mang","mang|wang","zhi","qi","yuan","xian|tian","xiang","dun",
-       "xin","xi|pan","pan","feng","dun","min","ming","sheng|xing","shi","yun|hun",
-       "mian","pan","fang","miao","dan","mei","mao","kan","xian","kou",
-       "shi","yang|ying","zheng","yao|ao","shen","huo","da","zhen","kuang","ju|xu|kou",
-       "shen","yi|chi","sheng","mei","mo|mie","zhu","zhen","zhen","mian","shi",
-       "yuan","die|ti","ni","zi","zi","chao","zha","xuan","bing|fang","pang|pan",
-       "long","gui|sui","tong","mi","die|zhi","di","ne","ming","xuan|shun|xun","chi",
-       "kuang","juan","mou","zhen","tiao","yang","yan","mo","zhong","mo",
-       "zhuo|zhao|zhe","zheng","mei","suo","qiao|shao|xiao","han","huan","di","cheng","cuo|zhuai",
-       "juan","e","mian","xian","xi","kun","lai","jian","shan","tian",
-       "gun","wan","leng","shi","qiong","li","ya","jing","zheng","li",
-       "lai","sui|zui","juan","shui","sui","du","bi","bi","mu","hun",
-       "ni","lu","yi|ze|gao","jie","cai","zhou","yu","hun","ma","xia",
-       "xing","hui","hun","zai","chun","jian","mei","du","hou","xuan",
-       "ti","kui","gao","rui","mao","xu","fa","wo","miao","chou",
-       "gui|wei|kui","mi","weng","kou|ji","dang","chen","ke","sou","xia","qiong|huan",
-       "mo","ming","man|men","fen","ze","zhang","yi","diao|dou","kou","mo",
-       "shun","cong","lou|lv","chi","man|men","piao","cheng","gui","meng","wan",
-       "run|shun","pie","xi","qiao","pu","zhu","deng","shen","shun","liao",
-       "che","xian|jian","kan","ye","xue","tong","wu|mi","lin","gui|kui","jian",
-       "ye","ai","hui","zhan","jian","gu","zhao","qu|ju","wei","chou",
-       "sao","ning|cheng","xun","yao","huo|yue","meng","mian","pin","mian","lei",
-       "kuang|guo","jue","xuan","mian","huo","lu","meng","long","guan|quan","man",
-       "xi","chu","tang","kan","zhu","mao","jin|qin|guan","jin|qin|guan","yu|xu|jue","shuo",
-       "ze","jue","shi","yi","shen","zhi","hou","shen","ying","ju",
-       "zhou","jiao","cuo","duan","ai","jiao","zeng","yue","ba","shi|dan",
-       "ding","qi","ji","zi","gan","wu","zhe","ku","gang|qiang|kong","xi",
-       "fan","kuang","dang","ma","sha","dan","jue","li","fu","min",
-       "e","xu|hua","kang","zhi","qi|qie","kan","jie","pin|bin|fen","e","ya",
-       "pi","zhe","yan","sui","zhuan","che","dun","wa","yan","jin",
-       "feng","fa","mo","zha","ju","yu","ke|luo","tuo","tuo","di",
-       "zhai","zhen","e","fu|fei","mu","zhu","li|la","bian","nu","ping",
-       "peng","ling","pao","le","po","bo","po","shen","za","ai",
-       "li","long","tong","yong","li","kuang","chu","keng","quan","zhu",
-       "kuang|guang","gui","e","nao","qia","lu","wei|gui","ai","luo|ge","ken|xian|gun|yin",
-       "xing","yan","dong","peng|ping","xi","lao","hong","shuo|shi","xia","qiao",
-       "qing","wei|ai|gai","qiao","ce","keng","xiao","que|ke|ku","chan","lang","hong",
-       "yu","xiao","xia","mang|bang","luo|long","yong|tong","che","che","wo","liu",
-       "ying","mang","que","yan","sha","kun","yu","ze","hua","lu",
-       "chen","jian","nve","song","zhuo","keng","peng","yan","zhui|chui|duo","kong",
-       "cheng","qi","zong|cong","qing","lin","jun","bo","ding","min","diao",
-       "jian|zhan","he","lu|liu","ai","sui","que|xi","leng","bei","yin","dui",
-       "wu","qi","lun","wan","dian","nao|gang","bei","qi","chen","ruan",
-       "yan","die","ding","zhou","tuo","jie|ya","ying","bian","ke","bi",
-       "wei","shuo|shi","zhen","duan","xia","dang","ti|di","nao","peng","jian",
-       "di","tan","cha","tian","qi","dun","feng","xuan","que","que|qiao",
-       "ma","gong","nian","su|xie","e","ci","liu","si|ti","tang","bang|pang",
-       "hua|ke|gu","pi","kui|wei","sang","lei","cuo","tian","xia|qia|ya","xi","lian|qian",
-       "pan","wei|ai|gai","yun","dui","zhe","ke","la","zhuan","yao","gun",
-       "zhuan","chan","qi","ao|qiao","peng","liu","lu","kan","chuang","chen",
-       "yin","lei","biao","qi","mo","qi|zhu","cui","zong","qing","chuo",
-       "lun","ji","shan","lao|luo","qu","zeng","deng","jian","xi","lin",
-       "ding","dian","huang","pan|bo","ji|she","qiao","di","li","jian","jiao",
-       "xi","zhang","qiao","dun","jian","yu","zhui","he|qiao","ke|huo","ze",
-       "lei","jie","chu","ye","que|hu","dang","yi","jiang","pi","pi",
-       "yu","pin","e|qi","ai","ke","jian","yu","ruan","meng","pao",
-       "ci","bo","yang","mie","ca","xian|xin","kuang","lei","lei","zhi",
-       "li","li","fan","que","pao","ying","li","long","long","mo",
-       "bo","shuang","guan","jian","ca","yan","shi","shi","li","reng",
-       "she","yue","si","qi","ta","ma","xie","yao","xian","zhi|qi",
-       "qi","zhi","beng|fang","dui","zhong","ren","yi","shi","you","zhi",
-       "tiao","fu","fu","mi|bi","zu","zhi","suan","mei","zuo","qu",
-       "hu","zhu","shen","sui","ci","chai","mi","lv","yu","xiang",
-       "wu","tiao","piao","zhu","gui","xia","zhi","ji|zhai","gao","zhen",
-       "gao","shui|lei","jin","shen","gai","kun","di","dao","huo","tao",
-       "qi","gu","guan","zui","ling","lu","bing","jin","dao","zhi",
-       "lu","chan|shan","bi|pi","chu","hui","you|chao","xi","yin","zi","huo",
-       "zhen","fu","yuan","xu","xian","shang|yang","ti|zhi","yi","mei","si",
-       "di","bei","zhuo","zhen","ying","ji","gao","tang","si","ma",
-       "ta","fu","xuan","qi","yu","xi","ji","si","shan|chan","dan",
-       "gui","sui","li","nong","mi","dao","li","rang","yue","ti",
-       "zan","lei","rou","yu","yu|ou","li","xie","qin","he","tu",
-       "xiu","si","ren","tu","zi","cha|na","gan","yi|zhi","xian","bing",
-       "nian","qiu","qiu","zhong","fen","hao|mao","yun","ke","miao","zhi",
-       "jing","bi","zhi","yu","mi|bi","ku","ban","pi","ni","li",
-       "you","zu","pi","bo","ling","mo","cheng","nian","qin","yang",
-       "zuo","zhi","di","shu","ju","zi","huo|kuo","ji","cheng|chen","tong",
-       "shi|zhi","huo|kuo","huo","yin","zi","zhi","jie","ren","du","yi",
-       "zhu","hui","nong","fu|pu","xi","gao","lang","fu","xun|ze","shui",
-       "lv","kun","gan","jing","ti","cheng","tu|shu","shao","shui","ya",
-       "lun","lu","gu","zuo","ren","zhun","bang","bai","ji|qi","zhi",
-       "zhi","kun","leng|ling","peng","ke","bing","chou","zui|zu|su","yu","su",
-       "lve","uu","yi","xi|qie","bian","ji","fu","pi|bi","nuo","jie",
-       "zhong","zong","xu","cheng|chen","dao","wen","xian|jian|lian","zi|jiu","yu","ji",
-       "xu","zhen","zhi","dao","jia","ji|qi","gao","gao","gu","rong",
-       "sui","rong","ji","kang","mu","can|shan|cen","men|mei","zhi","ji","lu",
-       "su","ji","ying","wen","qiu","se","kweok","yi","huang","qie",
-       "ji","sui","xiao|rao","pu","jiao","zhuo|bo","tong|zhong","zuo","lu","sui",
-       "nong","se","hui","rang","nuo","yu","pin","ji","tui","wen",
-       "cheng|chen","huo","kuang","lv","biao|pao","se","rang","zhuo|jue","li","cuan|zan",
-       "xue","wa","jiu","qiong","xi","qiong","kong","yu","shen","jing",
-       "yao","chuan","zhun","tu","lao","qie","zhai","yao","bian","bao",
-       "yao","bing","wa","zhu|ku","jiao|liao|liu","qiao","diao","wu","wa|gui","yao",
-       "zhi","chuang","yao","tiao|yao","jiao","chuang","jiong","xiao","cheng","kou",
-       "cuan","wo","dan","ku","ke","zhuo","huo","su","guan","kui",
-       "dou","zhuo","yin|xun","wo","wa","ya|ye","yu","ju","qiong","yao",
-       "yao","tiao","chao","yu","tian|dian|yan","diao","ju","liao","xi","wu",
-       "kui","chuang","chao|ke","kuan|cuan","kuan|cuan","long","cheng","cui","liao","zao",
-       "cuan","qiao","qiong","dou","zao","long","qie","li","chu","shi",
-       "fu","qian","chu|qi","hong","qi","hao","sheng","fen","shu","miao",
-       "qu|kou","zhan","zhu","ling","long","bing","jing","jing","zhang","bai",
-       "si","jun","hong","tong","song","jing|zhen","diao","yi","shu","jing",
-       "qu","jie","ping","duan","li","zhuan","ceng|zeng","deng","cun","wai",
-       "jing","kan","jing","zhu","zhu|du","le|jin","peng","yu","chi","gan",
-       "mang","zhu","wan","du","ji","jiao","ba","suan","ji","qin",
-       "zhao","sun","ya","zhui|rui","yuan","hu","hang","xiao","cen|jin|han","pi|bi",
-       "bi","jian","yi","dong","shan","sheng","da|xia|na","di","zhu","na",
-       "chi","gu","li","qie","min","bao","tiao","si","fu","ce",
-       "ben","fa","da","zi","di","ling","zuo|ze","nu","fu|fei","gou",
-       "fan","jia","ge","fan","shi","mao","po","ti","jian","qiong",
-       "long","min","bian","luo","gui","qu","chi","yin","yao","xian",
-       "bi","qiong","kuo","deng","jiao","jin","quan","sun","ru","fa",
-       "kuang","zhu","tong","ji","da","hang","ce","zhong","kou","lai",
-       "bi","shai","dang","zheng","ce","fu","yun|jun","tu","pa","li",
-       "lang","ju","guan","jian","han","tong","xia","zhi","cheng","suan",
-       "shi","zhu","zuo","xiao","shao","ting","ce","yan","gao","kuai",
-       "gan","chou","kuang","gang","yun","o","qian","xiao","jian","pou|bu|fu|pu",
-       "lai","zou","pai|bei","bi","bi","ge","tai|chi","guai|dai","yu","jian",
-       "zhao|dao","gu","chi","zheng","qing|jing","sha","zhou","lu","bo","ji",
-       "lin","suan","jun|qun","fu","zha","gu","kong","qian","quan","jun",
-       "chui","guan","wan|yuan","ce","zu","po","ze","qie","tuo","luo",
-       "dan","xiao","ruo","jian","xuan","bian","sun","xiang","xian","ping",
-       "zhen","xing","hu","shi|yi","zhu","yue|yao|chuo","chun","lv","wu","dong",
-       "shuo|xiao|qiao","ji","jie","huang","xing","mei","fan","chuan","zhuan","pian",
-       "feng","zhu","hong","qie","hou","qiu","miao","qian","gu","kui",
-       "yi","lou","yun","he","tang","yue","chou","gao","fei","ruo",
-       "zheng","gou","nie","qian","xiao","cuan","gong|gan|long","peng|pang","du","li",
-       "bi","zhuo|huo","chu","shai","chi","zhu","qiang|cang","long","lan","jian",
-       "bu","li","hui","bi","zhu|di","cong","yan","peng","cen|zan|can","zhuan|zuan|suan",
-       "pi","piao|biao","dou","yu","mie","tuan|zhuan","ze","shai","guo|gui","yi",
-       "hu","chan","kou","cu","ping","zao","ji","gui","su","lou",
-       "ce|ji","lu","nian","suo","cuan","diao","suo","le","duan","zhu",
-       "xiao","bo","mi|mie","shai|si","dang","liao","dan","dian","fu","jian",
-       "min","kui","dai","jiao","deng","huang","sun|zhuan","lao","zan","xiao",
-       "lu","shi","zan","qi","pai","qi","pai","gan","ju","lu",
-       "lu","yan","bo","dang","sai","zhua","gou","qian","lian","bu|bo",
-       "zhou","lai","shi","lan","kui","yu","yue","hao","zhen|jian","tai",
-       "ti","nie","chou","ji","yi","qi","teng","zhuan","zhou","fan|pan|bian",
-       "sou|shu","zhou","qian","zhuo","teng","lu","lu","jian","tuo","ying",
-       "yu","lai","long","shen shi|sen si|qie","lian","lan","qian","yue","zhong","qu",
-       "lian","bian","duan","zuan","li","shai","luo","ying","yue","zhuo",
-       "yu","mi","di","fan","shen","zhe","shen","nv","he","lei",
-       "xian","zi","ni","cun","zhang","qian","zhai","bi","ban","wu",
-       "sha|chao","kang|jing","rou","fen","bi","cui","yin","zhe","mi","ta",
-       "hu","ba","li","gan","ju","po","yu","cu","nian","zhou",
-       "chi","su","tiao","li","xi","su","hong","tong","zi|ci","ce|se",
-       "yue","zhou|yu","lin","zhuang","bai","lao","fen","er","qu","he",
-       "liang","xian","fu","liang","can","jing","li","yue","lu","ju",
-       "qi","cui","bai","zhang","lin","zong","jing","guo","hua","san|shen",
-       "shen","tang","bian","rou","mian","hou","xu","zong","hu","jian",
-       "zan","ci","li","xie","fu","nuo","bei","gu|gou","xiu","gao",
-       "tang","qiu","jia","cao","zhuang","tang","mi|mei","san|shen","fen","zao",
-       "kang","jiang","mo","san|shen","san","nuo","xi","liang","jiang","kuai",
-       "bo","huan","shu","zong","xian","nuo","tuan","nie","li","zuo",
-       "di","nie","tiao","lan","mi|si","si","jiu","xi|ji","gong","zheng",
-       "jiu","gong","ji","cha","zhou","xun","yue|yao","hong|gong","yu","he|ge",
-       "wan","ren","wen","wen","qiu","na","zi","tou","niu","fou",
-       "ji|jie","shu","chun","bi","zhen","sha","hong","zhi","ji","fen",
-       "yun","ren","dan","jin","su","fang","suo","cui","jiu","zha|za",
-       "ha","jin","fu","zhi","qi","zi","chou","hong","zha|za","lei",
-       "xi","fu","xie","shen","bo|bi","zhu","qu","ling","zhu","shao",
-       "gan","yang","fu","tuo","zhen|tian","dai","chu","shi","zhong","xian",
-       "zu","jiong","ban","qu","mo","shu","zui","kuang","jing","ren",
-       "hang","xie","jie","zhu","chou","gua|kua","bai|mo","jue","kuang","hu",
-       "ci","huan|geng","geng","tao","xie|jie","ku","jiao","quan|shuan","gai|ai","luo|lao",
-       "xuan","beng|bing|peng","xian","fu","gei|ji","tong|dong","rong","tiao|diao|dao","yin","lei",
-       "xie","juan","xu","gai|hai","die","tong","si","jiang","xiang","hui",
-       "jue","zhi","jian","juan","chi|zhi","mian|wen|man|wan","zhen","lv","cheng","qiu",
-       "shu","bang","tong","xiao","huan|wan","qin|xian","geng","xu","ti","xiu",
-       "xie","hong","xi","fu","ting","sui","dui","kun","fu","jing",
-       "hu","zhi","yan|xian","jiong","feng","ji","xu","ren","zong|zeng","lin|chen",
-       "duo","li|lie","lv","jing","chou","quan","shao","qi","qi","zhun",
-       "ji|qi","wan","qian|qing|zheng","xian","shou","wei","qing|qi","tao","wan","gang",
-       "wang","beng","zhui","cai","guo","cui","lun|guan","liu","qi","zhan",
-       "bi","chuo|chao","ling","mian","qi","ji","tian|tan|chan","zong","gun","zou",
-       "xi","zi","xing","liang","gei|ji","fei","rui","min","yu","zong",
-       "fan","lv|lu","xu","ying","shang","zi","xu","xiang","jian","ke",
-       "xian","ruan","mian","ji|qi","duan","chong|zhong","di","min","miao|mao","yuan",
-       "xie|ye","bao","si","qiu","bian","huan","geng","zong","mian","wei",
-       "fu","wei","tou|xu|shu","gou","miao","xie","lian","zong","bian|pian","gun|yun",
-       "yin","ti","gua|wo","zhi","yun|wen","cheng","chan","dai","xie","yuan",
-       "zong","xu","sheng","wei","geng","seon","ying","jin","yi","zhui",
-       "ni","bang","gu","pan","zhou","jian","ci|cuo|suo","quan","shuang","yun|wen",
-       "xia","cui|sui|shuai","xi","rong","tao","fu","yun","zhen","gao","ru",
-       "hu","zai|zeng","teng","xian|xuan","su","zhen","zong","tao","huang","cai",
-       "bi","feng","cu","li","suo|su","yan|yin","xi","zong","lei","zhuan|juan",
-       "qian","man","zhi","lv","mu|mo","piao","lian","mi","xuan","zong",
-       "ji","shan","sui","fan|po","lv","beng","yi","sao","mou|miu|miao|mu|liao","yao|you|zhou",
-       "qiang","sheng","xian","ji","zong","xiu","ran","xuan","sui","qiao",
-       "zeng","zuo","zhi","shan","san","lin","ju|jue","fan","liao","chuo",
-       "zun","jian","rao","chan","rui","xiu","hui","hua","zuan","xi",
-       "qiang","wen","da","sheng","hui","xi|ji","se","jian","jiang","huan",
-       "qiao|sao","cong","xie","jiao|zhuo","bi","dan|tan|chan","yi","nong","sui","yi",
-       "sha","ru","ji","bin","qian","lan","pu|fu","xun","zuan","zi",
-       "peng","yao|li","mo","lei","xie","zuan","kuang","you","xu","lei",
-       "xian","chan","jiao","lu","chan","ying","cai","xiang|rang","qian","zui",
-       "zuan","luo","li|xi|sa","dao","lan","lei","lian","si","jiu","yu",
-       "hong|gong","zhou","xian|qian","he|ge","yue|yao","ji","wan","kuang","ji","ren",
-       "wei","yun","hong","chun","pi|bi","sha","gang","na","ren","zong",
-       "lun|guan","fen","zhi","wen","fang","zhu","zhen","niu","shu","xian",
-       "gan","xie","fu","lian","zu","shen","xi","zhi","zhong","zhou",
-       "ban","fu","chu","shao","yi","jing","dai","bang","rong","jie",
-       "ku","rao","die","hang","hui","gei|ji","xuan","jiang","luo|lao","jue",
-       "jiao","tong","bing","xiao","juan","xiu","xi","sui","tao","ji",
-       "ti","ji","xu","ling","ying","xu","qi","fei","chuo|chao","shang",
-       "gun","sheng","wei","mian","shou","beng","chou","tao","liu","quan",
-       "zong|zeng","zhan","wan","lv|lu","zhui","zi","ke","xiang","jian","mian",
-       "lan","ti","miao","ji|qi","yun|wen","hui","si","duo","duan","bian|pian",
-       "xian","gou","zhui","huan","di","lv","bian","min","yuan","jin",
-       "fu","ru","zhen","feng","cui|sui|shuai","gao","chan","li","yi","jian",
-       "bin","piao","man","lei","ying","suo|su","mou|miu|miao|mu|liao","sao","xie","liao",
-       "shan","zeng","jiang","qian","qiao|sao","huan","jiao|zhuo","zuan","fou","xie",
-       "gang","fou","que","fou","que","bo","ping","xiang","zhao","gang",
-       "ying","ying","qing","xia","guan","zun","tan","cheng","qi","weng",
-       "ying","lei","tan","lu","guan","wang","wang","wang","wang","han",
-       "rb","luo","fu","shen","fa","gu","zhu","ju","mao","gu",
-       "min","gang","ba|pi","gua","ti","juan","fu","shen","yan","zhao",
-       "zui","guai|gua","zhuo","yu","zhi","an","fa","lan","shu","si",
-       "pi","ma","liu","ba|pi","fa","li","chao","wei","bi","ji",
-       "zeng","chong","liu","ji","juan","mi","zhao","luo","pi","ji",
-       "ji","luan","yang|xiang","mi","qiang","da","mei","yang|xiang","ling","you",
-       "fen","ba","gao","yang","gu","qiang","zang","mei|gao","ling","yi|xi",
-       "zhu","di","xiu","qiang","yi","xian","rong","qun","qun","qiang",
-       "huan","suo","xian","yi","you","qiang|kong","qian|xian|yan","yu","geng","jie",
-       "tang","yuan","xi","fan","shan","fen","shan","lian","lei","geng",
-       "nou","qiang","chan","yu","hong|gong","yi","chong","weng","fen","hong",
-       "chi","chi","cui","fu","xia","ben","yi","la","yi","pi|bi|po",
-       "ling","liu","zhi","qu|yu","xi","xie","xiang","xi","xi","ke",
-       "qiao","hui","hui","xiao","sha","hong","jiang","di|zhai","cui","fei",
-       "dao|zhou","sha","chi","zhu","jian","xuan","chi","pian","zong","wan",
-       "hui","hou","he","he","han","ao","piao","yi","lian","hou|qu",
-       "ao","lin","pen","qiao","ao","fan","yi","hui","xuan","dao",
-       "yao","lao","lao","kao","mao","zhe","qi|shi","gou","gou","gou",
-       "die","die","er","shua","ruan|nuo","er|nai","nai","duan|zhuan","lei","ting",
-       "zi","geng","chao","hao","yun","ba|pa","pi","si|chi","si","qu|chu",
-       "jia","ju","huo","chu","lao","lun","ji|jie","tang","ou","lou",
-       "nou","jiang","pang","zha|ze","lou","ji","lao","huo","you","mo",
-       "huai","er","yi","ding","ye","da","song","qin","yun|ying","chi",
-       "dan","dan","hong","geng","zhi","pan","nie","dan","zhen","che",
-       "ling","zheng","you","wa|tui|zhuo","liao","long","zhi","ning","tiao","er|nv",
-       "ya","tie|zhe","guo","xu","lian","hao","sheng","lie","pin","jing",
-       "ju","bi","di|zhi","guo","wen","xu","ping","cong","ding","ni",
-       "ting","ju","cong","kui","lian","kui","cong","lian","weng","kui",
-       "lian","lian","cong","ao","sheng","song","ting","kui","nie","zhi",
-       "dan","ning","qie","ni|jian","ting","ting","long","yu","yu","zhao",
-       "si","su","yi","su","si","zhao","zhao","rou","yi","lei|le",
-       "ji","qiu","ken","cao","ge","bo|di","huan","huang","chi","ren",
-       "xiao","ru","zhou","yuan","du","gang","rong|chen","gan","chai","wo",
-       "chang","gu","zhi","qin|han","fu","fei","ban","pei","pang|pan","jian",
-       "fang","zhun|chun","you","na","ang","ken","ran","gong","yu","wen",
-       "yao","qi","pi|bi","qian","xi","xi","fei","ken","jing","tai",
-       "shen","zhong","zhang","xie","shen","wei","zhou","die","dan","fei|bi",
-       "ba","bo","qu","tian","bei","gua","tai","zi|fei","fei|ku","zhi",
-       "ni","ping|peng","zi","fu|zhou","pang|pan","zhen","xian","zuo","pei","jia",
-       "sheng","zhi","bao","mu","qu","hu","qia","chi","yin","xu",
-       "yang","long","dong","ka","lu","jing","nu","yan","pang","kua",
-       "yi","guang","hai","ge","dong","chi","jiao","xiong","xiong","er",
-       "an","heng","pian","neng|nai","zi","gui|kui","zheng","tiao","zhi","cui",
-       "mei","xie","cui","xie","mai","mai","ji","xie","nin","kuai",
-       "sa","zang","qi","nao","mi","nong","luan","wan","bo","wen",
-       "wan","xiu","jiao","jing","rou","heng","cuo","lie","shan","ting",
-       "mei","chun","shen","jia","te","juan","cu","xiu","xin","tuo",
-       "pao","cheng","nei","fu","dou","tuo","niao","nao","pi","gu",
-       "luo","li","lian","zhang","cui","jie","liang","shui","pi","biao",
-       "lun","pian","guo","juan","chui","dan","tian","nei","jing","nai",
-       "la","ye","a","ren","shen","zhui","fu","fu","ju","fei",
-       "qiang","wan","dong","pi","guo","zong","ding","wo","mei","ruan",
-       "zhuan","chi","cou","luo","ou","di","an","xing","nao","shu",
-       "shuan","nan","yun","zhong","rou","e","sai","tu","yao","jian",
-       "wei","jiao","yu","jia","duan","bi","chang","fu","xian","ni",
-       "mian","wa","teng","tui","bang","qian","lv","wa","shou","tang",
-       "su","zhui","ge","yi","bo","liao","ji","pi","xie","gao",
-       "lv","bin","ou","chang","lu|biao","guo","pang","chuai","biao","jiang",
-       "fu","tang","mo","xi","zhuan|chuan|chun","lv","jiao","ying","lv","zhi",
-       "xue","cun","lin","tong","peng","ni","chuai","liao","cui","kui",
-       "xiao","teng","fan|pan","zhi","jiao","shan","hu|wu","cui","run","xiang",
-       "sui","fen","ying","shan|dan","zhua","dan","kuai","nong","tun","lian",
-       "bi|bei","yong","jue","chu","yi","juan","la|ge","lian","sao","tun",
-       "gu","qi","cui","bin","xun","nao","wo|yue","zang","xian","biao",
-       "xing","kuan","la","yan","lu","huo","za","luo","qu","zang",
-       "luan","ni|luan","za","chen","qian|xian","wo","guang|jiong","zang|cang","lin","guang|jiong",
-       "zi","jiao","nie","chou|xiu","ji","gao","chou","mian|bian","nie","zhi",
-       "zhi","ge","jian","die|zhi","zhi|jin","xiu","tai","zhen","jiu","xian",
-       "yu","cha","yao","yu","chong","xi","xi","jiu","yu","yu",
-       "xing","ju","jiu","xin","she","she","she","jiu","shi","tan",
-       "shu","shi","tian","tan","pu","pu","guan","hua","tian","chuan",
-       "shun","xia","wu","zhou","dao","chuan","shan","yi","fan","pa",
-       "tai","fan","ban","chuan","hang","fang","ban","bi","lu","zhong",
-       "jian","cang","ling","zhu","ze","duo","bo","xian","ge","chuan",
-       "xia","lu","qiong","pang","xi","kua","fu","zao","feng","li",
-       "shao","yu","lang","ting","yu","wei","bo","meng","nian","ju",
-       "huang","shou","ke","bian","mu","die","dao","bang","cha","yi",
-       "sou","cang","cao","lou","dai","xue","yao","chong","deng","dang",
-       "qiang","lu","yi","ji","jian","huo","meng","qi","lu","lu",
-       "chan","shuang","gen","liang","jian","jian","se","yan","fu","ping",
-       "yan","yan","cao","ao","yi","le","ding","qiu","ai","nai",
-       "tiao","qiu","jie","peng","wan","yi","chai|cha","mian","mi","gan",
-       "qian","yu","yu","shao","xiong","du","hu|xia","qi","mang","zi",
-       "hui|hu","sui","zhi","xiang","bi|pi","fu","tun|chun","wei","wu","zhi",
-       "qi","shan","wen","qian","ren","fu","kou","jie|gai","lu","xu|zhu",
-       "ji","qin","qi","yuan|yan","fen","ba","rui","xin","ji","hua",
-       "lun|hua","fang","wu|hu","jue","gou","zhi","yun","qin","ao","chu",
-       "mao","ya","fei|fu","reng","hang","cong","chan|yin","you","bian","yi",
-       "qie","wei","li","pi","e","xian","chang","cang","zhu","su",
-       "di|ti","yuan","ran","ling","tai","tiao|shao","di","miao","qing","ji",
-       "yong","ke|he","mu","bei","bao","gou","min","yi","yi","ju|qu",
-       "pie","ruo|re","ku","zhu|ning","ni","pa|bo","bing","shan","xiu","yao",
-       "xian","ben","hong","ying","zuo|zha","dong","cha","die","nie","gan",
-       "hu","ping|peng","mei","fu","sheng|rui","gu","bi","wei","fu","zhuo",
-       "mao","fan","jia","mao","mao","ba","ci","mo","zi","zhi",
-       "chi","ji","jing","long","cong","niao","yuan","xue","ying","qiong",
-       "ge","ming","li","rong","yin","gen","qian","chai","chen","yu",
-       "hao","zi","lie","wu","ji","gui","ci","jian","ci","hou",
-       "guang","mang","cha","jiao","jiao","fu","yu","zhu","zi","jiang",
-       "hui","yin","cha","fa","rong","ru","chong","mang","tong","zhong",
-       "qian","zhu","xun","huan","fu","quan","gai","da","jing","xing",
-       "chuan","cao","jing","er","an","qiao","chi","ren","jian","ti",
-       "huang","ping","li","jin","lao","shu","zhuang","da","jia","rao",
-       "bi","ce","qiao","hui","ji","dang","zi","rong","hun","xing",
-       "luo","ying","qian","jin","sun","yin","mai","hong","zhou","yao",
-       "du","wei","li","dou","fu","ren","yin","he","bi","bu",
-       "yun","di","tu","sui","sui","cheng","chen","wu","bie","xi",
-       "geng","li","pu","zhu","mo","li","zhuang","zuo","tuo","qiu",
-       "suo|sha","suo","chen","peng|feng","ju","mei","meng","xing","jing","che",
-       "shen|xin","jun","yan","ting","you","cuo","guan|wan","han","you","cuo",
-       "jia","wang","su|you","niu","shao|xiao","xian","lang|liang","fu|piao","e","mo|mu",
-       "wen|wan|mian","jie","nan","mu","kan","lai","lian","shi","wo","tu",
-       "xian|lian","huo","you","ying","ying","neus","chun","mang","mang","ci",
-       "wan|yun","jing","di","qu","dong","jian","zou|chu","gu","la","lu",
-       "ju","wei","jun","nie|ren","kun","he","pu","zi|zai","gao","guo",
-       "fu","lun","chang","chou","song","chui","zhan","men","cai","ba",
-       "li","tu","bo","han","bao","qin","juan","xi","qin","di",
-       "jie|sha","pu","dang","jin","qiao|zhao","tai|zhi|chi","geng","hua","gu","ling",
-       "fei","qin|jin","an","wang","beng","zhou","yan","zu","jian","lin|ma",
-       "tan","shu","tian","dao","hu","qi","he","cui","tao","chun",
-       "bi","chang","huan","fei","lai","qi","meng","ping","wei","dan",
-       "sha","huan","yan","yi","tiao","qi","wan","ce","nai","zhen",
-       "tuo","jiu","tie","luo","bi","yi","pan","bo","pao","ding",
-       "ying","ying","ying","xiao","sa","qiu","ke","xiang","wan","yu",
-       "yu","fu","lian","xuan","xuan","nan","ce","wo","chun","shao",
-       "yu","bian","mao","an","e","luo|la|lao","ying","kuo","kuo","jiang",
-       "mian","zuo","zuo","zu","bao","rou","xi","ye","an","qu",
-       "jian","fu","lv","jing","pen","feng","hong","hong","hou","xing",
-       "tu","zhu|zhuo|zhe","zi","xiang","ren","ge","qia","qing","mi","huang",
-       "shen","pu","gai","dong","zhou","qian","wei","bo","wei","pa",
-       "ji","hu","zang","jia","duan","yao","jun","cong","quan","wei",
-       "zhen","kui","ting","hun","xi","shi","qi","lan","zong","yao",
-       "yuan","mei","yun","shu","di","zhuan","guan","ran","xue","chan",
-       "kai","kui|kuai","uu","jiang","lou","wei","pai","yong","sou","yin",
-       "shi","chun","shi","yun","zhen","lang","ru|na","meng","li","que",
-       "suan","yuan|huan","li","ju","xi","bang","chu","xu|shu","tu","liu",
-       "huo","dian","qian","ju","po","cuo","yuan","chu","yu","kuai",
-       "pan","pu","pu","na","shuo","xi","fen","yun","zheng","jian",
-       "ji","ruo","cang","en","mi","hao","sun","zhen","ming","sou",
-       "xu","liu","xi","gu","lang","rong","weng","gai|ge|he","cuo","shi",
-       "tang","luo","ru","suo","xuan","bei","yao|zhuo","gui","bi","zong",
-       "gun","zuo","tiao","ce","pei","lan","dan","ji","li","shen",
-       "lang","yu","ling","ying","mo","diao|tiao|di","tiao","mao","tong","zhu",
-       "peng","an","lian","cong","xi","ping","qiu|xu|fu","jin","chun","jie",
-       "wei","tui","cao","yu","yi","zi|ju","liao|lu","bi","lu","xu",
-       "bu","zhang","lei","qiang","man","yan","ling","ji","biao","gun",
-       "han","di","su","lu","she","shang","di","mie","hun","wan",
-       "bu","di","cuo","zhe","shen","xuan","wei","hu","ao","mi",
-       "lou","cu","zhong","cai","po","jiang","mi","cong","niao","hui",
-       "juan","yin","jian","nian","shu","yin","guo","chen","hu","sha",
-       "kou","qian","ma","zang","ze","qiang","dou","lian","lin","kou",
-       "ai","bi","li","wei","ji","qian","sheng","fan","meng","ou",
-       "chan","dian","xun","jiao","rui","rui","lei","yu","qiao","zhu",
-       "hua","jian","mai","yun","bao","you","qu","lu","rao","hui",
-       "e","ti","fei","jue","zui","fa","ru","fen","kui","shun",
-       "rui","ya","xu","fu","jue","dang","wu","dong","si","xiao",
-       "xi","sa","yun","shao","qi","jian","yun","sun","ling","yu",
-       "xia","weng","ji","hong","si","nong","lei","xuan","yun","yu",
-       "xi|xiao","hao","bao|bo","hao","ai","wei","hui","hui","ji","ci",
-       "xiang","wan|luan","mie","yi","leng","jiang","can","shen","qiang|se","lian",
-       "ke","yuan","da","ti","tang","xue","bi","zhan","sun","xian|lian",
-       "fan","ding","xie","gu","xie","shu","jian","hao|kao","hong","sa",
-       "xin","xun","yao","bai","sou","shu","xun","dui","pin","yuan|wei",
-       "ning","chou|zhou","mai|wo","ru","piao","tai","ji","zao","chen","zhen",
-       "er","ni","ying","gao","cong","xiao|hao","qi","fa","jian","xu",
-       "kui","jie|ji","bian","diao|zhuo","mi","lan","jin","cang|zang","miao","qiong",
-       "qi","xian","liao","ou","xian","su","lv","yi","mai","xie",
-       "li","yi","la","lei","jiao","di","zhi","bei","teng","yao|yue",
-       "mo","huan","biao|pao","fan","sou","tan","tui","qiong","qiao","wei",
-       "liu","hui","ou","gao","yun","bao","li","shu","zhu|chu","ai",
-       "lin","zao","xuan","qin","lai","huo","tuo","wu","rui","rui",
-       "qi","heng","lu","su","tui","mang","yun","ping","yu","xun",
-       "ji","jiong","xuan","mo","qiu","su","jiong","peng","nie","nie",
-       "rang","yi","xian","yu","ju","lian","lian","yin","qiang","ying",
-       "long","tou","hua","yue","ling","qu","yao","fan","mi","lan",
-       "gui","lan","ji","dang","man","lei","lei","hui","feng","zhi",
-       "wei","kui","zhan","huai","li","ji","mi","lei","huai","luo",
-       "ji","kui","lu","jian","sal","teng","lei","quan","xiao","yi",
-       "luan","men","bie","hu","hu","lu","nve","lv","si","xiao",
-       "qian","chu","hu","xu","cuo","fu","xu","xu","lu","hu",
-       "yu","hao","jiao","ju","guo","bao","yan","zhan","zhan","kui",
-       "bin","xi","shu","chong","qiu","diao","ji","qiu","ding","shi",
-       "xia","jue","zhe","she","yu","han","zi","hong","hui","meng",
-       "ge","sui","xia","chai","shi","yi","ma","xiang","fang|bang","e",
-       "ba","chi","qian","wen","wen","rui","bang|beng","pi","yue","yue",
-       "jun","qi","tong","yin","qi|zhi","can","yuan|wan","jue|que","hui","qin|qian",
-       "qi","zhong","ya","hao","mu","wang","fen","fen","hang","gong|zhong",
-       "zao","fu","ran","jie","fu","chi","dou","bao","xian","ni",
-       "dai|de","qiu","you","zha","ping","chi","you","he","han","ju",
-       "li","fu","ran","zha","gou|qu|xu","pi","pi|bo","xian","zhu","diao",
-       "bie","bing","gu","zhan","qu","she|yi","tie","ling","gu","dan",
-       "tun","ying","li","cheng","qu","mou","ge|luo","ci","hui","hui",
-       "mang|bang","fu","yang","wa","lie","zhu","yi","xian","kuo","jiao",
-       "li","yi|xu","ping","jie","ge|ha","she","yi","wang","mo","qiong",
-       "qie|ni","gui","qiong","zhi","man","lao","zhe","jia","nao","si",
-       "qi","xing","jie","qiu","xiao","yong","jia","tui","che","bei",
-       "e|yi","han","shu","xuan","feng","shen","shen","fu","xian","zhe",
-       "wu","fu","li","lang","bi","chu","yuan","you","jie","dan",
-       "yan","ting","dian","tui","hui","wo","zhi","zhong","fei","ju",
-       "mi","qi","qi","yu","jun","la","meng","qiang","si","xi",
-       "lun","li","die","tiao","tao","kun","han","han","yu","bang",
-       "fei","pi","wei","dun","yi","yuan","suo","quan","qian","rui",
-       "ni","qing","wei","liang","guo","wan","dong","e","ban","di",
-       "wang","can","yang","ying","guo","chan","ding","la","ke","ji",
-       "xie","ting","mao","xu","mian","yu","jie","shi","xuan","huang",
-       "yan","bian","rou","wei","fu","yuan","mei","wei","fu","ru",
-       "xie","you","qiu","mao","xia","ying","shi","chong","tang","zhu",
-       "zong","di","fu","yuan","kui","meng","la","dai","hu","qiu",
-       "die","li","wo","yun","qu","nan","lou","chun","rong","ying",
-       "jiang","ban","lang","pang","si","xi","ci","xi","yuan","weng",
-       "lian","sou","ban","rong","rong","ji","wu","xiu","han","qin",
-       "yi","bi","hua","tang","yi","du","nai|neng","he|xia","hu","gui|hui",
-       "ma","ming","yi","wen","ying","teng","zhong","cang","sao","qi",
-       "man","dao","shang","shi|zhe","cao","chi","di","ao","lu","wei",
-       "die|zhi","tang","chen","piao","qu|ju","pi","yu","chan|jian","luo","lou",
-       "qin","zhong","yin","jiang","shuai","wen","xiao","wan","zhe","zhe",
-       "ma","ma","guo","liu","mao","xi","cong","li","man","xiao",
-       "chang","zhang","mang|meng","xiang","mo","zui","si","qiu","te","zhi",
-       "peng","peng","jiao","qu","bie","liao","pan","gui","xi","ji",
-       "zhuan","huang","fei|ben","lao|liao","jue","jue","hui","yin|xun","chan","jiao",
-       "shan","nao","xiao","wu","chong","xun","si","chu","cheng","dang",
-       "li","xie","shan","yi","jing","da","chan","qi","ci","xiang",
-       "she","luo","qin","ying","chai","li","zei","xuan","lian","zhu",
-       "ze","xie","mang","xie","qi","rong","jian","meng","hao","ru",
-       "huo","zhuo","jie","pin","he","mie","fan","lei","jie","la",
-       "min","li","chun","li","qiu","nie","lu","du","xiao","zhu",
-       "long","li","long","feng","ye","pi","nang","gu","juan","ying",
-       "shu","xi","can","qu","quan","du","can","man","qu","jie",
-       "zhu","zhuo","xie","huang","nv","pei","nv","xin","zhong","mai",
-       "er","ke","mie","xi","xing|hang|heng","yan","kan","yuan","qu","ling",
-       "xuan","shu","xian","tong","xiang","jie","xian","ya","hu","wei",
-       "dao","chong","wei","dao","zhun","heng","qu","yi","yi","bu",
-       "gan","yu","biao","cha","yi","shan","chen","fu","gun","fen",
-       "shuai","jie","na","zhong","dan","ri","zhong","zhong","jie","zhi",
-       "xie","ran","zhi","ren","qin","jin","jun","yuan","mei","chai",
-       "ao","niao","hui","ran","jia","tuo","ling","dai","bao|pao","pao",
-       "yao","zuo","bi","shao","tan","ju|jie","he|ke","xue","xiu","zhen",
-       "yi","pa","fu","di","wa","fu","gun","zhi","zhi","ran",
-       "pan","yi","mao","tuo","na|jue","gou","xuan","zhe","qu","bei|pi",
-       "yu","xi","mi","bo","uu","fu","chi|nuo","chi|qi|duo|nuo","ku","ren",
-       "peng","jia|jie|qia","jian|zun","bo|mo","jie","er","ge","ru","zhu","gui|gua",
-       "yin","cai","lie","ka","hang","zhuang","dang","xu","kun","ken",
-       "niao","shu","jia","kun","cheng","li","juan","shen","pou","ge|jie",
-       "yi","yu","zhen","liu","qiu","qun","ji","yi","bu","zhuang",
-       "shui","sha","qun","li","lian","lian","ku","jian","bao","chan",
-       "bi|pi","kun","tao","yuan","ling","chi","chang","chou|dao","duo","biao",
-       "liang","chang|shBng","pei","pei","fei","yuan|gun","luo","guo","yan|an","du",
-       "xi|ti","zhi","ju","yi","qi","guo","gua","ken","qi","ti",
-       "ti","fu","chong","xie","bian","die","kun","duan","xiu","xiu",
-       "he","yuan","bao","bao","fu","yu","tuan","yan","hui","bei",
-       "zhu","lv","pao","dan","yun","ta","gou","da","huai","rong",
-       "yuan","ru","nai","jiong","suo","ban","tui","chi","sang","niao",
-       "ying","jie","qian","huai","ku","lian","lan","li","zhe","shi",
-       "lv","yi","die","xie","xian","wei","biao","cao","ji","qiang",
-       "sen","bao","xiang","bi","fu","jian","zhuan","jian","cui","ji",
-       "dan","za","fan","bo","xiang","xin","bie","rao","man","lan",
-       "ao","ze","gui","cao","sui","nong","chan","lian","bi","jin",
-       "dang","shu","tan","bi","lan","fu","ru","zhi","ta","shu",
-       "wa","shi","bai","xie","bo","chen","lai","long","xi","xian",
-       "lan","zhe","dai","ju","zan","shi","jian","pan","yi","lan",
-       "ya","xi","ya","yao","feng","tan|qin","fu","fiao","fu","ba|po",
-       "he","ji","ji","jian|xian","guan","bian","yan","gui","jue|jiao","pian",
-       "mao","mi","mi","pie|mie","shi","si","chan","zhen","jue|jiao","mi",
-       "tiao","lian","yao","zhi","jun","xi","shan","wei","xi","tian",
-       "yu","lan","e","du","qin|qing","pang","ji","ming","ying","gou",
-       "qu","zhan","jin","guan","deng","jian|bian","luo|luan","qu","jian","wei",
-       "jue|jiao","qu","luo","lan","shen","di","guan","jian|xian","guan","yan",
-       "gui","mi","shi","chan","lan","jue|jiao","ji","xi","di","tian",
-       "yu","gou","jin","qu","jiao|jue","qiu","jin","cu","jue","zhi",
-       "chao","ji","gu","dan","zi|zui","di","shang","hua|xie","quan","ge",
-       "shi","jie|xie","gui","gong","chu","jie|xie","hun","qiu","xing","su",
-       "ni","ji|qi","jue","zhi","zha","bi","xing","hu","shang","gong",
-       "zhi","xue|hu","chu","xi","yi","li|lu","jue","xi","yan","xi",
-       "yan","yan","ding","fu","qiu","qiu","jiao","hong","ji","fan",
-       "xun","diao","hong","chai","tao","xu","jie","dan","ren","xun",
-       "yin","shan","qi","tuo","ji","xun","yin","e","fen","ya",
-       "yao","song","shen","yin","xin","jue","xiao","ne","chen","you",
-       "zhi","xiong","fang","xin","chao","she","yan","sa","zhun","xu",
-       "yi","yi","su","chi","he","shen","he","xu","zhen","zhu",
-       "zheng","gou","zi","zi","zhan","gu","fu","jian","die","ling",
-       "di","yang","li","nao","pan","zhou","gan","yi","ju","yao",
-       "zha","tuo","yi","qu","zhao","ping","bi","xiong","qu","ba",
-       "da","zu","tao","zhu","ci","zhe","yong","xu","xun","yi",
-       "huang","he","shi","cha","xiao","shi","hen","cha","gou","gui",
-       "quan","hui","jie","hua","gai","xiang","wei","shen","chou","tong",
-       "mi","zhan","ming","luo","hui","yan","xiong","gua","er","bing",
-       "tiao|diao","yi|chi","lei","zhu","kuang","kua","wu","yu","teng","ji",
-       "zhi","ren","cu","lang","e","kuang","ei|xi","shi","ting","dan",
-       "bei|bo","chan","you","keng","qiao","qin","shua","an","yu","xiao",
-       "cheng","jie","xian","wu","wu","gao","song","bu","hui","jing",
-       "shuo|shui|yue","zhen","shuo|shui|yue","du","hua","chang","shui|shei","jie","ke","qu|jue",
-       "cong","xiao","sui","wang","xian","fei","chi|lai","ta","yi","ni|na",
-       "yin","diao|tiao","pi|bei","zhuo","chan","chen","zhun","ji","qi","tan",
-       "zhui","wei","ju","qing","dong","zheng","ze|zuo|zha|cuo","zou","qian","zhuo",
-       "liang","jian","chu|ji","xia|hao","lun","shen","biao","hua","bian","yu",
-       "die","xu","pian","shi|di","xuan","shi","hun","hua|gua","e","zhong",
-       "di","xie","fu","pu","ting","jian","qi","yu","zi","zhuan",
-       "xi|shai|ai","hui","yin","an","xian","nan","chen","feng","zhu","yang",
-       "yan","huang","xuan","ge","nuo","xu","mou","ye","wei","xing",
-       "teng","zhou","shan","jian","bo","kui","huang","huo","ge","ying",
-       "mi","xiao","mi","xi","qiang","chen","xue","ti","su","bang",
-       "chi","qian","shi","jiang","yuan","xie","he","tao","yao","yao",
-       "lu","yu","biao","cong","qing","li","mo","mo","shang","zhe",
-       "miu","jian","ze","jie","lian","lou","can","ou","gun","xi",
-       "zhuo","ao","ao","jin","zhe","yi","hu","jiang","man","chao",
-       "han","hua","chan","xu","zeng","se","xi","zha","dui","zheng",
-       "nao","lan","e","ying","jue","ji","zun","jiao","bo","hui",
-       "zhuan","wu","zen","zha","shi","qiao","tan","jian","pu","sheng",
-       "xuan","zao","tan","dang","sui","xian","ji","jiao","jing","zhan",
-       "nong","yi","ai","zhan","pi","hui","hua","yi","yi","shan",
-       "rang","rou","qian","dui","ta","hu","zhou","hao","ai","ying",
-       "jian","yu","jian","hui","du","zhe","juan|xuan","zan","lei","shen",
-       "wei","chan","li","yi|tui","bian","zhe","yan","e","chou","wei",
-       "chou","yao","chan","rang","yin","lan","chen","xie","nie","huan",
-       "zan","yi","dang","zhan","yan","du","yan","ji","ding","fu",
-       "ren","ji","jie","hong","tao","rang","shan","qi","tuo","xun",
-       "yi","xun","ji","ren","jiang","hui","ou","ju","ya","ne",
-       "xu|hu","e","lun","xiong","song","feng","she","fang","jue","zheng",
-       "gu","he","ping","zu","shi|zhi","xiong","zha","su","zhen","di",
-       "zhou","ci","qu","zhao","bi","yi","yi|dai","kuang","lei","shi",
-       "gua","shi","jie|ji","hui","cheng","zhu","shen","hua","dan","gou",
-       "quan","gui","xun","yi","zheng","gai","xiang|yang","cha","hun","xu",
-       "zhou|chou","jie","wu","yu","qiao","wu","gao","you","hui","kuang",
-       "shuo|shui|yue","song","ei|xi","qing","zhu","zou","nuo","du|dou","zhuo","fei",
-       "ke","wei","yu","shui","shen","diao","chan","liang","zhun","sui",
-       "tan","shen","yi","mou","chen","die","huang","jian","xie","xue",
-       "ye","wei","e","yu","xuan","chan","zi","an","yan","di",
-       "mi","pian","xu","mo","dang","su","xie","yao","bang","shi",
-       "qian","mi","jin","man","zhe","jian","miu","tan","zen","qiao",
-       "lan","pu","jue","yan","qian","zhan","chen","gu","qian","hong",
-       "xia","ji","hong","han","hong","xi","xi","huo","liao","han",
-       "du","long","dou","jiang","qi","chi","li","deng","wan","bi",
-       "shu","xian","feng","zhi","zhi","yan","yan","shi","chu","hui",
-       "tun","yi","tun","yi","jian","ba","hou","e","chu","xiang",
-       "huan","jian","ken","gai","ju","fu","xi","bin","hao","yu",
-       "zhu","jia","fen","xi","hu","wen","huan","bin","di","zong",
-       "fen","yi","zhi","bao","chai","an","pi","na","pi","gou",
-       "na","you","diao","mo","si","xiu","huan","ken|kun","he|mo","he|hao|mo",
-       "mo","an","mao","li","ni","bi","yu","jia","tuan","mao",
-       "pi","xi","yi","ju|lou","mo","chu","tan","huan","jue","bei",
-       "zhen","yuan|yun","fu","cai","gong","dai","yi","hang","wan","pin",
-       "huo","fan","tan","guan","ze|zhai","zhi","er","zhu","shi","bi",
-       "zi","er","gui","pian","bian","mai","dai|te","sheng","kuang","fei",
-       "tie","yi","chi","mao","he","bi|ben","lu","lin","hui","gai",
-       "pian","zi","jia|gu","xu","zei","jiao","gai","zang","jian","ying",
-       "jun","zhen","she","bin","bin","qiu","she","chuan","zang","zhou",
-       "lai","zan","ci","chen","shang","tian","pei","geng","xian","mai",
-       "jian","sui","fu","dan","cong","cong","zhi","lai","zhang","du",
-       "jin","xiong|min","chun","yun","bao","zai","lai","feng","cang","ji",
-       "sheng","ai","zhuan|zuan","fu","gou","sai","ze","liao","yi","bai",
-       "chen","wan","zhi","zhui","biao","yun","zeng","dan","zan","yan",
-       "pu","shan","wan","ying","jin","gan","xian","zang","bi","du",
-       "shu","yan","shang","xuan","long","gan","zang","bei","zhen","fu",
-       "yuan","gong","cai","ze","xian","bai","zhang","huo","zhi","fan",
-       "tan","pin","bian","gou","zhu","guan","er","jian","bi","shi",
-       "tie","gui","kuang","dai","mao","fei","he","yi","zei","zhi",
-       "jia|gu","hui","zi","lin","lu","zang","zi","gai","jin","qiu",
-       "zhen","lai","she","fu","du","ji","shu","shang","ci","bi",
-       "zhou","geng","pei","dan","lai","feng","zhui","fu","zhuan","sai",
-       "ze","yan","zan","yun","zeng","shan","ying","gan","chi","xi",
-       "she","nan","tong","xi","cheng","he","cheng","zhe","xia","tang",
-       "zou","zou","li","jiu","fu","zhao","gan","qi","shan","qiong",
-       "yin","xian","zi","jue","qin","chi","ci","chen","chen","die|tu",
-       "qie|ju","chao","di","xi","zhan","jue","yue","qu|cu","ji|jie","qu",
-       "chu","gua|huo","xue","zi","tiao","duo","lie","gan","suo","cu",
-       "xi","zhao","su","yin","ju","jian","que|qi|ji","tang","chuo","cui",
-       "lu","qu|cu","dang","qiu","zi","ti","qu|cu","chi","huang","qiao",
-       "qiao","jiao","zao","ti|yue","er","zan","zan","zu","pa","bao|bo",
-       "kua|wu","ke","dun","jue|gui","fu","chen","jian","fang|pang","zhi","ta",
-       "yue","ba|pao","qi","yue","qiang","tuo","tai","yi","jian|chen","ling",
-       "mei","ba","die","ku","tuo","jia","ci","pao","qia","zhu",
-       "ju","dian|tie|die","zhi","fu","pan|ban","ju|qie","shan","bo","ni","ju",
-       "li|luo","gen","yi","ji","dai|duo|chi","xian","jiao","duo","zhu","quan",
-       "kua","zhuai","gui","qiong","kui","xiang","die","lu","pian|beng","zhi",
-       "jie","tiao|tao","cai","jian","da","qiao","bi","xian","duo","ji",
-       "ju","ji","shu|chou","tu","chuo","jing","nie","xiao","bu","xue",
-       "qun","mu","shu","liang","yong","jiao","chou","qiao","mou","ta",
-       "jian","ji","wo","wei","chuo","jie","ji","nie","ju","nie",
-       "lun","lu","leng","huai","ju","chi","wan","quan","ti","bo",
-       "zu","qie","qi","cu","zong","cai","zong","peng","zhi","zheng",
-       "dian","zhi","yu","duo","dun","chuan","yong","zhong","di","zhe",
-       "chen","chuai","jian","gua","tang","ju","fu","cu","die","pian",
-       "rou","nuo","ti","cha","tui","jian","dao","cuo","xi","ta",
-       "qiang","nian","dian","ti","ji","nie","pan","liu","zan","bi",
-       "chong","lu","liao","cu","tang","dai","su","xi","kui","ji",
-       "zhi","qiang","di","pan","zong","lian","beng","zao","nian","bie",
-       "tui","ju","deng","ceng","xian","fan","chu","zhong","dun","bo",
-       "cu","cu","jue","jue","lin","ta","qiao","qiao","pu","liao",
-       "dun","cuan","guan","zao","ta","bi","bi","zhu","ju","chu",
-       "qiao","dun","chou","ji","wu","yue","nian","lin","lie","zhi",
-       "li|luo","zhi","chan","chu","duan","wei","long","lin","xian","wei",
-       "zuan","lan","xie","rang","sa|xie","nie","ta","qu","ji","cuan",
-       "zuan","xi","kui","jue","lin","shen","gong","dan","fen","qu",
-       "ti","duo","duo","gong","lang","ren","luo","ai","ji","ju",
-       "tang","kong","lao","yan","mei","kang","qu","lou","lao","duo",
-       "zhi","yan","ti","dao","ying","yu","che|ju","ya|zha|ga","gui","jun",
-       "wei","yue","xin|xian","dai","xuan","fan|gui","ren","shan","kuang","shu",
-       "tun","chen","dai","e","na","qi","mao","ruan","kuang","qian",
-       "zhuan","hong","hu","qu","kuang","di","ling","dai","ao","zhen",
-       "fan","kuang","yang","peng","bei","gu","gu","pao","zhu","rong",
-       "e","ba","zhou","zhi","yao","ke","yi","qing","shi","ping",
-       "er","gong","ju","jiao","guang","lu","kai","quan","zhou","zai",
-       "zhi","she","liang","yu","shao","you","wan","yin","zhe","wan",
-       "fu","qing","zhou","ni","ling","zhe","han","liang","zi","hui",
-       "wang","chuo","guo","kan","yi","peng","qian","gun","nian","ping",
-       "guan","bei","lun","pai","liang","ruan","rou","ji","yang","xian",
-       "chuan","cou","chun","ge","you","hong","shu","fu","zi","fu",
-       "wen","fan","zhan","yu","wen","tao","gu","zhen","xia","yuan",
-       "lu","jiao","chao","zhuan","wei","hun","xue","zhe","jiao","zhan",
-       "bu","lao","fen","fan","lin","ge","se","kan","huan","yi",
-       "ji","dui","er","yu","jian","hong","lei","pei","li","li",
-       "lu","lin","che","ya","gui","xuan","dai","ren","zhuan","e",
-       "lun","ruan","hong","gu","ke","lu","zhou","zhi","yi","hu",
-       "zhen","li","yao","qing","shi","zai","zhi","jiao","zhou","quan",
-       "lu","jiao","zhe","fu","liang","nian","bei","hui","gun","wang",
-       "liang","chuo","zi","cou","fu","ji","wen","shu","pei","yuan",
-       "xia","zhan|nian","lu","zhe","lin","xin","gu","ci","ci","bi|pi",
-       "zui","bian","la","la","ci","xue","ban","bian","bian","bian",
-       "xue","bian","ban","ci","bian","bian","chen","ru","nong","nong",
-       "zhen","chuo","chuo","yi","reng","bian","dao|bian","shi","yu","liao",
-       "da","chan","gan","qian","yu","yu","qi","xun","yi","guo",
-       "mai","qi","bi","wang|kuang","tu","zhun","ying","da","yun","jin",
-       "hang","ya","fan","wu","da","e","huan|hai","zhe|zhei","da","jin",
-       "yuan","wei","lian","chi","che","chi","tiao","zhi|li","yi","jiong",
-       "jia","chen","dai","er","di","po|pai","zhu|wang","die","ze","tao",
-       "shu","yi","keop","jing","hui","dong","you","mi","beng","ji",
-       "nai","yi","jie","zhui|dui","lie","xun","tui","song","kuo","tao",
-       "pang","hou","ni","dun","jiong","xuan","xun","bu","you","xiao",
-       "qiu","tou","zhu","qiu","di","di","tu","jing","ti","dou",
-       "yi","zhe","tong","guang","wu","shi","cheng","su","zao","qun",
-       "feng","lian","suo","hui","li","gu","lai","ben","cuo","zhu",
-       "beng","huan","dai","lu","you","zhou","jin","yu","chuo","kui",
-       "wei","ti","yi","da","yuan","luo","bi","nuo","yu","dang",
-       "sui","dun","sui","yan","chuan","chi","di","yu","shi","zhen",
-       "you","yun","e","bian","guo","e","xia","huang","qiu","dao",
-       "da","wei","nan","yi","gou","yao","chou","liu","xun","ta",
-       "di","chi","yuan","su","ta","qian","ma","yao","guan","zhang",
-       "ao","shi","ca","chi","su","zao","zhe","dun","di","lou",
-       "chi","cuo","lin","zun","rao","qian","xuan","yu","wei","e",
-       "liao","ju","shi","bi","yao","mai","xie","sui","huan|hai","zhan",
-       "teng","er","miao","bian","bian","la","li|chi","yuan","yao","luo",
-       "li","yi","ting","deng","qi","yong","shan","han","yu","mang",
-       "ru","qiong","xi","kuang","fu","kang|hang","bin","fang","xing","na|nei",
-       "xin","shen","bang","yuan","cun","huo","xie|ya|ye|yu|xu","bang","wu","ju",
-       "you","han","tai","qiu","bi","pi","bing","shao","bei","wa",
-       "di","zou","ye","lin","kuang","gui","zhu","shi","ku","yu",
-       "gai|hai","he","qie|xi","zhi","ji","xun|huan","hou","xing","jiao","xi",
-       "gui","na","lang","jia","kuai","zheng","lang","yun","yan","cheng",
-       "dou","chi","lv","fu","wu","fu","gao","hao","lang","jia",
-       "geng","jun","ying","bo","xi","bei","li|zhi","yun","bu","xiao|ao",
-       "qi","pi","qing","guo","zhou","tan","zou","ping","lai","ni",
-       "chen","you","bu","xiang","dan","ju","yong","qiao","yi","du|dou",
-       "yan","mei","ruo","bei","e","shu","juan","yu","yun","hou",
-       "kui","xiang","xiang","sou","tang","ming","xi","ru","chu","zi",
-       "zou","yi","wu","xiang","yun","hao","yong","bi","mao","chao",
-       "fu","liao","yin","zhuan","hu","qiao","yan","zhang","man","qiao",
-       "xu","deng","bi","xun","bi","zeng","wei","zheng","mao","shan",
-       "lin","po","dan","meng","ye","cao","kuai","feng","meng","zou",
-       "kuang","lian","zan","chan","you","qi","yan","chan","cuo","ling",
-       "huan","xi","feng","cuo","li","you","ding","qiu","zhuo","pei",
-       "zhou","yi","gan","yu","jiu","yan","zui","mao","dan","xu",
-       "dou","zhen","fen","yuan","fu","yun","tai","tian","qia","tuo",
-       "cu","han","gu","su","fa","chou","zai","ming","lao","chuo",
-       "chou","you","tong","zhi","xian","jiang","cheng","yin","tu","jiao",
-       "mei","ku","suan","lei","pu","zui","hai","yan","shai","niang",
-       "wei","lu","lan","yan","tao","pei","zhan","chun","tan|dan","zui",
-       "zhui","cu","kun","ti","xian","du","hu","xu","xing","tan",
-       "qiu|chou","chun","yun","fa","ke","sou","mi","quan","chou","cuo",
-       "yun","yong","ang","zha","hai","tang","jiang","piao","chan|chen","yu",
-       "li","zao","lao","yi","jiang","bu","jiao","xi","tan","po|fa",
-       "nong","yi|shi","li","ju","yan|lian|xian","yi","niang","ru","xun","chou",
-       "yan","ling","mi","mi","niang","xin","jiao","shi","mi","yan",
-       "bian","cai","shi","you","shi","shi","li","zhong|chong","ye","liang",
-       "li","jin","jin","ga","yi","liao","dao","zhao","ding","po",
-       "qiu","he","fu","zhen","zhi","ba","luan","fu","nai","diao",
-       "shan","qiao|jiao","kou","chuan","zi","fan","hua|yu","hua|wu","han","gang",
-       "qi","mang","ri|ren|jian","di|dai","si","xi","yi","chai","shi|yi","tu",
-       "xi","nv","qian","qiu","ri|ren|jian","pi|zhao","ye|ya","jin","ba","fang",
-       "chen","xing","dou","yue","qian","fu","bu","na","xin","e",
-       "jue","dun","gou","yin","qian","ban","sa","ren","chao","niu",
-       "fen","yun","yi","qin","pi","guo","hong","yin","jun","diao",
-       "yi","zhong","xi","gai","ri","huo","tai","kang","yuan","lu",
-       "e","qin","duo","zi","ni","tu","shi","min","gu","ke",
-       "ling","bing","si","gu","bo","pi","yu","si","zuo","bu",
-       "you","dian","jia","zhen","shi","shi","tie","ju","zuan","shi",
-       "ta","xuan","zhao","bao","he","bi","sheng","chu","shi","bo",
-       "zhu","chi","za","po","tong","qian","fu","zhai","mao","qian",
-       "fu","li","yue","pi","yang","ban","bo","jie","gou","shu",
-       "zheng","mu","xi","xi","di","jia","mu","tan","shen","yi",
-       "si","kuang","ka","bei","jian","tong","xing","hong","jiao","chi",
-       "er","ge","bing","shi","mao","ha","yin","jun","zhou","chong",
-       "xiang|jiong","tong","mo","lei","ji","yu|si","xu|hui","ren","zun","zhi",
-       "qiong","shan|shuo","chi|li","xian|xi","xing","quan","pi","tie","zhu","hou|xiang",
-       "ming","kua","diao|tiao|yao","xian|kuo|tian|gua","xian","xiu","jun","cha","lao","ji",
-       "pi","ru","mi","yi","yin","guang","an","diu","you","se",
-       "kao","qian","luan","si","ng","diao","han","rui","shi|zhi","keng",
-       "qiu","xiao","zhe|nie","xiu","zang","ti","cuo","xian|kuo|tian|gua","hong|gong","zhong|yong",
-       "tou|tu|dou","lv","mei|meng","lang","wan|jian","xin","yun|jun","bei","wu","su",
-       "yu","chan","ting|ding","bo","han","jia","hong","juan|jian|cuan","feng","chan",
-       "wan","zhi","si","xuan|juan","hua|wu","wu","tiao","kuang","zhuo|chuo","lve",
-       "xing|jing","qin","shen","han","lve","ye","chu","zeng","ju","xian",
-       "e","mang","pu","li","pan","rui","cheng","gao","li","te",
-       "bing","zhu","zhen","tu","liu","zui|nie","ju","chang","yuan|wan","jian",
-       "gang","diao","tao","shang","lun","ke","ling","pi","lu","li",
-       "qing","pei","juan","min","zui","peng","an","pi","xian","ya",
-       "zhui","lei","a","kong","ta","kun","du","nei","chui","zi",
-       "zheng","ben","nie","cong","chun","tan","ding","qi","qian","zhui",
-       "ji","yu","jin","guan","mao","chang","tian","xi","lian","diao",
-       "gu","cuo","shu","zhen","lu","meng","lu","hua","biao","ga",
-       "lai","ken","fang","bu","nai","wan","zan","hu","de","xian",
-       "uu","huo","liang","fa","men","kai","yang","chi","lian","guo",
-       "xian","du","tu","wei","zong","fu","rou","ji","e","jun",
-       "chen","ti","zha","hu","yang","duan","xia","yu","keng","sheng",
-       "huang","wei","fu","zhao","cha","qie","shi","hong","kui","nuo",
-       "mou","qiao","qiao","hou","tou","cong","huan","ye","min","jian",
-       "duan","jian","si","kui","hu","xuan","zhe","jie","zhen","bian",
-       "zhong","zi","xiu","ye","mei","pai","ai","jie","qian","mei",
-       "cuo|cha","da|ta","bang","xia","lian","suo|se","kai","liu","yao|zu","ye|ta|ge",
-       "nou","weng","rong","tang","suo","qiang|cheng","ge|li","shuo","chui","bo",
-       "pan","da","bi|pi","sang","gang","zi","wu","ying","huang","tiao",
-       "liu","kai","sun","sha","sou","wan|jian","gao|hao","zhen","zhen","lang",
-       "yi","yuan","tang","nie","xi","jia","ge","ma","juan","song",
-       "zu","suo","xia","feng","wen","na","lu","suo","ou","zu|chuo",
-       "tuan","xiu","guan","xuan","lian","shou|sou","ao","man","mo","luo",
-       "bi","wei","liu","di","san|qiao|can","cong","yi","lu|ao","ao","keng",
-       "qiang","cui","qi","shang","tang","man","yong","chan","feng","jing",
-       "biao","shu","lou","xiu","cong","long","zan","jian|zan","cao","li",
-       "xia","xi","kang","shuang","beng","zhang","qian","zheng","lu","hua",
-       "ji","pu","hui|sui|rui","qiang","po","lin","se","xiu","san|xian|sa","cheng",
-       "gui","si","liu","nao","huang","pie","sui","fan","qiao","quan",
-       "xi","tang","xiang","jue","jiao","zun","liao","qi","lao","dui",
-       "xin","zan","ji","jian","zhong","deng","ya","ying","dui","jue",
-       "nou","zan","pu","tie","uu","cheng","ding","shan","kai","jian",
-       "fei","sui","lu","juan","hui","yu","lian","zhuo","qiao","jian",
-       "zhuo","lei","bi","tie","huan","ye","duo","guo","dang","ju",
-       "fen","da","bei","yi","ai","zong","xun","diao","zhu","heng",
-       "zhui","ji","nie","he","huo","qing","bin","ying","gui","ning",
-       "xu","jian","jian","qian","cha","zhi","mie","li","lei","ji",
-       "zuan","kuang","shang","peng","la","du","shuo","chuo","lv","biao",
-       "pao","lu","xian","kuan","long","e","lu","xin","jian","lan",
-       "bo","jian","yao","chan","xiang","jian","xi","guan","cang","nie",
-       "lei","cuan","qu","pan","luo","zuan","luan","zao","nie","jue",
-       "tang","zhu","lan","jin","ga","yi","zhen","ding","zhao","po",
-       "liao","tu","qian","chuan","shan","sa|xi","fan","diao","men","nv",
-       "yang","chai","xing","gai","bu","tai","ju","dun","chao","zhong",
-       "na","bei","gang","ban","qian","yue|yao","qin","jun","wu","gou",
-       "kang","fang","huo","dou","niu","ba|pa","yu","qian","zheng","qian",
-       "gu","bo","ke","po","bu","bo","yue","zuan","mu","tan",
-       "jia","dian|tian","you","tie","bo","ling","shuo","qian|yan","mao","bao",
-       "shi","xuan","ta|tuo","bi","ni","pi","duo","xing","kao","lao",
-       "er","mang","ya","you","cheng","jia","ye","nao","zhi","dang|cheng",
-       "tong","lv","diao","yin","kai","zha","zhu","xian|xi","ting|ding","diu",
-       "xian|kuo|tian|gua","hua","quan","sha","ha|ke","diao|tiao|yao","ge","ming","zheng","se",
-       "jiao","yi","chan","chong","tang","an","yin","ru","zhu","lao",
-       "pu","wu","lai","te","lian","keng","xiao","suo","li","zeng",
-       "chu","guo","gao","e","xiu","cuo","lve","feng","xin","liu",
-       "kai","jian","rui","ti","lang","qin","ju","a","qiang","zhe",
-       "nuo","cuo","mao","ben","qi","de","ke","kun","chang","xi",
-       "gu","luo","chui","zhui","jin","zhi","xian","juan","huo","pei",
-       "tan","ding","jian","ju","meng","zi","qie","ying","kai","qiang",
-       "si","e","cha","qiao","zhong","duan","sou","huang","huan","ai",
-       "du","mei","lou","zi","fei","mei","mo","zhen","bo","ge",
-       "nie","tang","juan","nie","na","liu","gao","bang","yi","jia",
-       "bin","rong","biao","tang","man","luo","beng","yong","jing","di",
-       "zu","xuan","liu","xin","jue","liao","pu","lu","dui","lan",
-       "pu","cuan","qiang","deng","huo","lei","huan","zhuo","lian","yi",
-       "cha","biao","la","chan","xiang","chang","chang","jiu","ao","die",
-       "jie","liao","mi","chang|zhang","men","ma","shuan","shan","huo|shan","men",
-       "yan","bi","han|bi","bi","ci ka Bi lu","kai","kang","beng","hong","run",
-       "san","xian","xian|jian","jian","min","xia","lao","dou","zha","nao",
-       "zhan","peng","xia|ke","ling","bian|guan","bi","run","he","guan","ge",
-       "he","fa","chu","hong|xiang","gui","min","se","kun","lang","lv",
-       "ting","sha","ju","yue","yue","chan","qu","lin","chang","sha",
-       "kun","yan","wen","yan","e|yan","hun","yu","wen","hong","bao",
-       "hong|juan|xiang","qu","yao","wen","ban|pan","an","wei","yin","kuo","que",
-       "lan","du","quan","pBi ying|po he deng","tian","nie","ta","kai","he","que",
-       "chuang","guan","dou","qi","kui","tang|chang","guan","piao","kan|han","xi|se|ta",
-       "hui","chan","bi","dang","huan","ta","wen","ta","men","shuan",
-       "shan","yan","han|bi","bi","wen","chuang","run","wei","xian","hong",
-       "jian","min","kang","men","zha","nao","gui","wen","ta","min",
-       "lv","kai","fa","ge","he","kun","jiu","yue","lang","du",
-       "yu","yan","chang","xi","wen","hun","yan","e","chan","lan",
-       "qu","hui","kuo","que","he","tian","ta","que","kan|han","huan",
-       "fu","fu","le","dui","xin","qian","wu","yi","tuo","yin",
-       "yang","dou","e","sheng","ban","pei","keng","yun","ruan","zhi",
-       "pi","jing","fang","yang","yin","zhen","jie","cheng","e","qu",
-       "di","zu","zuo","dian","lin","a","tuo","tuo","bei","bing",
-       "fu","ji","lu","long","chen","xing","duo","lou","mo","jiang",
-       "shu","duo","xian","er","gui","yu","gai","shan","jun","qiao",
-       "xing","chun","wu","bi","xia","shan","sheng","zhi","pu","dou",
-       "yuan","zhen","chu","xian","dao","nie","yun","xian","pei","fei",
-       "zou","qi","dui","lun","yin","ju","chui","chen","pi","ling",
-       "tao","xian","lu","sheng","xian","yin","zhu","yang","reng","xia",
-       "chong","yan","yin","yu|yao|shu","di","yu","long","wei","wei","nie",
-       "dui|zhui","sui|duo","an","huang","jie","sui","yin","qi|gai|ai","yan","hui|duo",
-       "ge","yun","wu","wei|kui","ai","xi","tang","ji","zhang","dao",
-       "ao","xi","yin","sa","rao","lin","tui","deng","pi","sui",
-       "sui","ao|yu","xian","fen","ni","er","ji","dao","xi","yin",
-       "zhi","hui|duo","long","xi","li|dai","li|dai","li|dai","zhui|cui|wei","hu|he","zhi",
-       "sun","jun|juan","nan|nuo","yi","que|qiao","yan","qin","jian","xiong","ya",
-       "ji","gu","huan","zhi","gou","jun|juan","ci","yong","ju","chu",
-       "hu","za","luo","yu","chou","diao","sui","han","huo","shuang",
-       "guan|huan","chu","za","yong","ji","gui|xi","chou","liu","li","nan|nuo",
-       "yu","za","chou","ji","yu","yu","xue","na","fou","se|xi",
-       "mu","wen","fen","pang","yun","li","chi","yang","ling","lei",
-       "an","bao","wu|meng","dian","dang","hu","wu","diao","xu","ji",
-       "mu","chen","xiao","zha","ting","zhen","pei","mei","ling","qi",
-       "zhou","huo","sha","fei","hong","zhan","yin","ni","shu","tun",
-       "lin","ling","dong","ying","wu","ling","shuang","ling","xia","hong",
-       "yin","mai","mai","yun","liu","meng","bin","wu","wei","kuo",
-       "yin","xi","yi","ai","dan","teng","xian","yu","lu","long",
-       "dai","ji","pang","yang","ba","pi","wei","uu","xi","ji",
-       "mai","meng","meng","lei","li","huo","ai","fei","dai","long",
-       "ling","ai","feng","li","bao","he","he","he","bing","qing",
-       "qing","liang","tian","zheng","jing","cheng","qing","jing","liang","dian",
-       "jing","tian","fei","fei","kao","mi","mian","mian","pao","ye",
-       "mian","hui","ye","ge","ding","cha","jian","ren","di","du",
-       "wu","ren","qin","jin","xue","niu","ba","yin","sa","na",
-       "mo","zu","da","ban","xie","yao","tao","bei","jie","hong",
-       "pao","yang","bing","yin","ge|ta|sa","tao","jie|ji","xie","an","an",
-       "hen","gong","qia","da","qiao","ting","man|men","bian|ying","sui","tiao",
-       "qiao|shao","xuan|juan","kong","beng","ta","shang|zhang","bing|pi|bi|bei","kuo","ju","la",
-       "xie|die","rou","bang","eng","qiu","qiu","he","qiao","mu|mou","ju",
-       "jian","bian","di","jian","wen|yun","tao","gou","ta","bei","xie",
-       "pan","ge","bi|bing","kuo","tang","lou","gui","qiao","xue","ji",
-       "jian","jiang","chan","da","huo","xian","qian","du","wa","jian",
-       "lan","wei","ren","fu","mei|wa","quan","ge","wei","qiao","han",
-       "chang","kuo","rou","yun","she|xie","wei","ge","bai","tao","gou",
-       "yun","gao","bi","wei","sui","du","wa","du","wei","ren",
-       "fu","han","wei","yun|wen","tao","jiu","jiu","xian","xie","xian",
-       "ji","yin","za","yun","shao","le","peng","huang","ying","yun",
-       "peng","an","yin","xiang","hu","ye","ding","qing","qiu","xiang",
-       "shun","han","xu","yi","xu","e","song","kui","qi","hang",
-       "yu","wan","ban","dun","di","dan","pan","po","ling","che",
-       "jing","lei","he","qiao","e","e","wei","jie","kuo","shen",
-       "yi","yi","ke","dui","yu","ping","lei","fu","jia","tou",
-       "hui","kui","jia","luo","ting","cheng","ying","jun","hu","han",
-       "geng","tui","tui","bin","lai","tui","zi","zi","chui","ding",
-       "lai","tan","han","qian","ke","cui","jiong","qin","yi","sai",
-       "ti","e","e","yan","wen","kan","yong","zhuan","yan","xian",
-       "xin","yi","yuan","sang","dian","dian","jiang","kui","lei","lao",
-       "piao","wai","man","cu","yao","hao","qiao","gu","xun","yan",
-       "hui","chan","ru","meng","bin","xian","pin","lu","lan","nie",
-       "quan","ye","ding","qing","han","xiang","shun","xu","xu","wan",
-       "gu","dun","qi","ban","song","hang","yu","lu","ling","po",
-       "jing|geng","jie|xie|jia","jia","ting","he|ge","ying","jiong","ke","yi","pin|bin",
-       "hui","tui","han","ying","ying","ke","ti","yong","e","zhuan",
-       "yan","e","nie","man","dian","sang","hao","lei","chan|zhan","ru",
-       "pin","quan","feng","biao|diu","gua","fu","xia","zhan","biao","sa",
-       "ba|fu","tai","lie","gua","xuan","xiao","ju","biao","si","wei",
-       "yang","yao","sou","kai","sao|sou","fan","liu","xi","liu|liao","piao",
-       "piao","liu","biao","biao","biao","liao","biao","se","feng","xiu",
-       "feng","yang","zhan","biao","sa","ju","si","sou","yao","liu",
-       "piao","biao","biao","fei","fan","fei","fei","shi|si|yi","shi","can",
-       "ji","ding","si","tuo","zhan","sun","xiang","tun","ren","yu",
-       "yang|juan","chi","yin","fan","fan","sun","yin","zhu|tou","si","zuo|ze|zha",
-       "bi","jie","tao","bao","ci","tie","si","bao","shi","duo",
-       "hai","ren","tian","jiao","he","bing","yao","tong","ci","xiang",
-       "yang","juan","er","yan","le","xi","can","bo","nei","e",
-       "bu","jun","dou","su","yu","shi","yao","hun","guo","shi",
-       "jian","chuo","bing","xian","bu","ye","dan","fei","zhang","wei",
-       "guan","e","nuan","yun","hu","huang","tie","hui","jian","hou",
-       "ai","xing","fen","wei","gu","cha","song","tang","bo","gao",
-       "xi","kui","liu","sou","tao","ye","wen","mo","tang","man",
-       "bi","yu","xiu","jin","san","kui","zhuan","shan","xi","dan",
-       "yi","ji","rao","cheng","yong","tao","wei","xiang","zhan","fen",
-       "hai","meng","yan","mo","chan","xiang","luo","zan","nang","shi",
-       "ding","ji","tuo","xing","tun","xi","ren","yu","chi","fan",
-       "yin","jian","shi","bao","si","duo","yi","er","rao","xiang",
-       "he","ge","jiao","xi","bing","bo","dou","e","yu","nei",
-       "jun","guo","hun","xian","guan","cha","kui","gu","sou","chan",
-       "ye","mo","bo","liu","xiu","jin","man","san","zhuan","nang",
-       "shou","kui","guo","xiang","fen","bo","ni","bi","bo","tu",
-       "han","fei","jian","an","ai","fu","xian","yun|wo","xin","fen",
-       "pin","xin","ma","yu","feng|ping","han","di","tuo|duo","tuo|zhe","chi",
-       "xun","zhu","zhi|shi","pei","xin|jin","ri","sa","yun","wen","zhi",
-       "dan","lu","you","bo","bao","jue|kuai","tuo|duo","yi","qu","wen",
-       "qu","jiong","po","zhao","yuan","peng","zhou","ju","zhu","nu",
-       "ju","pi","zang","jia","ling","zhen","tai|dai","fu","yang","shi",
-       "bi","tuo","tuo","si","liu","ma","pian","tao","zhi","rong",
-       "teng","dong","xun|xuan","quan","shen","jiong","er","hai","bo","zhu",
-       "yin","luo","zhou","dan","hai","liu","ju","song","qin","mang",
-       "liang|lang","han","tu","xuan","tui","jun","e","cheng","xing","dai",
-       "lu","zhui","zhou","she","pian","kun","tao","lai","zong","ke",
-       "qi","qi","yan","fei","sao","yan","ge","yao","wu","pian",
-       "cong","pian","qian","fei","huang","qian","huo","yu","ti","quan",
-       "xia","zong","kui","rou","si","gua","tuo","gui","sou","qian",
-       "cheng","zhi","liu","peng","teng","xi","cao","du","yan","yuan",
-       "zou","sao","shan","qi","zhi","shuang","lu","xi","luo","zhang",
-       "mo","ao","can","piao","cong","qu","bi","zhi","yu","xu",
-       "hua","bo","su","xiao","lin","zhan","dun","liu","tuo","ceng",
-       "dian","jiao","tie","yan","luo","zhan","jing","yi","ye","tuo",
-       "pin","zhou","yan","long","lv","teng","xiang","ji","shuang","ju",
-       "xi","huan","li","biao","ma","yu","duo","xun","chi","qu",
-       "ri","bo","lv","zang","shi","si","fu","ju","zou","zhu",
-       "tuo","nu","jia","yi","dai","xiao","ma","yin","jiao","hua",
-       "luo","hai","pian","biao","li","cheng","yan","xing","qin","jun",
-       "qi","qi","ke","zhui","zong","su","can","pian","zhi","kui",
-       "sao","wu","ao","liu","qian","shan","piao|biao","luo","cong","chan",
-       "zhou","ji","shuang","xiang","gu","wei","wei","wei","yu","gan",
-       "yi","ang","tou","jie","bao","bei|mo","ci","ti","di","ku",
-       "hai","qiao|xiao","hou","kua","ge","tui","geng","pian","bi","ke",
-       "qia","ou","sui","lou","bo","xiao","bang","bo|jue","ci","kuan",
-       "bin","mo","liao","lou","xiao","du","zang","sui","ti","bin",
-       "kuan","lu","gao","gao","qiao","kao","qiao","lao","sao","biao",
-       "kun","kun","di","fang","xiu","ran","mao","dan","kun","bin",
-       "fa","tiao","pi","zi","fa","ran","ti","bao","bi|po","mao|meng",
-       "fu","er","er","qu","gong","xiu","kuo|yue","ji","peng","zhua",
-       "shao","sha","ti","li","bin","zong","ti","peng","song","zheng",
-       "quan","zong","shun","jian","duo","hu","la","jiu","qi","lian",
-       "zhen","bin","peng","ma","san","man","man","seng","xu","lie",
-       "qian","qian","nong","huan","kuo","ning","bin","lie","rang","dou",
-       "dou","nao","hong","xi","dou","kan","dou","dou","jiu","chang",
-       "yu","yu","ge","yan","fu","zeng","gui","zong","liu","gui",
-       "shang","yu","gui","mei","ji","qi","ga","kui","hun","ba",
-       "bo","mei","xu","yan","xiao","liang","yu","tui","qi","wang",
-       "liang","wei","gan","chi","piao","bi","mo","ji","xu","chou",
-       "yan","zhan","yu","dao","ren","ji","ba","hong","tuo","diao",
-       "ji","yu","e","ji","sha","hang","tun","mo","jie","shen",
-       "ban","yuan","pi","lu","wen","hu","lu","za","fang","fen",
-       "na","you","pian","mo","he","xia","qu","han","pi","ling",
-       "tuo","ba","qiu","ping","fu","bi","ci|ji","wei","ju","diao",
-       "bo|ba","you","gun","pi","nian","xing","tai","bao","fu","zha",
-       "ju","gu","shi","dong","chou","ta","jie","shu","hou","xiang",
-       "er","an","wei","zhao","zhu","yin","lie","luo|ge","tong","yi",
-       "yi","bing","wei","jiao","ku","gui|xie|wa|kui","xian","ge","hui","lao",
-       "fu","kao","xiu","tuo","jun","ti","mian","shao","zha","suo",
-       "qin","yu","nei","zhe","gun","geng","su","wu","qiu","shan",
-       "pu|bu","huan","tiao","li","sha","sha","kao","meng","cheng","li",
-       "zou","xi","yong","shen","zi","qi","qing","xiang","nei","chun",
-       "ji","diao","qie","gu","zhou","dong","lai","fei","ni","yi|si",
-       "kun","lu","jiu","chang","jing","lun","ling","zou","li","meng",
-       "zong","zhi","nian","hu","yu","di","shi","shen","huan","ti",
-       "hou","xing","zhu","la","zong","ji","bian","bian","huan","quan",
-       "zei","wei","wei","yu","chun","rou","die","huang","lian","yan",
-       "qiu","qiu","jian","bi","e","yang","fu","sai","jian","xia",
-       "tuo","hu","shi","ruo","xuan","wen","jian","hao","wu","pang",
-       "sao","liu","ma","shi","shi","guan","zi","teng","ta","yao",
-       "e","yong","qian","qi","wen","ruo","ha ta ha ta","lian","ao","le",
-       "hui","min","ji","tiao","qu","jian","shen","man","xi","qiu",
-       "piao","ji","ji","zhu","jiang","xiu","zhuan","yong","zhang","kang",
-       "xue","bie","yu","qu","xiang","bo","jiao","xun","su","huang",
-       "zun","shan","shan","fan","gui","lin","xun","yao","xi","zeng",
-       "xiang","fen","guan","hou","kuai","zei","sao","zhan","gan","gui",
-       "ying","li","chang","lei","se","ai","ru","ji","xu","hu",
-       "shu","li","lie","le","mie","zhen","xiang","e","lu","guan",
-       "li","xian","yu","dao","ji","you","tun","lu","fang","ba",
-       "he|ge","ba","ping","nian","lu","you","zha","fu","bo|ba","bao",
-       "hou","pi","tai","gui|xie","jie","kao","wei","er","tong","zei",
-       "hou","kuai","ji","jiao","xian","zha","xiang","xun","geng","li",
-       "lian","jian","li","shi","tiao","gun","sha","huan","jun","ji",
-       "yong","qing","ling","qi","zou","fei","kun","chang","gu","ni",
-       "nian","diao","jing","shen","shi","zi","fen","die","bi","chang",
-       "ti","wen","wei","sai|xi","e","qiu","fu","huang","quan","jiang",
-       "bian","sao","ao","qi","ta","guan","yao","pang","jian","le",
-       "biao","xue","bie","man","min","yong","wei","xi","gui|jue","shan",
-       "lin","zun","hu","gan","li","zhan|shan","guan","niao|diao","yi","fu",
-       "li","jiu","bu","yan","fu","diao|zhao","ji","feng","ru","gan|han|yan",
-       "shi","feng","ming","bao","yuan","zhi","hu","qin","fu|gui","ban|fen",
-       "wen","jian|qian|zhan","shi","yu","fou","yao","jue","jue","pi","huan",
-       "zhen","bao","yan","ya","zheng","fang","feng","wen","ou","dai",
-       "jia","ru","ling","mie","fu","tuo","min","li","bian","zhi",
-       "ge","yuan","ci","qu","xiao","chi","dan","ju","yao","gu",
-       "zhong","yu","yang","yu","ya","die","yu","tian","ying","dui",
-       "wu","er","gua","ai","zhi","yan","heng","xiao","jia","lie",
-       "zhu","yang","yi","hong","lu","ru","mou","ge","ren","jiao",
-       "xiu","zhou","chi","luo","heng","nian","e","luan","jia","ji",
-       "tu","huan","tuo","bu","wu","juan","yu","bo","jun","jun",
-       "bi","xi","jun","ju","tu","jing","ti","e","e","kuang",
-       "hu","wu","shen","lai","zan","pan","lu","pi","shu","fu",
-       "an","zhuo","peng","qin","qian","bei","diao","lu","que","jian",
-       "ju","tu","ya","yuan","qi","li","ye","zhui","kong","duo",
-       "kun","sheng","qi","jing","yi","yi","jing","zi","lai","dong",
-       "qi","chun","geng","ju","qu","yi","zun","ji","shu","ying",
-       "chi","miao","rou","an","qiu","ti|chi","hu","ti|chi","e","jie",
-       "mao","fu|bi","chun","tu","yan","he|jie","yuan","pian|bian","kun","mei",
-       "hu","ying","chuan|zhi","wu","ju","dong","cang|qiang","fang","he|hu","ying",
-       "yuan","xian","weng","shi","he","chu","tang","xia","ruo","liu",
-       "ji","gu|hu","jian","sun|xun","han","ci","ci","yi","yao","yan",
-       "ji","li","tian","kou","ti","ti","yi","tu","ma","xiao",
-       "gao","tian","chen","ji","tuan","zhe","ao","yao","yi","ou",
-       "chi","zhi","liu","yong","lou|lv","bi","shuang","zhuo","yu","wu",
-       "jue","yin","ti","si","jiao","yi","hua","bi","ying","su",
-       "huang","fan","jiao","liao","yan","gao","jiu","xian","xian","tu",
-       "mai","zun","yu","ying","lu","tuan","xian","xue","yi","pi",
-       "zhu","luo","xi","yi","ji","ze","yu","zhan","ye","yang",
-       "pi","ning","hu","mi","ying","meng","di","yue","yu","lei",
-       "bu","lu","he","long","shuang","yue","ying","guan","qu","li",
-       "luan","niao","jiu","ji","yuan","ming","shi","ou","ya","cang",
-       "bao","zhen","gu","dong","lu","ya","xiao","yang","ling","chi",
-       "qu","yuan","xue","tuo","si","zhi","er","gua","xiu","heng",
-       "zhou","ge","luan","hong","wu","bo","li","juan","hu","e",
-       "yu","xian","ti","wu","que","miao","an","kun","bei","peng",
-       "qian","chun","geng","yuan","su","hu","he","e","gu","qiu",
-       "ci","mei","wu","yi","yao","weng","liu","ji","yi","jian",
-       "he","yi","ying","zhe","liu","liao","jiao","jiu","yu","lu",
-       "huan","zhan","ying","hu","meng","guan","shuang","lu","jin","ling",
-       "jian","xian","cuo","jian","jian","yan","cuo","lu","you","cu",
-       "ji","pao|biao","cu","pao","zhu|cu","jun|qun","zhu","jian","mi","mi",
-       "yu","liu","chen","jun","lin","ni","qi","lu","jiu","jun",
-       "jing","li","xiang","xian","jia","mi","li","she","zhang","lin",
-       "jing","qi","ling","yan","cu","mai","mai","he","chao","fu",
-       "mian","mian","fu","pao","qu","qu","mou","fu","xian","lai",
-       "qu","mian","chi","feng","fu","qu","mian","ma","mo|me","mo|me",
-       "hui","mi","zou","nun","fen","huang","huang","jin","guang","tian",
-       "tou","hong","hua","kuang","hong","shu","li","nian","chi","hei",
-       "hei","yi","qian","dan","xi","tun","mo","mo","qian","dai",
-       "chu","you","dian","yi","xia","yan","qu","mei","yan","qing",
-       "yue","li","dang","du","can","yan","yan","yan","dan|shen","an",
-       "zhen|yan","dai","can","yi","mei","dan|zhan","yan","du","lu","zhi",
-       "fen","fu","fu","min|mian|meng","min|mian|meng","yuan","cu","qu","chao","wa",
-       "zhu","zhi","meng","ao","bie","tuo","bi","yuan","chao","tuo",
-       "ding","mi","nai","ding","zi","gu","gu","dong","fen","tao",
-       "yuan","pi","chang","gao","cao","yuan","tang","teng","shu","shu",
-       "fen","fei","wen","ba","diao","tuo","zhong","qu","sheng","shi",
-       "you","shi","ting","wu","ju","jing","hun","ju","yan","tu",
-       "si","xi","xian","yan","lei","bi","yao","qiu","han","wu",
-       "wu","hou","xie","e","zha","xiu","weng","zha","nong","nang",
-       "qi","zhai","ji","zi","ji","ji","qi","ji","chi","chen",
-       "chen","he","ya","yin","xie","bao","ze","xie","zi","chi",
-       "yan","ju","tiao","ling","ling","chu","quan","xie","yin","nie",
-       "jiu","yao","chuo","yun","yu","chu","yi","ni","ze","zou",
-       "qu","yun","yan","yu","e","wo","yi","ci","zou","dian",
-       "chu","jin","ya","chi","chen","he","yin|ken","ju","ling","bao",
-       "tiao","zi","yin|ken","yu","chuo","qu","wo","long","pang","gong|wo",
-       "pang","yan","long","long","gong","kan","da","ling","da","long",
-       "gong","kan","gui|jun|qiu","qiu","bie","gui|jun|qiu","yue","chui","he","jiao",
-       "xie","yu"};
+static const char *const pinyin_spell_table[] = {
+       "yi", "ding|zheng", "kao|qiao|yu", "qi", "shang", "xia", "mo", "wan|mo", "zhang", "san",
+       "shang", "xia", "qi|ji", "bu|fou", "yu", "mian", "gai", "chou", "chou", "zhuan",
+       "qie|ju", "pi", "shi", "shi", "qiu", "bing", "ye", "cong", "dong", "si",
+       "cheng", "diu", "qiu", "liang", "diu", "you", "liang", "yan", "bing", "sang",
+       "gun", "jiu", "ge", "ya", "pan", "zhong", "ji", "jie", "feng", "guan|kuang",
+       "chuan", "chan", "lin", "zhuo", "zhu", "ba", "wan", "dan", "wei", "zhu",
+       "jing", "li", "ju", "pie", "fu", "yi|ji", "yi", "nai", "wu", "jiu",
+       "jiu", "tuo|zhe", "me|yao|mB", "yi", "ho", "zhi", "wu", "zha", "hu", "fa",
+       "le|yue", "yin", "ping", "pang", "qiao", "hu", "guai", "cheng|sheng", "cheng|sheng", "yi",
+       "hao", "zhe", "mie|nie", "jiu", "qi", "ye", "xi", "xiang", "gai", "jiu",
+       "hal", "hol", "shu", "dou", "shi", "ji", "nang", "kal", "keol", "tol",
+       "mol", "ol", "mai", "luan", "cal", "ru", "xue", "yan", "phoi", "sha",
+       "na", "qian", "sol", "er", "zu", "ceor", "qian|gan", "zhi|luan", "gui", "qian",
+       "luan", "lin", "yi", "jue", "liao|le", "ma", "yu", "zheng", "shi", "shi",
+       "er", "chu", "yu", "kui", "yu", "yun", "hu", "qi", "wu", "jing",
+       "si", "sui", "gen", "gen", "ya", "xie|suo", "ya", "qi|zhai", "ya", "ji|qi",
+       "tou", "wang|wu", "kang", "da", "jiao", "hai", "yi", "chan", "heng|peng", "mu",
+       "ye", "xiang", "jing", "ting", "liang", "xiang", "jing", "ye", "qin|qing", "bo",
+       "you", "xie", "dan", "lian", "duo", "wei|men", "ren", "ren", "ji", "ji",
+       "wang", "yi", "shi|shen", "ren", "le", "ding", "ze", "jin", "pu", "chou|qiu",
+       "ba", "zhang", "jin", "jie", "bing", "reng", "cong|zong", "fo", "jin|san", "lun",
+       "bing", "cang", "zi|zai", "shi", "ta", "zhang", "fu", "xian", "xian", "tuo|cha|duo",
+       "hong", "tong", "ren", "qian", "gan|han", "yi|ge", "bo", "dai", "ling", "yi",
+       "chao", "chang|zhang", "sa", "chang", "yi", "mu", "men", "ren", "fan", "chao|miao",
+       "yang|ang", "qian", "zhong", "pi", "wo", "wu", "jian", "jia|jie", "yao|fo", "feng",
+       "cang", "ren", "wang", "fen|bin", "di", "fang", "zhong", "qi", "pei", "yu",
+       "diao", "dun", "wen", "yi", "xin", "kang", "yi", "ji", "ai", "wu",
+       "ji|qi", "fu", "fa", "xiu|xu", "jin", "pi", "dan", "fu", "tang", "zhong",
+       "you", "huo", "hui|kuai", "yu", "cui", "yun", "san", "wei", "chuan|zhuan", "che|ju",
+       "ya", "qian", "shang", "chang", "lun", "cang|chen", "xun", "xin", "wei", "zhu",
+       "chi", "xian|xuan", "nu", "bo|bai|ba", "gu", "ni", "ni", "xie", "ban", "xu",
+       "ling", "zhou", "shen", "qu", "si|ci", "peng", "si|shi", "qie|jia|ga", "pi", "zhi",
+       "si", "yi|chi", "zheng", "dian|tian", "han|gan", "mai", "dan", "zhu", "bu", "qu",
+       "bi", "zhao|shao", "ci", "wei", "di", "zhu", "zuo", "you", "yang", "ti|ben",
+       "zhan|dian", "he", "bi", "tuo", "she", "yu", "yi|die", "fo|fu|bi|bo", "zuo", "gou|kou",
+       "ning", "tong", "ni", "xian", "qu", "yong", "wa", "qian", "shi", "ka",
+       "bao", "pei", "hui|huai", "ge", "lao", "xiang", "ge", "yang", "bai", "fa",
+       "ming", "jia", "er|nai", "bing", "ji", "hen", "huo", "gui", "quan", "tiao",
+       "jiao", "ci", "yi", "shi", "xing", "shen", "tuo", "kan", "zhi", "gai",
+       "lai", "yi", "chi", "kua", "gong", "li", "yin", "shi", "mi", "zhu",
+       "xu", "you", "an", "lu", "mou", "er", "lun", "dong|tong", "cha", "chi",
+       "xun", "gong", "zhou", "yi", "ru", "cun", "xia", "si", "dai", "lv",
+       "ta", "jiao|yao", "zhen", "ce|ze|zhai", "qiao", "kuai", "chai", "ning", "nong", "jin",
+       "wu", "hou", "jiong", "cheng|ting", "zhen", "zuo", "hao", "qin", "lv", "jv",
+       "shu|dou", "ting", "shen", "tuo|tui", "bo", "nan", "xiao", "bian|pian", "tui", "yu",
+       "xi", "cu", "e", "qiu", "xu", "guang", "ku", "wu", "jun", "yi",
+       "fu", "liang", "zu", "qiao|xiao", "li", "yong", "hun", "jing", "qian", "san",
+       "pei", "su", "fu", "xi", "li", "fu", "ping", "bao", "yu|shu", "si|qi",
+       "xia", "xin|shen", "xiu", "yu", "di", "che|ju", "chou", "zhi", "yan", "liang|lia",
+       "li", "lai", "si", "jian", "xiu", "fu", "huo", "ju", "xiao", "pai",
+       "jian", "biao", "chu|ti", "fei", "feng", "ya", "an", "bei", "yu", "xin",
+       "bi", "hu|chi", "chang", "zhi", "bing", "jiu", "yao", "cui|zu", "liang|lia", "wan",
+       "lai", "cang", "zong", "ge", "guan", "bei", "tian", "shu", "shu", "men",
+       "dao", "tan", "jue", "chui", "xing", "peng", "tang|chang", "hou", "yi", "qi",
+       "ti", "gan", "liang|jing", "jie", "sui", "chang", "jie", "fang", "zhi", "kong",
+       "juan", "zong", "ju", "qian", "ni", "lun", "zhuo", "wo|wei", "luo", "song",
+       "leng", "hun", "dong", "zi", "ben", "wu", "ju", "nai", "cai", "jian",
+       "zhai", "ye", "zhi", "sha", "qing", "ning", "ying", "cheng|chen", "qian", "yan",
+       "ruan", "zhong|tong", "chun", "jia", "ji|jie", "wei", "yu", "bing", "ruo", "ti",
+       "wei", "pian", "yan", "feng", "tang|dang", "wo", "e", "xie", "che", "sheng",
+       "kan", "di", "zuo", "cha", "ting", "bei", "xie", "huang", "yao", "zhan",
+       "chou|qiao", "an", "you", "jian", "xu", "zha", "ci", "fu", "bi", "zhi",
+       "zong", "mian", "ji", "yi", "xie", "xun", "cai|si", "duan", "ce|ze|zhai", "zhen",
+       "ou", "tou", "tou", "bei", "zan|za|zBn", "lv|lou", "jie", "wei", "fen", "chang",
+       "kui|gui", "sou", "zhi|si", "su", "xia", "fu", "yuan", "rong", "li", "nu",
+       "yun", "jiang|gou", "ma", "bang", "dian", "tang", "hao", "jie", "xi", "shan",
+       "qian|jian", "que|jue", "cang|chen", "chu", "san", "bei", "xiao", "rong", "yao", "ta|tan",
+       "suo", "yang", "fa", "bing", "jia", "dai", "zai", "tang", "gu", "bin",
+       "chu", "nuo", "can", "lei", "cui", "yong", "zao|cao", "zong", "peng", "song",
+       "ao", "chuan|zhuan", "yu", "zhai", "qi|cou", "shang", "chuang", "jing", "chi", "sha",
+       "han", "zhang", "qing", "yan", "di", "xie", "lv|lou", "bei", "piao|biao", "jin",
+       "lian", "lu", "man", "qian", "xian", "tan", "ying", "dong", "zhuan", "xiang",
+       "shan", "qiao", "jiong", "tui", "zun", "pu", "xi", "lao", "chang", "guang",
+       "liao", "qi", "cheng|deng", "zhan|zhuan|chan", "wei", "ji", "bo", "hui", "chuan", "tie|jian",
+       "dan", "jiao|yao", "jiu", "seng", "fen", "xian", "yu|ju", "e|wu", "jiao", "jian",
+       "tong|zhuang", "lin", "bo", "gu", "xian", "su", "xian", "jiang", "min", "ye",
+       "jin", "jia|jie", "qiao", "pi", "feng", "zhou", "ai", "sai", "yi", "jun",
+       "nong", "chan|tan|shan", "yi", "dang", "jing", "xuan", "kuai", "jian", "chu", "dan",
+       "jiao", "sha", "zai", "can", "bin", "an", "ru", "tai", "chou", "chai",
+       "lan", "ni|yi", "jin", "qian", "meng", "wu", "ning", "qiong", "ni", "chang",
+       "lie", "lei", "lv", "kuang", "bao", "yu", "biao", "zan", "zhi", "si",
+       "you", "hao", "qing", "chen", "li", "teng", "wei", "long", "chu", "chan",
+       "rang|xiang", "shu", "hui|xie", "li", "luo", "zan", "nuo", "tang", "yan", "lei",
+       "nang", "er", "wu", "yun", "zan", "yuan", "xiong", "chong", "zhao", "xiong",
+       "xian", "guang", "dui|rui|yue", "ke", "dui|rui|yue", "mian", "tu", "chang|zhang", "er", "dui|rui|yue",
+       "er|ni", "jin", "tu", "si", "yan", "yan", "shi", "shike", "dang", "qibnke",
+       "dou", "gongfenPPPU", "hboke", "shen", "dou", "baike", "jing", "gongli", "huang", "ru",
+       "wang", "nei", "quan", "liang", "yu|shu", "ba", "gong", "liu|lu", "xi", "han",
+       "lan", "gong", "tian", "guan", "xing", "bing", "qi|ji", "ju", "dian", "zi|ci",
+       "bun", "yang", "jian", "shou", "ji", "yi", "ji", "chan", "jiong", "mao",
+       "ran", "nei|na", "yuan", "mao", "gang", "ran", "ce", "jiong", "ce", "zai",
+       "gua", "jiong", "mao", "zhou", "mao|mo", "gou", "xu", "mian", "mi", "rong",
+       "yin|you", "xie", "kan", "jun", "nong", "yi", "shen", "shi", "guan", "meng",
+       "zhong", "zui", "yuan", "ming", "kou", "lin", "fu", "xie", "mi", "bing",
+       "dong", "tai", "gang", "feng|ping", "bing", "hu", "chong", "jue", "ya", "kuang",
+       "ye", "leng", "pan", "fa", "min", "dong", "xian", "lie", "qia", "jian",
+       "jing|cheng", "sou", "mei", "tu", "qi", "gu", "zhun", "song", "jing|cheng", "liang",
+       "qing", "diao", "ling", "dong", "gan", "jian", "yin", "cou", "ai", "li",
+       "cang", "ming", "zhun", "cui", "si", "duo", "jin", "lin", "lin", "ning",
+       "xi", "du", "ji", "fan", "fan", "fan", "feng", "ju", "chu", "yi kB|yi kB no bo li|tB ko",
+       "feng", "mu", "zhi", "fu", "feng", "ping", "feng", "kai", "huang", "kai",
+       "gan", "deng", "ping", "kan|qian", "xiong", "kuai", "tu", "ao|wa", "chu", "ji",
+       "dang", "han", "han", "zao", "dao", "diao", "dao", "ren", "ren", "chuang",
+       "fen", "qie", "yi", "ji", "kan", "qian", "cun", "chu", "wen", "ji",
+       "dan", "xing", "hua", "wan", "jue", "li", "yue", "lie", "liu", "ze",
+       "gang", "chuang", "fu", "chu", "qu", "diao", "shan", "min", "ling", "zhong",
+       "pan", "bie", "jie", "jie", "pao|bao", "li", "shan", "bie", "chan", "jing",
+       "gua", "geng", "dao", "chuang", "kui", "ku", "duo", "er", "zhi", "shua",
+       "quan|xuan", "cha|sha", "ci", "ke", "jie", "gui", "ci", "gui", "kai", "duo",
+       "ji", "ti", "jing", "dou", "luo", "ze", "yuan", "cuo", "xiao|xue", "kei|ke",
+       "la", "qian", "cha|sha", "chuang", "gua", "jian", "cuo", "li", "ti", "fei",
+       "pou", "chan", "qi", "chuang", "zi", "gang", "wan", "bao|bo", "ji", "duo",
+       "qing", "yan|shan", "du|zhuo", "jian", "ji", "bao|bo", "yan", "ju", "huo", "sheng",
+       "jian", "duo", "zhi|duan", "wu", "gua", "fu|pi", "sheng", "jian", "ge", "da|zha",
+       "kai", "chuang", "chuan", "chan", "tuan|zhuan", "lu|jiu", "li", "peng", "shan", "piao",
+       "kou", "jiao|chao", "gua", "qiao", "jue", "hua", "zha", "zhuo", "lian", "ju",
+       "pi", "liu", "gui", "jiao|chao", "gui", "jian", "jian", "tang", "huo", "ji",
+       "jian", "yi", "jian", "zhi", "chan", "zuan", "mo", "li", "zhu", "li",
+       "ya", "quan", "ban", "gong", "jia", "wu", "mai", "lie", "jin|jing", "keng",
+       "xie|lie", "zhi", "dong", "zhu|chu", "nu", "jie", "qu", "shao", "yi", "zhu",
+       "miao", "li", "jin|jing", "lao", "lao", "juan", "kou", "yang", "wa", "xiao",
+       "mou", "kuang", "jie", "lie", "he", "shi", "ke", "jin|jing", "gao", "bo|bei",
+       "min", "chi", "lang", "yong", "yong", "mian", "ke", "xun", "juan", "qing",
+       "lu", "bu", "meng", "chi", "le|lei", "kai", "mian", "dong", "xu", "xu",
+       "kan", "wu", "yi", "xun", "weng|yang", "sheng", "lao", "mu", "lu", "piao",
+       "shi", "ji", "qin", "jiang", "jiao|chao", "quan", "xiang", "yi", "qiao", "fan",
+       "juan", "tong|dong", "ju", "dan", "xie", "mai", "xun", "xun", "lv", "li",
+       "che", "rang|xiang", "quan", "bao", "shao", "yun", "jiu", "bao", "gou", "wu",
+       "yun", "mo", "xiong", "gai", "gai", "bao", "cong", "yi", "xiong", "peng",
+       "ju", "tao|yao", "ge", "pu", "e", "pao", "fu", "gong", "da", "jiu",
+       "gong", "bi", "hua", "bei", "nao", "chi|shi", "fang", "jiu", "yi", "za",
+       "jiang", "kang", "jiang", "kuang", "hu", "xia", "qu", "fan", "gui", "qie",
+       "zang|cang", "kuang", "fei", "hu", "yu", "gui", "kui|gui", "hui", "dan", "kui|gui",
+       "lian", "lian", "suan", "du", "jiu", "jue", "xi", "pi", "qu|ou", "yi",
+       "ke|qia", "yan", "bian", "ni", "qu|ou", "shi", "xun", "qian", "nian", "sa",
+       "zu", "sheng", "wu", "hui", "ban", "shi", "xi", "wan", "hua", "xie",
+       "wan", "bei", "zu|cu", "zhuo", "xie", "dan|shan|chan", "mai", "nan|na", "dan", "ji",
+       "bo", "shuai|lv", "bu|bo", "guan|kuang", "bian", "bu", "zhan", "qia|ka", "lu", "you",
+       "lu", "xi", "gua", "wo", "xie", "jie", "jie", "wei", "yang|ang", "qiong",
+       "zhi", "mao", "yin", "wei", "shao", "ji", "que", "luan", "chi", "juan",
+       "xie", "xu", "jin", "que", "wu", "ji", "e", "qing", "xi", "san",
+       "chang|an|han", "wei", "e", "ting", "li", "zhe|zhai", "han|an", "li", "ya", "ya",
+       "yan", "she", "di", "zha|zhai", "pang", "ya", "qie", "ya", "zhi|shi", "ce",
+       "mang", "ti", "li", "she", "hou", "ting", "zui", "cuo", "fei", "yuan",
+       "ce", "yuan", "xiang", "yan", "li", "jue", "sha|xia", "dian", "chu", "jiu",
+       "jin", "ao", "gui", "yan", "si", "li", "chang", "qian|lan", "li", "yan",
+       "yan", "yuan", "si|mou", "gong|hong", "lin|miao", "rou|qiu", "qu", "qu", "ke", "lei",
+       "du", "xian|xuan", "zhuan", "san", "can|shen|cen|san", "can|shen|cen|san", "can|shen|cen|san", "can|shen|cen|san", "ai|yi", "dai",
+       "you", "cha", "ji", "you", "shuang", "fan", "shou", "guai", "ba", "fa",
+       "ruo", "li", "shu", "zhuo|yi|li|jue", "qu", "shou", "bian", "xu", "jia", "pan",
+       "sou", "ji", "wei|yu", "sou", "die", "rui", "cong", "kou", "gu", "ju|gou",
+       "ling", "gua", "tao|dao", "kou", "zhi", "jiao", "zhao|shao", "ba", "ding", "ke",
+       "tai", "chi", "shi", "you", "qiu", "po", "ye|xie", "hao", "si", "tan",
+       "chi", "le", "diao", "ji", "dug", "hong", "mie", "xu|yu", "mang", "chi",
+       "ge", "xuan|song", "yao", "zi", "he|ge", "ji", "diao", "dou|cun", "tong", "ming",
+       "hou", "li", "tu", "xiang", "zha", "xia|he", "ye", "lv", "a", "ma|mB",
+       "ou", "huo", "yi", "jun", "chou", "lin", "tun", "yin", "fei", "pi|bi",
+       "qin", "qin", "jie|ge", "bu", "fou|pi", "ba", "dun", "fen", "e|hua", "han",
+       "ting", "hang|keng", "shun", "qi", "hong", "zhi|zi", "yin|shen", "wu", "wu", "chao",
+       "na|ne", "xue|chuo|jue", "xi", "chui", "dou|ru", "wen", "hou", "hou|hong|ou", "wu|yu", "gao",
+       "ya|yB", "jun", "lv", "e", "ge", "wen", "dai", "qi", "cheng", "wu",
+       "gao", "fu", "jiao", "hong", "chi", "sheng", "na|ne", "tun|tian", "fu|?", "yi",
+       "dai", "ou", "li", "bei|bai", "yuan|yun", "wai|he|wo|wa|gua|guo", "hua|qi", "qiang", "wu", "e",
+       "shi", "juan", "pen", "wen|min", "ne", "mou|m", "ling", "ran", "you", "di",
+       "zhou", "shi", "zhou", "tie|che", "xi", "yi", "qi|zhi", "ping", "zi|ci", "gua|gu",
+       "zi|ci", "wei", "xu|hou|gou", "he|a|ke", "nao", "xia", "pei", "yi", "xiao|hao", "shen",
+       "hu", "ming", "da|dan", "qu", "ju|zui", "xian|gan", "za", "tuo", "duo", "pou",
+       "pao", "bi", "fu", "yang", "he", "zha|za", "he|huo|hu", "hai", "jiu", "yong",
+       "fu", "da", "zhou", "wa", "ka", "gu", "ka|ga", "zuo", "bu", "long",
+       "dong", "ning", "tuo", "si", "xian", "huo", "qi", "er", "e", "guang",
+       "zha", "die|xi", "yi", "lie", "zi", "mie", "mi", "zhi", "yao", "ji|xi|qia",
+       "zhou", "ka|luo|lo|ge", "shu|xun", "zan|za|zBn", "xiao", "ke|hai", "hui", "kua", "huai|shi", "tao",
+       "xian", "e|an", "xuan", "xiu", "wai|he|wo|wa|gua|guo", "yan|ye", "lao", "yi", "ai", "pin",
+       "shen", "tong", "hong", "xiong", "duo", "wa|wB", "ha", "zai", "you", "die|di",
+       "pai", "xiang", "ai", "gen|hen", "kuang", "ya", "da", "xiao", "bi", "yue|hui",
+       "nian", "hua", "xing", "kuai", "duo", "po", "ji|jie|zhai", "nong", "mou", "yo",
+       "hao", "yuan|yun", "long", "pou", "mang", "ge", "o", "chi", "shao", "li",
+       "na|nei|nB|ne", "zu", "he", "ku", "xiao", "xian", "lao", "po|ba|bo", "zhe", "zha",
+       "liang|lang", "ba", "mie", "lie|lv", "sui", "fu", "bu", "han", "heng|hng", "geng",
+       "chuo|yue", "ge|jia", "you", "yan", "gu", "gu", "bei|bai", "han", "suo", "chun",
+       "yi", "ai", "jia|qian", "tu", "dan|xian|yan", "wan", "li", "xi", "tang", "zuo",
+       "qiu", "che", "wu", "zao", "ya", "dou", "qi", "di", "qin", "ma",
+       "ma", "gong|hong", "dou", "ge", "lao", "liang", "suo", "zao", "huan", "leng",
+       "sha|shB", "ji", "zu", "wo|wei", "feng", "jin|yin", "hu|xia", "qi", "shou", "wei",
+       "shua", "chang", "er|wa", "li", "qiang", "an", "jie|ze|zuo", "yo", "nian", "yu",
+       "tian", "lai", "sha", "xi", "tuo", "hu", "ai", "zhou|zhao|tiao", "gou", "ken",
+       "zhuo", "zhuo|zhao", "shang", "di", "heng", "lan|lin", "a", "cai", "qiang", "zhun|tun|xiang|dui",
+       "wu", "wen", "cui|qi", "sha|jie|die|ti", "gu", "qi", "qi", "tao", "dan", "dan",
+       "yue|wa", "zi|ci", "bi|tu", "cui", "chuo|chuai", "he", "ya", "qi", "zhe", "fei",
+       "liang", "xian", "pi", "sha", "lB|la", "ze", "qing|ying", "gua", "pa", "ze|shi",
+       "se", "zhuan", "nie", "guo", "luo", "yan", "di", "quan", "tan|chan|tuo", "bo",
+       "ding", "lang", "xiao", "ju", "tang", "chi", "ti", "an", "jiu", "dan",
+       "ka", "yong", "wei", "nan", "shan", "yu", "zhe", "la", "jie", "hou",
+       "han", "die|zha", "zhou", "chai", "wai", "nuo|re", "huo|guo|xu", "yin", "zan|za|zBn", "yao",
+       "o|wo", "mian", "hu", "yun", "chuan", "hui", "huan", "huan|yuan|xuan|he", "xi", "he|ye",
+       "ji", "kui", "zhong|chuang", "wei", "sha", "xu", "huang", "duo|zha", "yan", "xuan",
+       "liang", "yu", "sang", "chi", "qiao|jiao", "yan", "dan|shan|chan", "pen|ben", "can|sun|qi", "li",
+       "yo", "zha|cha", "wei", "miao", "ying", "pen", "pbo", "kui", "xi", "yu",
+       "jie", "lou", "ku", "zao|qiao", "hu", "ti", "yao", "he|xiao|hu", "sha|a", "xiu",
+       "qiang", "se", "yong", "su", "gong|hong", "xie", "yi|ai", "suo", "ma|mB", "cha",
+       "hai", "ke", "ta|da", "sang", "chen", "ru", "sou", "wa|gu", "ji", "beng|pang",
+       "wu", "xian|qian|qie", "shi", "ge", "zi", "jie", "lao", "weng", "wa", "si",
+       "chi", "hao", "suo", "jia", "hai|hei", "suo", "qin", "nie", "he", "zi",
+       "sai", "ng", "ge", "na", "dia", "ai", "qiang", "tong", "bi", "ao",
+       "ao", "lian", "zui|sui", "zhe|zhu", "mo", "sou", "sou", "tan", "di", "qi",
+       "jiao", "chong", "jiao|dao", "kai|ge", "tan", "shan|can", "cao", "jia", "ai", "xiao",
+       "piao", "lou", "ga", "gu", "xiao|jiao", "hu", "hui", "guo", "ou", "xian",
+       "ze", "chang", "xu|shi", "po", "de|dei", "ma", "ma", "hu", "le", "du",
+       "ga", "tang", "ye", "beng", "ying", "sai", "jiao", "mi", "xiao", "hua",
+       "mai", "ran", "zuo", "peng", "lao", "xiao", "ji", "zhu", "chao|zhao", "kui",
+       "zui", "xiao", "si", "hao", "fu|?", "liao", "qiao", "xi", "chu|xu|shou", "tan|chan",
+       "dan|tan", "hei|mo", "xun", "e", "zun", "fan|bo", "chi", "hui", "zan", "chuang",
+       "cu|za|he", "dan", "jue", "tun|kuo", "ceng", "jiao", "ye", "xi", "qi", "hao",
+       "lian", "xu|shi", "deng", "hui", "yin", "pu", "jue", "qin", "xun", "nie",
+       "lu", "si", "yan", "ying", "da", "zhan", "o", "zhou|zhuo", "jin", "nong",
+       "yue|hui", "xie", "qi", "e", "zao", "yi", "shi", "jiao|qiao|chi", "yuan", "ai",
+       "yong", "jue|xue", "kuai", "yu", "pen", "dao", "ga", "xin|hen", "dun", "dang",
+       "xin", "sai", "pi", "pi", "yin", "zui", "ning", "di", "lan", "ta",
+       "huo|o", "ru", "hao", "he|xia", "yan", "duo", "xiu|pi", "zhou|chou", "ji|jie|zhai", "jin",
+       "hao", "ti", "chang", "xun", "me", "ca|cha", "ti", "lu", "hui", "bo|pao|bao",
+       "you", "nie", "yin", "hu", "mei|me|mo", "hong", "zhe", "li", "liu", "xie|hai",
+       "nang", "xiao", "mo", "yan", "li", "lu", "long", "po", "dan", "chen",
+       "pin", "pi", "xiang", "huo", "me", "xi", "duo", "ku", "yan", "chan",
+       "ying", "rang", "dian", "la", "ta", "xiao", "jiao|jue", "chuo", "huan", "huo",
+       "zhuan", "nie", "xiao", "ca", "li", "chan", "chai", "li", "yi", "luo",
+       "nang", "za|zan|can", "su", "xi", "zeng", "jian", "yan|za|nie", "zhu", "lan", "nie",
+       "nang", "ramo", "luo", "wei|guo", "hui", "yin", "qiu", "si", "nin", "jian|nan",
+       "hui", "xin", "yin", "nan", "tuan", "tuan", "dun|tun", "kang", "yuan", "jiong",
+       "pian", "yun", "cong", "hu", "hui", "yuan", "e", "guo", "kun", "cong",
+       "wei|tong", "tu", "wei", "lun", "guo", "qun", "ri", "ling", "gu", "guo",
+       "tai", "guo", "tu", "you", "guo", "yin", "hun", "pu", "yu", "han",
+       "yuan", "lun", "quan|juan", "yu", "qing", "guo", "chuan|chui", "wei", "yuan", "quan|juan",
+       "ku", "pu", "yuan", "yuan", "ya", "tuan", "tu", "tu", "tuan", "lve",
+       "hui", "yi", "huan|yuan", "luan", "luan", "tu", "ya", "tu", "ting", "sheng",
+       "pu", "lu", "kuai", "ya", "zai", "wei|xu", "ge", "yu|zhun", "wu", "gui",
+       "pi", "yi", "di|de", "qian|su", "qian", "zhen", "zhuo", "dang", "qia", "xia",
+       "shan", "kuang", "chang", "qi|yin", "nie", "mo", "ji", "jia", "zhi", "zhi",
+       "ban", "xun", "yi", "qin", "mei|fen", "jun", "rong|keng", "tun|dun", "fang", "ben|fen",
+       "ben", "tan", "kan", "huai|pei|pi", "zuo", "keng", "bi", "jing", "di|lan", "jing",
+       "ji", "kuai", "di", "jing", "jian", "tan", "li", "ba", "wu", "fen",
+       "zhui", "po", "pan|ban", "tang", "kun", "qu", "tan", "zhi", "tuo", "gan",
+       "ping", "dian", "gua", "ni", "tai", "pi", "jiong", "yang", "fo", "ao",
+       "lu", "qiu", "mu", "ke", "gou", "xue", "fa", "di|chi", "che", "ling",
+       "zhu", "fu", "hu", "zhi", "chui", "la", "long", "long", "lu", "ao",
+       "dai", "pao", "min", "xing", "dong|tong", "ji", "he", "lv", "ci", "chi",
+       "lei", "gai", "yin", "hou", "dui", "zhao", "fu", "guang", "yao", "duo",
+       "duo", "gui", "cha", "yang", "yin", "fa", "gou", "yuan", "die", "xie",
+       "ken", "shang", "shou", "e", "bing", "dian", "hong", "ya", "kua", "da",
+       "ka", "dang", "kai", "hang", "nao", "an", "xing", "xian", "yuan|huan", "bang",
+       "pou|fu", "ba", "yi", "yin", "han", "xu", "chui", "cen", "geng", "ai",
+       "beng|feng", "di|fang", "que|jue", "yong", "jun", "xia|jia", "di", "mai|man", "lang", "juan",
+       "cheng", "yan|shan", "qin|jin", "zhe", "lie", "lie", "pu|bu", "cheng", "hua", "bu",
+       "shi", "xun", "guo", "jiong", "ye", "nian", "di", "yu", "bu", "ya",
+       "quan", "sui|su", "pi", "qing|zheng", "wan", "ju", "lun", "zheng|cheng", "kong", "chong|shang",
+       "dong", "dai", "tan", "an", "cai", "chu|tou", "beng", "xian|kan", "zhi", "duo",
+       "yi|shi", "zhi", "yi", "pei", "ji", "zhun", "qi", "sao", "ju", "ni",
+       "ku", "ke", "tang", "kun", "ni", "jian", "dui", "jin", "gang", "yu",
+       "e", "peng|beng", "gu", "tu", "leng", "fang", "ya", "qian|zan|jian", "kun", "an",
+       "shen", "duo|hui", "nao", "tu", "cheng", "yin", "huan", "bi", "lian", "guo",
+       "die", "zhuan", "hou", "bao|bu|pu", "bao", "yu", "di", "mao|mou|wu", "jie", "ruan",
+       "e|ai|ye", "geng", "kan", "zong", "yu", "huang", "e", "yao", "yan", "bao",
+       "ji", "mei", "chang", "du", "tuo", "yin", "feng", "zhong", "jie", "jin",
+       "feng", "gang", "chuan", "jian", "ping", "lei", "jiang", "huang", "leng", "duan",
+       "wan", "xuan", "xi", "ji", "kuai", "ying", "ta", "cheng", "yong", "kai",
+       "su", "su", "shi", "mi", "ta", "weng", "cheng", "tu", "tang", "que",
+       "zhong", "li", "peng", "bang", "sai|se", "zang", "dui", "tian", "wu", "zheng",
+       "xun", "ge", "zhen", "ai", "gong", "yan", "xian", "tian|zhen", "yuan", "wen",
+       "xie", "liu", "hai", "lang", "chang", "peng", "beng", "chen", "lu", "lu",
+       "ou|qiu", "qian|zan|jian", "mei", "mo", "zhuan|tuan", "shuang", "shu", "lou", "chi", "man",
+       "biao", "jing", "qi", "shu", "zhi|di", "zhang", "kan", "yong", "dian", "chen",
+       "zhi|zhuo", "xi", "guo", "qiang", "jin", "shang", "shang", "mu", "cui", "yan",
+       "ta", "zeng", "qian", "qiang", "liang", "wei", "zhui", "qiao", "zeng", "xu",
+       "shan", "shan", "fa", "pu", "kuai|tui", "tuan|dong", "fan", "qiao|que", "mo", "dun",
+       "dun", "zun|dun", "di", "sheng", "duo|hui", "duo", "tan", "deng", "wu", "fen",
+       "huang", "tan", "da", "ye", "zhu", "jian", "ao", "qiang", "ji", "qiao|ao",
+       "ken", "yi|tu", "pi", "bi", "dian", "jiang", "ye", "yong", "xue|bo|jue", "tan",
+       "lan", "ju", "huai", "dang", "rang", "qian", "xun", "xian|lan", "xi", "he",
+       "ai", "ya", "dao", "hao", "ruan", "jin", "lei", "kuang", "lu", "yan",
+       "tan", "wei", "huai", "long", "long", "rui", "li", "lin", "rang", "chan",
+       "xun", "yan", "lei", "ba", "wan", "shi", "ren", "san", "zhuang", "zhuang",
+       "sheng", "yi", "mai", "ke|qiao", "zhu", "zhuang", "hu", "hu", "kun", "yi",
+       "hu", "xu", "kun", "shou", "mang", "dun", "shou", "yi", "zhi|zhong", "gu|ying",
+       "chu", "jiang|xiang", "feng|pang", "bei", "zhai", "bian", "sui", "qun", "ling", "fu",
+       "cuo", "xia", "xiong|xuan", "xie", "nao", "xia", "kui", "xi", "wai", "yuan|wan",
+       "mao|wan", "su", "duo", "duo", "ye", "qing", "yi", "gou", "gou", "qi",
+       "meng", "meng", "yin", "huo", "chen", "da|dai", "ce", "tian", "tai", "fu",
+       "guai", "yao", "yang", "hang|ben", "gao", "shi", "tao|ben", "tai", "tou", "yan|tao",
+       "bi", "yi", "kua", "jia|ga|xia", "duo", "hua", "kuang", "yun", "jia|ga|xia", "ba",
+       "en", "lian", "huan", "di|ti", "yan", "pao", "juan", "qi|ji", "nai", "feng",
+       "xie", "fen", "dian", "quan|juan", "kui", "zou", "huan", "qi|qie|xie", "kai", "she|chi|zha",
+       "ben", "yi", "jiang", "tao", "zang|zhuang", "ben", "xi", "huang", "fei", "diao",
+       "xun|zhui", "beng", "dian", "ao", "she", "weng", "po|ha|tai", "ao|yu", "wu", "ao|yu",
+       "jiang", "lian", "duo", "yun", "jiang", "shi", "fen", "huo", "bi", "luan",
+       "duo|che", "nv", "nu", "ding|tian", "nai", "qian", "jian", "ta|jie", "jiu", "nuan",
+       "cha", "hao", "xian", "fan", "ji", "shuo", "ru", "fei|pei", "wang", "hong",
+       "zhuang", "fu", "ma", "dan", "ren", "fu|you", "jing", "yan", "hai|jie", "wen",
+       "zhong", "pa", "du", "ji", "keng|hang", "zhong", "yao", "jin", "yun", "miao",
+       "fou|pei|pi", "chi", "yue|jue", "zhuang", "niu", "yan", "na|nan", "xin", "fen", "bi",
+       "yu", "tuo", "feng", "wan|yuan", "fang", "wu", "yu", "gui", "du", "ba",
+       "ni", "zhou", "zhuo", "zhao", "da", "ni|nai", "yuan", "tou", "xian|xuan|xu", "zhi|yi",
+       "e", "mei", "mo", "qi", "bi", "shen", "qie", "e", "he", "xu",
+       "fa", "zheng", "min", "ban", "mu", "fu", "ling", "zi", "zi", "shi",
+       "ran", "shan", "yang", "gan", "jie", "gu", "si", "xing", "wei", "zi",
+       "ju", "shan", "pin", "ren", "yao", "dong", "jiang", "shu", "ji", "gai",
+       "xiang", "hua|huo", "juan", "jiao|xiao", "gou|du", "mu|lao", "jian", "jian", "yi", "nian",
+       "zhi", "zhen", "ji", "xian", "heng", "guang", "jun|xun", "kua|hu", "yan", "ming",
+       "lie", "pei", "e", "you", "yan", "cha", "shen|xian", "yin", "shi", "gui",
+       "quan", "zi", "song", "wei", "hong", "wa", "lou", "ya", "rao", "jiao",
+       "luan", "ping", "xian", "shao", "li", "cheng|sheng", "xie", "mang", "fu", "suo",
+       "wu|mu", "wei", "ke", "chuo|lai", "chuo", "ting", "niang", "xing", "nan", "yu",
+       "na|nuo", "pou|bi", "nei|sui", "juan", "shen", "zhi", "han", "di", "zhuang", "e",
+       "pin", "tui", "man", "mian", "wu|yu", "yan", "wu", "xi|ai", "yan", "yu",
+       "si", "yu", "wa", "li", "xian", "ju", "qu", "zhui|shui", "qi", "xian",
+       "zhuo", "dong", "chang", "lu", "ai|e", "e", "e", "lou", "mian", "cong",
+       "pou|pei|bu", "ju", "po", "cai", "ling", "wan", "biao", "xiao", "shu", "qi",
+       "hui", "fu|fan", "wo", "wo", "tan", "fei", "fei", "jie", "tian", "ni",
+       "quan|juan", "jing", "hun", "jing", "qian|jin", "dian", "xing", "hu", "wan|wa", "lai",
+       "bi", "yin", "zhou|chou", "chuo|nao", "fu", "jing", "lun", "an|n<e", "lan", "hun|kun",
+       "yin", "ya", "ju", "li", "dian", "xian", "huB|dB tBi", "hua", "ying", "chan",
+       "shen", "ting", "dang|yang", "yao", "wu", "nan", "ruo|chuo", "jia", "tou|yu", "xu",
+       "yu", "wei", "di|ti", "rou", "mei", "dan", "ruan|nen", "qin", "hui", "wo",
+       "qian", "chun", "miao", "fu", "jie", "duan", "yi|pei", "zhong", "mei", "huang",
+       "mian", "an", "ying", "xuan", "jie", "wei", "mei", "yuan", "zheng", "qiu",
+       "ti", "xie", "tuo|duo", "lian", "mao", "ran", "si", "pian", "wei", "wa",
+       "cu", "hu", "ao|yun|wo", "jie", "bao", "xu", "tou|yu", "gui", "chu|zou", "yao",
+       "pi", "xi", "yuan", "ying", "rong", "ru", "chi", "liu", "mei", "pan",
+       "ao|yun|wo", "ma", "gou", "kui", "qin|shen", "jia", "sao", "zhen", "yuan", "jie|suo",
+       "rong", "ming", "ying", "ji", "su", "niao", "xian", "tao", "pang", "lang",
+       "nao", "biao", "ai", "pi", "pin", "yi", "piao", "yu", "lei", "xuan",
+       "man", "yi", "zhang", "kang", "yong", "ni", "li", "di", "gui", "yan",
+       "jin", "zhuan", "chang", "ze", "han|nan", "nen", "lao", "mo", "zhe", "hu",
+       "hu", "ao", "nen", "qiang", "ma", "pie", "gu", "wu", "qiao", "tuo",
+       "zhan", "miao", "xian", "xian", "mo", "liao", "lian", "hua", "gui", "deng",
+       "zhi", "xu", "yi", "hua", "xi", "kui", "rao", "xi", "yan", "chan",
+       "jiao", "mei", "fan", "fan", "xian|yan|jin", "yi", "hui", "jiao", "fu", "shi",
+       "bi", "shan", "sui", "qiang", "lian", "huan|xuan|qiong", "xin", "niao", "dong", "yi",
+       "can", "ai", "niang", "ning", "mo", "tiao", "chou", "jin", "ci", "yu",
+       "pin", "rong", "ru", "nai", "yan", "tai", "ying", "qian", "niao", "yue",
+       "ying", "mian", "bi", "mo", "shen", "xing", "ni", "du", "liu", "yuan",
+       "lan", "yan", "shuang", "ling", "jiao", "niang", "lan", "xian|qian", "ying", "shuang",
+       "xie|hui", "huan|quan", "mi", "li", "luan", "yan", "zhu|chuo", "lan", "zi", "jie",
+       "jue", "jue", "kong", "yun", "zi|ma", "zi", "cun", "sun|xun", "fu", "bei",
+       "zi", "xiao", "xin", "meng", "si", "tai", "bao", "ji", "gu", "nu",
+       "xue", "you", "zhuan", "hai", "luan", "sun|xun", "nao", "mie", "cong", "qian",
+       "shu", "chan|can", "ya", "zi", "ni", "fu", "zi", "li", "xue", "bo",
+       "ru", "nai", "nie", "nie", "ying", "luan", "mian", "ning", "rong", "ta",
+       "gui", "zhai", "qiong", "yu", "shou", "an", "tu|jia", "song", "wan", "rou",
+       "yao", "hong", "yi", "jing", "zhun", "mi|fu", "zhu", "dang", "hong", "zong",
+       "guan", "zhou", "ding", "wan|yuan", "yi", "bao", "shi", "shi", "chong", "shen",
+       "ke", "xuan", "shi", "you", "huan", "yi", "tiao", "shi", "xian", "gong",
+       "cheng", "qun", "gong", "xiao", "zai", "zha", "bao|shi", "hai", "yan", "xiao",
+       "jia|jiB", "cai", "chen", "rong", "huang", "mi", "kou", "kuan", "bin", "su|xiu",
+       "cai", "zan", "ji", "yuan", "ji", "yin", "mi", "kou", "qing", "he",
+       "zhen", "jian", "fu", "ning", "bing", "huan", "mei", "qin", "han", "yu",
+       "shi", "ning", "jin|qin", "ning", "zhi", "yu", "bao", "kuan", "ning", "qin",
+       "mo", "cha", "ju|lou", "gua", "qin", "hu", "wu", "liao", "shi", "ning",
+       "zhai", "shen", "wei", "xie", "kuan", "hui", "liao", "jun", "huan", "yi",
+       "yi", "bao", "qin", "chong", "bao", "feng", "cun", "dui", "si", "xun",
+       "dao", "l<e|luo", "dui", "shou", "po", "feng", "zhuan", "fu", "she|ye|yi", "kei|ke",
+       "jiang", "jiang", "zhuan", "wei|yu", "zun", "xun", "shu|zhu", "dui", "dao", "xiao",
+       "jie|ji", "shao", "er", "er", "er", "ga", "jian", "shu", "chen", "shang",
+       "shang", "mo", "ga", "chang", "liao", "xian", "xian", "hun", "you", "wang",
+       "you", "liao", "liao", "yao", "long|mang|meng|pang", "wang", "wang", "wang", "ga", "yao",
+       "duo", "kui", "zhong", "jiu", "gan", "gu", "gan", "tui", "gan", "gan",
+       "shi", "yin", "chi|che", "kao", "ni", "jin", "wei|yi", "niao|sui", "ju", "pi",
+       "ceng", "xi", "bi", "ju", "jie", "tian", "qu", "ti", "jie", "wu",
+       "diao", "shi", "shi", "ping|bing", "ji", "xie", "zhen", "xi", "ni", "zhan",
+       "xi", "wei", "man", "e", "lou", "ping|bing", "ti", "fei", "shu|zhu", "xie|ti",
+       "tu", "lv", "lv", "xi", "ceng", "lv", "ju", "xie", "ju", "jue",
+       "liao", "jue", "shu|zhu", "xi", "che|cao", "tun|zhun", "ni|ji", "shan", "wa", "xian",
+       "li", "an", "hui", "hui", "hong|long", "yi", "qi", "ren", "wu", "han|an",
+       "shen", "yu", "chu", "sui", "qi|kai", "yin", "yue", "ban", "yao", "ang",
+       "ya", "wu", "jie", "e", "ji", "qian", "fen", "wan", "qi", "cen",
+       "qian", "qi", "cha", "jie", "qu", "gang", "xian", "ao", "lan", "dao",
+       "ba", "zuo", "zuo", "yang", "ju", "gang", "ke", "gou", "xue", "po",
+       "li", "tiao", "ju", "yan", "fu", "xiu", "jia", "ling", "tuo", "pi",
+       "ao", "dai", "kuang", "yue", "qu", "hu", "po", "min", "an", "tiao",
+       "ling", "di", "ping", "dong", "zBi|ze mo", "kui", "xiu", "mao", "tong", "xue",
+       "yi", "bian", "he", "ke|ba", "luo", "e", "fu|nie", "xun", "die", "lu",
+       "en", "er", "gai", "quan", "tong|dong", "yi", "mu", "shi", "an", "wei",
+       "huan", "zhi|shi", "mi", "li", "fa", "tong", "wei", "you", "qia", "xia",
+       "li", "yao", "jiao|qiao", "zheng", "luan", "jiao", "e", "e", "yu", "xie|ye",
+       "bu", "qiao", "qun", "feng", "feng", "nao", "li", "you", "xian", "rong",
+       "dao", "shen", "cheng", "tu", "geng", "jun", "gao", "xia", "yin", "wu",
+       "lang", "kan", "lao", "lai", "xian", "que", "kong", "chong", "chong", "ta",
+       "lin", "hua", "ju", "lai", "qi", "min", "kun", "kun", "zu|cui", "gu",
+       "cui", "ya", "ya", "gang", "lun", "lun", "ling", "jue", "duo", "zheng",
+       "guo", "yin", "dong", "han", "zheng", "wei", "xiao", "pi|bi", "yan", "song",
+       "jie", "beng", "zu", "jue", "dong", "zhan|chan", "gu", "yin", "zi", "ze",
+       "huang", "yu", "wai|wei", "yang|dang", "feng", "qiu", "yang", "ti", "yi", "zhi|shi",
+       "shi|die", "zai", "yao", "e", "zhu", "kan|zhan", "lv", "yan", "mei", "han",
+       "ji", "ji", "huan", "ting", "sheng", "mei", "qian|kan", "wu|mao", "yu", "zong",
+       "lan", "ke|jie", "yan", "yan", "wei", "zong", "cha", "sui", "rong", "ke",
+       "qin", "yu", "qi", "lou", "tu", "cui", "xi", "weng", "cang", "dang|tang",
+       "rong|ying", "jie", "kai|ai", "liu", "wu", "song", "kao|qiao", "zi", "wei", "beng",
+       "dian", "cuo", "qin|qian", "yong", "nie", "cuo", "ji", "shi", "ruo", "song",
+       "zong", "jiang", "liao", "kang", "yan", "die|di", "cen", "ding", "tu", "lou",
+       "zhang", "zhan|chan", "zhan|chan", "ao", "cao", "qu", "qiang", "wei", "zui", "dao",
+       "dao", "xi", "yu", "pi|pei", "long", "xiang", "ceng", "bo", "qin", "jiao",
+       "yan", "lao", "zhan", "lin", "liao", "liao", "qin", "deng", "tuo", "zun",
+       "jiao|qiao", "jue|gui", "yao", "jiao", "yao", "jue", "zhan|shan", "yi", "xue", "nao",
+       "ye", "ye", "yi", "nie", "xian", "ji", "xie|jie", "ke|jie", "gui|xi|juan", "di",
+       "ao", "zui", "wei", "ni", "rong", "dao", "ling", "jie", "yu", "yue",
+       "yin", "ru", "jie", "li|lie", "gui|xi|juan", "long", "long", "dian", "ying|hong", "xi",
+       "ju", "chan", "ying", "kui", "yan", "wei", "nao", "quan", "chao", "cuan",
+       "luan", "dian", "dian", "nie", "yan", "yan", "yan", "kui", "yan", "chuan",
+       "kuai", "chuan", "zhou", "huang", "jing|xing", "xun", "chao", "chao", "lie", "gong",
+       "zuo", "qiao", "ju", "gong", "ge", "wu", "pu", "pu", "cha|chai|ci", "qiu",
+       "qiu", "ji", "yi", "si", "ba", "zhi", "zhao", "xiang|hang", "yi", "jin",
+       "xun", "juan", "pa", "xun", "jin", "fu", "za", "bi", "shi", "bu",
+       "ding", "shuai", "fan", "nie", "shi", "fen", "pa", "zhi", "xi", "hu",
+       "dan", "wei", "zhang", "tang|nu", "dai", "mo|wa", "pei", "pa", "tie", "fu",
+       "lian", "zhi", "zhou", "bo", "zhi", "di", "mo", "yi", "yi", "ping",
+       "qia", "juan", "ru", "shuai", "dai", "zhen", "shui", "qiao", "zhen", "shi",
+       "qun", "xi", "bang", "dai", "gui", "chou|dao", "ping", "zhang", "jian|san", "wan",
+       "dai", "wei", "chang", "sha|qie", "qi|ji", "ze", "guo", "mao", "zhu", "hou",
+       "zhen", "zheng", "mi", "wei", "wo", "fu", "yi", "bang", "ping", "die",
+       "gong", "pan", "huang", "tao", "mi", "jia", "teng", "hui", "zhong", "shan|qiao|shen",
+       "man", "mu", "biao", "guo", "ze", "mu", "bang", "zhang", "jing", "chan",
+       "fu", "zhi", "hu", "fan", "chuang|zhuang", "bi", "bi", "zhang", "mi", "qiao",
+       "chan", "fen", "meng", "bang", "chou|dao", "mie", "chu", "jie", "xian", "lan",
+       "gan", "ping", "nian", "jian", "bing", "bing", "xing", "gan", "yao", "huan",
+       "you", "you", "ji", "guang|an", "pi", "ting", "ze", "guang", "zhuang", "me|mo",
+       "qing", "bi", "qin", "dun|tun", "chuang", "gui", "ya", "bai|ting", "jie", "xu",
+       "lu", "wu", "zhuang", "ku", "ying", "di|de", "pao", "dian", "ya", "miao",
+       "geng", "ci", "fu", "tong", "pang", "fei", "xiang", "yi", "zhi", "tiao",
+       "zhi", "xiu", "du|duo", "zuo", "xiao", "tu", "gui", "ku", "mang|meng|pang", "ting",
+       "you", "bu", "bing|ping", "cheng", "lai", "bei", "ji|cuo", "an", "shu", "kang",
+       "yong", "tuo", "song", "shu", "qing", "yu", "yu", "miao", "sou", "ce",
+       "xiang", "fei", "jiu", "e", "gui|wei|hui", "liu", "sha|xia", "lian", "lang", "sou",
+       "zhi", "bu", "qing", "jiu", "jiu", "jin|qin", "ao", "kuo", "lou", "yin",
+       "liao", "dai", "lu", "yi", "chu", "chan", "tu", "si", "xin", "miao",
+       "chang", "wu", "fei", "guang", "kao", "kuai", "bi", "qiang|se", "xie", "lin",
+       "lin", "liao", "lu", "ji", "ying", "xian", "ting", "yong", "li", "ting",
+       "yin", "xun", "yan", "ting", "di", "po|pai", "jian", "hui", "nai", "hui",
+       "gong", "nian", "kai", "bian", "yi", "qi", "nong|long", "fen", "ju", "yan",
+       "yi", "zang", "bi", "yi", "yi", "er", "san", "shi", "er", "shi",
+       "shi", "gong", "diao", "yin", "hu", "fu", "hong", "wu", "tui", "chi",
+       "jiang", "ba", "shen", "di|ti|tui", "zhang", "jue|zhang", "tao", "fu", "di", "mi",
+       "xian", "hu", "chao", "nu", "jing", "zhen", "yi", "mi", "juan|quan", "wan",
+       "shao", "ruo", "xuan|yuan", "jing", "diao", "zhang", "jiang", "qiang|jiang", "peng", "dan|tan",
+       "qiang|jiang", "bi", "bi", "she", "dan|tan", "jian", "gou", "ge", "fa", "bi",
+       "kou", "jian", "bie", "xiao", "dan|tan", "guo", "qiang|jiang", "hong", "mi", "guo",
+       "wan", "jue", "xue", "ji", "gui", "dang", "lu", "lu", "tuan", "hui",
+       "zhi", "hui", "hui", "yi", "yi", "yi", "yi", "huo", "huo", "shan|xian",
+       "xing", "wen", "tong", "yan", "yan", "yu", "chi", "cai", "biao", "diao",
+       "bin", "peng|bang", "yong", "piao", "zhang", "ying", "chi", "chi", "zhuo|bo", "tuo|yi",
+       "ji", "pang|fang", "zhong", "yi", "wang", "che", "bi", "di", "ling", "fo",
+       "wang", "zheng", "cu", "wang", "jing", "dai", "xi", "xun", "hen", "yang",
+       "huai", "lv", "hou", "wang|jia|wa", "cheng|zheng", "zhi", "xu", "jing", "tu", "cong",
+       "cong", "lai", "cong", "de|dei", "pai", "xi", "dong", "ji", "chang", "zhi",
+       "cong|zong", "zhou", "lai", "yu", "xie", "jie", "jian", "shi|ti", "jia|xia", "bian",
+       "huang", "fu", "xun", "wei", "pang", "yao", "wei", "xi", "zheng", "piao",
+       "ti|chi", "de", "zhi|zheng", "zhi|zheng", "bie", "de", "zhong|chong", "che", "jiao|yao", "hui",
+       "jiao", "hui", "mei", "long", "xiang", "bao", "qu|ju", "xin", "xin", "bi",
+       "yi", "le", "ren", "dao", "ding|ting", "gai", "ji", "ren", "ren", "chan",
+       "tan", "te", "te|tui", "gan|han", "yi|qi", "shi|tai", "cun", "zhi", "wang", "mang",
+       "xi|lie", "fan", "ying", "tian", "min|wen", "min|wen", "zhong", "chong", "wu", "ji",
+       "wu", "xi", "jia", "you", "wan", "cong", "song|zhong", "kuai", "yu|shu", "bian",
+       "zhi", "qi|shi", "cui", "chen", "tai", "tun|zhun|dun", "qian|qin", "nian", "hun", "xiong",
+       "niu", "kuang|wang", "xian", "xin", "kang|hang", "hu", "kai", "fen", "huai", "tai",
+       "song", "wu", "ou", "chang", "chuang", "ju", "yi", "bao", "chao", "min|men",
+       "pei", "zuo|zha", "zen", "yang", "kou|ju", "ban", "nu", "nao|niu", "zheng", "pa",
+       "bu", "tie|zhan", "hu|gu", "hu", "cu|ju|zu", "da", "lian", "si|sai", "you|chou", "di",
+       "dai", "yi", "tu|die", "you", "fu", "ji", "peng", "xing", "yuan", "ni",
+       "guai", "fei", "xi", "bi", "you|yao", "qie", "xuan", "cong", "bing", "huang",
+       "xu|xue", "chu", "bi|pi", "shu", "xi|shu", "tan", "yong", "zong", "dui", "mi",
+       "gi", "yi", "shi", "nen|nin", "xun", "shi", "xi", "lao", "heng", "kuang",
+       "mou", "zhi", "xie", "lian", "tiao|yao", "huang", "die", "hao", "kong", "gui",
+       "heng", "xi|qi|xu", "xiao|jiao", "shu", "si", "hu|kua", "qiu", "yang", "hui", "hui",
+       "chi", "jia", "yi", "xiong", "guai", "lin", "hui", "zi", "xu", "chi",
+       "shang", "nv", "hen", "en", "ke", "dong", "tian", "gong", "quan|zhuan", "xi",
+       "qia", "yue", "peng", "ken", "de", "hui", "e|wu", "qiu", "tong", "yan",
+       "kai", "ce", "nao", "yun", "mang", "yong", "yong", "yuan|juan", "pi", "kun",
+       "qiao", "yue", "yu|shu", "tu", "jie|ke", "xi", "zhe", "lin", "ti", "han",
+       "hao|jiao", "qie", "ti", "bu", "yi", "qian", "hui", "xi", "bei", "man|men",
+       "yi", "heng", "song", "quan", "cheng", "kui|li", "wu", "wu", "you", "li",
+       "liang", "huan", "cong", "yi|nian", "yue", "li", "nin", "nao", "e", "que",
+       "xuan", "qian", "wu", "min", "cong", "fei", "bei", "de", "cui", "chang",
+       "men", "li", "ji", "guan", "guan", "xing", "dao", "qi", "kong", "tian",
+       "lun", "xi", "kan", "gun", "ni", "qing", "chou", "dun", "guo", "zhan",
+       "jing", "wan", "yuan|wan", "jin", "ji", "lan|lin", "yu|xu", "huo", "he", "juan|quan",
+       "tan|dan", "ti", "ti", "nian", "wang", "chuo|chui", "hu", "hun|men", "xi", "chang",
+       "xin", "wei", "hui", "e|wu", "suo|rui", "zong", "jian", "yong", "dian", "ju",
+       "can", "cheng", "de", "bei", "qie", "can", "dan|da", "guan", "duo", "nao",
+       "yun", "xiang", "zhui", "die", "huang", "chun", "qiong", "re", "xing", "ce",
+       "bian", "min", "zong", "ti|shi", "qiao", "chou", "bei", "xuan", "wei", "ge",
+       "qian", "wei", "yu", "yu|tou", "bi", "xuan", "huan", "min", "bi", "yi",
+       "mian", "yong", "qi|kai", "dang|shang|tang|yang", "yin", "e", "chen|xin|dan", "mao", "ke|qia", "ke",
+       "yu", "ai", "qie", "yan", "nuo", "gan", "yun", "cong|song", "sai|si", "leng",
+       "fen", "ying", "kui", "kui", "que", "gong|hong", "yun", "su", "su|shuo", "qi",
+       "yao", "song", "huang", "ji", "gu", "ju", "chuang", "ni", "xie", "kai",
+       "zheng", "yong", "cao", "xun", "shen", "bo", "kai|xi", "yuan", "xi|xie", "hun",
+       "yong", "yang", "li", "cao|sao", "tao", "yin", "ci", "xu|chu", "qian|qie", "tai",
+       "huang", "yun", "shen", "ming", "gong|hong", "she", "cao|cong", "piao", "mu", "mu",
+       "guo", "chi", "can", "can", "can", "cui", "min", "te", "zhang", "tong",
+       "ao", "shuang", "man", "guan", "que", "zao", "jiu", "hui", "kai", "lian",
+       "ou", "song", "qin|jin", "yin", "lv", "shang", "wei", "tuan", "man", "qian",
+       "she", "yong", "qing", "kang", "di|chi", "zhi|zhe", "lou|lv", "juan", "qi", "qi",
+       "yu", "ping", "liao", "cong", "you", "chong", "zhi", "tong", "cheng", "qi",
+       "qu", "peng", "bei", "bie", "qiong", "jiao", "zeng", "chi", "lian", "ping",
+       "kui", "hui", "qiao", "cheng|deng|zheng", "yin", "yin", "xi", "xi", "dan|da", "tan",
+       "duo", "dui", "dui|dun|tun", "su", "jue", "ce", "xiao|jiao", "fan", "fen", "lao",
+       "lao", "chong", "han", "qi", "xian", "min", "jing", "liao", "wu", "can",
+       "jue", "cu", "xian", "tan", "sheng", "pi", "yi", "chu", "xian", "nao|nang",
+       "dan", "tan", "jing", "song", "han", "jiao|ji", "wei", "xuan|huan", "dong", "qin",
+       "qin", "ju", "cao|sao", "ken", "xie", "ying", "ao", "mao", "yi", "lin",
+       "se", "jun", "huai", "men", "lan", "ai", "lin", "yan", "guo", "xia",
+       "chi", "yu", "yin", "dai", "meng", "ai|yi|ni", "meng", "dui", "qi|ji", "mo",
+       "lan|xian", "men", "chou", "zhi", "nuo", "nuo", "yan", "yang", "bo", "zhi",
+       "kuang", "kuang", "you", "fu", "liu", "mie", "cheng", "hui", "chan", "meng",
+       "lan", "huai", "xuan", "rang", "chan", "ji", "ju", "huan", "she", "yi",
+       "lian", "nan", "mi", "tang", "jue", "gang|zhuang", "gang|zhuang", "gang|zhuang", "ge", "yue",
+       "wu", "jian", "qu", "shu", "rong", "xi|hu", "cheng", "wo", "jie", "ge",
+       "jian", "qiang", "huo", "qiang", "zhan", "dong", "qi", "jia", "die", "zei",
+       "jia", "ji", "zhi", "kan", "ji", "kui", "gai", "deng", "zhan", "qiang",
+       "ge", "jian", "jie", "yu", "jian", "yan", "lu", "xi|hu", "zhan", "xi|hu",
+       "xi|hu", "chuo", "dai", "qu", "hu", "hu", "hu", "e", "shi", "ti",
+       "mao", "hu", "li", "fang", "suo", "bian|pian", "dian", "jiong", "shang|jiong", "yi",
+       "yi", "shan", "hu", "fei", "yan", "shou", "shou", "cai", "za|zha", "qiu",
+       "le|li|cai", "pu", "ba|pa", "da", "reng", "fan|fu", "ru", "zai", "tuo", "zhang",
+       "diao|di|yue|li", "kang|gang", "yu|wu", "yu|wu|ku", "han", "shen", "cha", "tuo|chi|yi", "gu|xi|ge|jie", "kou",
+       "wu", "den", "qian", "zhi", "ren", "kuo", "men", "sao", "yang", "niu",
+       "ban", "che", "rao", "xi|cha|qi", "qian|qin", "ban", "jia", "yu", "fu", "ba|ao",
+       "xi|zhe", "pi", "di", "zhi|sun|kan", "e", "den", "zhao", "cheng", "ji", "yan",
+       "kuang|wang|zai", "bian", "chao", "ju", "wen", "hu|gu", "yue", "jue", "ba", "qin",
+       "dan|shen", "zheng", "yun", "wan", "ne|ni|rui|na", "yi", "shu", "zhua", "pou", "tou",
+       "dou", "kang", "zhe|she", "pou|fu", "fu", "pao", "ba", "ao|niu", "ze|zhBi", "tuan",
+       "kou", "lun", "qiang|cheng", "yun", "hu", "bao", "bing", "zhi|zhai", "peng", "nan",
+       "bu|pu", "pi", "tai", "yao|tao", "zhen", "zha", "yang", "bao", "he|qia", "ni",
+       "ye", "di", "chi", "pi|pei", "jia", "mo|ma", "mei", "chen", "ya", "chou",
+       "qu", "min", "zhu", "jia|ya", "fu|bi", "zha", "zhu", "dan", "chai|ca", "mu",
+       "nian", "la", "fu", "pao", "ban|pan", "pai", "lin", "na", "guai", "qian",
+       "ju", "tuo|ta|zhi", "ba", "tuo", "tuo", "ao|niu", "ju|gou", "zhuo", "pan|pin|fan", "zhao",
+       "bai", "bai", "di", "ni", "ju", "kuo", "long", "jian", "qia", "yong",
+       "lan", "ning", "bo", "ze|zhai", "qian", "hen", "kuo|gua", "shi", "jie|jia", "zheng",
+       "nin", "gong", "gong", "quan", "shuan", "cun|zun", "za|zan", "kao", "yi|chi|hai", "xie",
+       "ce|se|chuo", "hui", "pin", "zhuai|ye", "shi|she", "na", "bai", "chi", "gua", "zhi",
+       "kuo|guang", "duo", "duo", "zhi", "qie", "an", "nong", "zhen", "ge", "jiao",
+       "kua|ku", "dong", "ru|na", "tiao", "lie", "zha", "lv", "die|she", "wa", "jue",
+       "lie ri", "ju", "zhi", "luan", "ya", "zhua|wo", "ta", "xie|jia", "nao", "dang",
+       "jiao", "zheng", "ji", "hui", "xian", "yu", "ai", "tuo|shui", "nuo", "cuo",
+       "bo", "geng", "ti", "zhen", "cheng", "suo|sB|shB", "suo|sB|shB", "keng|qian", "mei", "nong",
+       "ju", "bang|peng", "jian", "yi", "ting", "shan", "nuo", "wan", "xie|jia", "cha",
+       "peng", "jiao|ku", "wu", "jun", "jiu", "tong", "kun", "huo|chi", "tu|shu|cha", "zhuo",
+       "pou|fu", "luo|lv", "ba", "han", "shao", "nie", "juan", "ze", "shu|song|sou", "ye|yu",
+       "jue|zhuo", "bu", "wan", "bu|pu|zhi", "zun", "ye", "zhai", "lv", "sou", "tuo|shui",
+       "lao", "sun", "bang", "jian", "huan", "dao", "wei", "wan|yu", "qin", "peng",
+       "she", "lie", "min", "men", "fu|bu", "bai", "ju", "dao", "wo|luo", "ai",
+       "juan|quan", "yue", "zong", "chen", "chui", "jie", "tu", "ben", "na", "nian|nie",
+       "ruo|wei|re", "zuo", "wo|xia", "qi", "xian", "cheng", "dian", "sao", "lun", "qing|qian",
+       "gang", "duo", "shou", "diao", "pou", "di", "zhang", "hun", "ji", "tao",
+       "qia", "qi", "pai", "shu", "qian|wan", "ling", "ye", "ya", "jue", "zheng",
+       "liang", "gua", "ni|nie|yi", "huo|xu", "shan|yan", "zheng|ding", "lve", "cai", "tan", "che",
+       "bing", "jie", "ti", "kong", "tui", "yan", "cuo", "zou|zhou|chou", "ju", "tian",
+       "qian", "ken", "bai", "pa", "jie", "lu", "guai", "ming", "jie", "zhi",
+       "dan|shan", "meng", "chan|xian|can|shan", "sao", "guan", "peng", "yuan", "nuo", "jian", "zheng|keng",
+       "jiu|you", "jian", "yu", "yan", "kui", "nan", "hong", "rou", "pi|che", "wei",
+       "sai|zong|cai", "zou", "xuan", "miao", "ti|di", "nie", "cha", "shi", "zong|song", "zhen",
+       "yi", "xun", "huang|yong", "bian", "yang", "huan", "yan", "zan|zuan", "an", "xu|ju",
+       "ya", "wo", "ke|qia", "chuai|tuan|zhui", "ji", "ti|di", "la", "la", "cheng", "kai",
+       "jiu", "jiu", "tu", "jie|qi", "hui", "gen", "chong|dong", "xiao", "she|die|ye", "xie",
+       "yuan", "qian|jian", "ye", "cha", "zha", "bei", "yao", "wei", "beng", "lan",
+       "wen", "qin", "chan", "ge", "lou", "zong", "gen", "jiao", "gou", "qin",
+       "rong", "que", "chou|zou", "chuai", "zhan", "sun", "sun", "bo", "chu", "rong|nang",
+       "bang|peng", "cuo", "sao", "e", "yao", "dao", "zhi", "nu|nuo|nou", "la|xie|xian", "jian",
+       "sou", "qiu", "gao", "gan", "shuo", "sang", "jin", "mie", "e", "chui",
+       "nuo", "shan", "ta", "jie|zhe", "tang", "pan|ban|po", "ban", "da", "li", "tao",
+       "hu|ku", "zhi|nai", "wa", "hua", "qian", "wen", "qiang|cheng", "tian|shen", "zhen", "e",
+       "xie", "na|nuo", "quan", "cha", "zha", "ge", "wu", "en", "she", "kang",
+       "she|nie", "shu", "bai", "yao", "bin", "sou", "tan", "sa|sha|shai", "chan|sun", "suo",
+       "jiu|liu|liao|jiao|nao", "chong", "chuang", "guai", "bing", "feng|peng", "shuai", "di|tu|zhi", "qi|ji|cha", "sou|song",
+       "zhai", "lian", "cheng", "chi", "guan", "lu", "luo", "lou", "zong", "gai|xi",
+       "hu|chu", "zha", "qiang", "tang", "hua", "cui", "zhi|nai", "mo|ma", "jiang|qiang", "gui",
+       "ying", "zhi", "ao|qiao", "zhi", "nie|che", "man", "chan|can", "kou", "chu", "se|mi|su",
+       "tuan", "jiao|chao", "mo", "mo", "zhe", "chan|xian|can|shan", "keng|qian", "biao", "jiang", "yao",
+       "gou", "qian", "liao", "ji", "ying", "jue", "pie", "pie", "lao", "dun",
+       "xian", "ruan", "gui", "zan|zen|qian", "yi", "xian", "cheng", "cheng", "sa", "nao",
+       "hong", "si", "han", "heng|guang", "da", "zun", "nian", "lin", "zheng|cheng", "hui|wei",
+       "zhuang", "jiao", "ji", "cao", "dan", "dan|shan", "che", "bo", "che", "jue",
+       "xiao|sou", "liao", "ben", "fu", "qiao", "bo", "cuo|zuo", "zhuo", "zhuan", "wei|tuo",
+       "pu", "qin", "dun", "nian", "hua", "xie", "lu", "jiao", "cuan", "ta",
+       "han", "qiao|yao|ji", "zhua|wo", "jian", "gan", "yong", "lei", "nang", "lu", "shan",
+       "zhuo", "ze|zhai", "pu", "chuo", "ji", "dang", "se", "cao", "qing", "qing|jing",
+       "huan", "jie", "qin", "kuai", "dan", "xie", "qia|jia|ye", "pi|bo", "bo|bai", "ao",
+       "ju", "ye", "e", "meng", "sou", "mi", "ji", "tai", "zhuo", "dao",
+       "xing", "lan", "ca", "ju", "ye", "ru", "ye", "ye", "ni", "huo",
+       "jie", "bin", "ning", "ge", "zhi", "zhi|jie", "kuo", "mo", "jian", "xie",
+       "lie|la", "tan", "bai", "sou", "lu", "li|luo|yue", "rao", "ti|zhi|zhai", "pan", "yang",
+       "lei", "ca|sa", "shu", "zan", "nian", "xian", "jun|pei", "huo", "li|luo", "la|lai",
+       "huan", "ying", "lu|luo", "long", "qian", "qian", "zan|cuan", "qian", "lan", "xian|jian",
+       "ying", "mei", "rang", "chan", "weng", "cuan", "xie", "she|nie", "luo", "jun",
+       "mi|mo", "chi", "zan|cuan", "luan", "tan", "zuan", "li|shai", "dian", "wa", "dang",
+       "jiao", "jue", "lan", "li|luo", "nang", "zhi", "gui", "gui", "qi|yi|ji", "xun",
+       "pu", "pu", "shou", "kao", "you", "gai", "yi", "gong", "gan|han", "ban",
+       "fang", "zheng", "po", "dian", "kou", "min", "wu|mou", "gu", "he", "ce",
+       "xiao", "mi", "chu|shou", "ge|guo|e", "di", "xu", "jiao", "min", "chen", "jiu",
+       "shen", "duo|dui", "yu", "chi", "ao", "bai", "xu", "jiao", "duo|dui", "lian",
+       "nie", "bi", "chang", "dian", "duo|que", "yi", "gan", "san", "ke", "yan",
+       "dun|dui", "qi|yi|ji", "tou", "xiao|xue", "duo|que", "jiao", "jing", "yang", "xia", "min",
+       "shu|shuo", "ai|zhu", "qiao", "ai|zhu", "zheng", "di", "chen", "fu", "shu|shuo", "liao",
+       "qu", "xiong|xuan", "yi", "jiao", "shan", "jiao", "zhuo|zhu", "yi|du", "lian", "bi",
+       "li|tai", "xiao", "xiao", "wen", "xue", "qi", "qi", "zhai", "bin", "jue|jiao",
+       "zhai", "lang", "fei", "ban", "ban", "lan", "yu|zhong", "lan", "wei|men", "dou",
+       "sheng", "liao", "jia", "hu", "xie", "jia", "yu", "zhen", "jiao", "wo|guan",
+       "tou|tiao", "dou", "jin", "chi", "yin|zhi", "fu", "qiang", "zhan", "qu", "zhuo",
+       "zhan", "duan", "zhuo", "si", "xin", "zhuo", "zhuo", "qin", "lin", "zhuo",
+       "chu", "duan", "zhu", "fang", "chan|jie", "hang", "yu|wu", "shi", "pei", "liu|you",
+       "mie", "pang|bang", "qi", "zhan", "mao", "lv", "pei", "pi|bi", "liu", "fu",
+       "fang", "xuan", "jing", "jing", "ni", "zu", "zhao", "yi", "liu", "shao",
+       "jian", "en", "yi", "qi", "zhi", "fan", "piao", "fan", "zhan", "kuai",
+       "sui", "yu", "wu", "ji", "ji", "ji", "huo", "ri", "dan", "jiu",
+       "zhi", "zao", "xie", "tiao", "xun", "xu", "ga", "la", "gan|han", "han",
+       "tai|ying", "di|de", "xu", "chan", "shi", "kuang", "yang", "shi", "wang", "min",
+       "min", "tun|zhun", "chun", "wu", "yun", "bei", "ang", "ze", "ban", "jie",
+       "kun", "sheng", "hu", "fang", "hao", "gui", "chang", "xuan", "ming", "hun",
+       "fen", "qin", "hu", "yi", "xi", "xin", "yan", "ze", "fang", "tan",
+       "shen", "ju", "yang", "zan", "bing", "xing", "ying", "xuan", "po", "zhen",
+       "ling", "chun", "hao", "mei", "zuo", "mo", "bian", "xu", "hun", "zhao",
+       "zong", "shi", "shi", "yu", "fei", "die|yi", "mao", "ni", "chang", "wen",
+       "dong", "ai", "bing", "ang", "zhou", "long", "xian", "kuang", "tiao", "chao",
+       "shi", "huang", "huang", "xuan", "kui", "xu|kua", "jiao", "jin", "zhi", "jin",
+       "shang", "tong", "hong", "yan", "gai", "xiang", "shai", "xiao", "ye", "yun",
+       "hui", "han", "han", "jun", "wan", "xian", "kun", "zhou", "xi", "sheng|cheng",
+       "sheng", "bu", "zhe", "zhe", "wu", "wan", "hui", "hao", "chen", "wan",
+       "tian", "zhuo", "zui", "zhou", "pu", "jing|ying", "xi", "shan", "ni", "xi",
+       "qing", "qi|du", "jing", "gui", "zheng", "yi", "zhi", "an|yan", "wan", "lin",
+       "liang", "cheng", "wang", "xiao", "zan", "fei", "xuan", "xuan", "yi", "xia",
+       "yun", "hui", "xu", "min", "kui", "ye", "ying", "shu|du", "wei", "shu",
+       "qing", "mao", "nan", "jian|lan", "nuan", "an", "yang", "chun", "yao", "suo",
+       "pu", "ming", "jiao", "kai", "hao", "weng", "chang", "qi", "hao", "yan",
+       "li", "ai", "ji", "ji", "men", "zan", "xie", "hao", "mu", "mu",
+       "cong", "ni", "zhang", "hui", "bao|pu", "han", "xuan", "chuan", "liao", "xian",
+       "tan", "jing", "pie", "lin", "tun", "xi", "yi", "ji", "huang", "dai",
+       "ye", "ye", "li", "tan", "tong", "xiao", "fei", "shen", "zhao", "hao",
+       "yi", "xiang", "xing", "shen", "jiao", "bao", "jing", "yan", "ai", "ye",
+       "ru", "shu", "meng", "xun", "yao", "pu|bao", "li", "chen", "kuang", "die",
+       "liao", "yan", "huo", "lu", "xi", "rong", "long", "nang", "luo", "luan",
+       "shai", "tang", "yan", "zhu", "yue", "yue", "qu", "ye", "geng", "ye",
+       "hu", "he", "shu", "cao", "cao", "sheng", "man", "zeng|ceng", "zeng|ceng", "ti",
+       "zui", "can|qian|jian", "xu", "hui|kuai", "yin", "qie|he", "fen", "bi|pi", "yue", "you",
+       "ruan", "peng", "fen|ban", "fu", "ling", "fei|ku", "qu|xu|chun", "ti", "nv|ga", "tiao",
+       "shuo", "zhen", "lang", "lang", "juan|zui", "ming", "huang|mang|wang", "wang", "tun", "zhao|chao",
+       "ji", "qi|ji", "ying", "zong", "wang", "tong|chuang", "lang", "lao", "meng", "long",
+       "mu", "pin", "wei", "mo", "ben", "zha", "shu|zhu", "shu|zhu", "teul", "zhu|shu",
+       "ren", "ba", "piao|pu|po", "duo", "duo", "dao|tiao|mu", "li", "qiu|gui", "ji", "jiu",
+       "bi", "xiu", "cheng", "ci", "sha", "ru", "za", "quan", "qian", "yu|wu",
+       "gan", "wu", "cha", "shan|sha", "xun", "fan", "wu", "zi", "li", "xing",
+       "cai", "cun", "ren|er", "shao|biao", "tuo|zhe", "di|duo", "zhang", "mang", "chi", "yi",
+       "gu|gai", "gong", "du", "yi|li|duo|tuo", "qi", "shu", "gang", "tiao", "jie", "mian",
+       "wan", "lai", "jiu", "mang", "yang", "ma", "miao", "si|zhi|xi", "yuan|wan", "hang",
+       "fei|bei", "bei", "jie", "dong", "gao", "yao", "xian", "chu", "chun", "pa",
+       "shu|dui", "hua", "xin", "niu|chou", "zhu", "chou", "song", "ban", "song", "ji",
+       "wo|yue", "jin", "gou", "ji", "mao", "pi", "pi|mi", "wang", "ang", "fang|bing",
+       "fen", "yi", "fu", "nan", "xi", "hu|di", "ya", "dou", "xin", "zhen",
+       "yao", "lin", "rui", "e", "mei", "zhao", "guo", "zhi|qi", "cong|zong", "yun",
+       "hua", "sheng", "shu", "zao", "di|duo", "li", "lu", "jian", "cheng", "song|mB ti su",
+       "qiang", "feng", "zhan", "xiao", "xian|zhen", "ku", "ping", "si|tai", "xi", "zhi",
+       "guai", "xiao", "jia", "jia", "ju|gou", "bao|fu", "mo", "yi|xie", "ye", "ye",
+       "shi", "nie", "bi", "tuo|duo", "yi|duo|li", "ling", "bing", "ni|chi", "la", "he",
+       "pan|ban", "fan", "zhong", "dai", "ci", "yang|ying", "fu", "bai|bo", "mou", "gan",
+       "qi", "ran", "rou", "mao", "shao", "song", "zhe", "xia", "you", "shen",
+       "gui|ju", "tuo", "zuo|zha", "nan", "ning", "yong", "di", "zhi|die", "zha|zu", "cha|zha",
+       "dan", "gu", "bu|pu", "jiu", "ao", "fu", "jian", "ba|fu|pei|bo|bie", "duo|zuo|wu", "ke",
+       "nai", "zhu", "bi|bie", "liu", "chai", "zha", "si", "zhu", "bei|pei", "shi|fei",
+       "guai", "cha|zha", "yao", "cheng", "jiu", "shi", "zhi", "liu", "mei", "li",
+       "rong", "zha|shan|shi|ce", "zao", "biao", "zhan", "zhi", "long", "dong", "lu", "sa",
+       "li|yue", "lan", "yong", "shu", "xun", "shuan", "qi|qie", "chen", "qi|xi", "li",
+       "yi", "xiang", "zhen", "li", "se", "gua|tian", "kan", "ben|bing", "ren", "xiao|jiao",
+       "bai", "ren", "bing", "zi", "chou", "yi|xie", "ci", "xu", "zhu", "jian|zun",
+       "zui", "er", "er", "you|yu", "fa", "gong", "kao", "lao", "zhan", "lie",
+       "yin", "yang", "he|hu", "gen", "zhi|yi", "shi", "ge", "zai", "luan", "fu",
+       "jie", "heng|hang", "gui", "tao", "guang", "wei", "kuang", "ru", "an", "an",
+       "juan", "yi|ti", "zhuo", "ku", "zhi", "qiong", "tong", "sang", "sang", "huan",
+       "jie|ju", "jiu", "xue", "duo", "chui", "yu|mou", "za|zan", "kB sei", "ying", "jie",
+       "liu", "zhan", "ya", "nao", "zhen", "dang", "qi", "qiao", "hua", "gui|hui",
+       "jiang", "zhuang", "xun", "suo", "sha", "chen|zhen", "bei", "ting|ying", "gua", "jing",
+       "bo", "ben|fan", "fu", "rui", "tong", "jue", "xi", "lang", "liu", "feng",
+       "qi", "wen", "jun", "gan", "su|yin", "liang", "qiu", "ting", "you", "mei",
+       "bang", "long", "peng", "zhuang", "di", "xuan|juan|xie", "tu|cha", "zao", "ao|you", "gu",
+       "bi", "di", "han", "zi", "zhi", "ren|er", "bei", "geng", "jian", "huan",
+       "wan", "nuo", "jia", "tiao", "ji", "xiao", "lv", "kuan", "shao|sao", "chen",
+       "fen", "song", "meng", "wu", "li", "si|qi", "dou", "qin", "ying", "suo",
+       "ju", "ti", "xie", "kun", "zhuo", "shu", "chan|yan", "fan", "wei", "jing",
+       "li", "bin|bing", "xia", "fo", "chou|tao|dao", "zhi", "lai", "lian", "jian", "zhuo",
+       "ling", "li", "qi", "bing", "lun", "cong|song", "qian", "mian", "qi", "qi",
+       "cai", "gun|hun", "chan", "de|zhe", "fei", "pai|bei|pei", "bang", "bang|pou|bei", "hun", "zong",
+       "cheng", "zao", "ji", "li|lie", "peng", "yu", "yu", "gu", "jun", "dong",
+       "tang", "gang", "wang", "di|dai|ti", "que", "fan", "cheng", "zhan", "qi", "yuan",
+       "yan", "yu", "quan|juan", "yi", "sen", "ren|shen", "chui", "leng|ling", "qi", "zhuo",
+       "fu|su", "ke", "lai", "zou|sou", "zou", "zhao|zhuo", "guan", "fen", "fen", "chen",
+       "qing", "ni", "wan", "guo", "lu", "hao", "jie|qie", "yi", "chou|zhou|diao", "ju",
+       "ju", "cheng|sheng", "zu|cui", "liang", "qiang|kong", "zhi", "zhui|chui", "ya", "ju", "bei",
+       "jiao", "zhuo", "zi", "bin", "peng", "ding", "chu", "chang", "men", "hua",
+       "jian", "gui", "xi", "du", "qian", "dao", "gui", "dian", "luo", "zhi",
+       "quan|juan", "mi eng", "fu", "geng", "peng", "shan", "yi", "tuo", "sen", "duo|chuan",
+       "ye", "fu", "wei|hui", "wei", "duan", "jia", "zong", "jian|han", "yi", "zhen|shen",
+       "xi", "yan|ya", "yan", "chuan", "jian", "chun", "yu", "he", "zha|cha", "wo",
+       "pian", "bi", "yao", "guo|kua", "xu", "ruo", "yang", "la", "yan", "ben",
+       "hui", "kui", "jie", "kui", "si", "feng", "xie", "tuo", "ji|zhi", "jian",
+       "mu", "mao", "chu", "ku|hu", "hu", "lian", "leng", "ting", "nan", "yu",
+       "you", "mei", "song|cong", "xuan|yuan", "xuan", "yang|ying", "zhen", "pian", "die|ye", "ji",
+       "jie", "ye", "chu", "shun|dun", "yu", "cou|zou", "wei", "mei", "di|shi", "ji",
+       "jie", "kai|jie", "qiu", "ying", "rou", "huang", "lou", "le|yue", "quan", "xiang",
+       "pin", "shi", "gai", "tan", "lan", "wen|yun", "yu", "chen", "lv", "ju",
+       "shen", "chu", "bi|pi", "xie", "jia", "yi", "zhan|nian|zhen", "fu|bo", "nuo", "mi",
+       "lang", "rong", "gu", "jian|jin", "ju", "ta", "yao", "zhen", "bang", "sha|xie",
+       "yuan", "zi", "ming", "su", "jia", "yao", "jie", "huang", "gan", "fei",
+       "zha", "qian", "ma", "sun", "yuan", "xie", "rong", "shi", "zhi", "cui",
+       "wen", "ting", "liu", "rong", "tang", "que", "zhai", "si", "sheng", "ta",
+       "ke", "xi", "gu", "qi", "gao", "gao", "sun", "pan", "tao", "ge",
+       "chun", "dian", "nou", "ji", "shuo", "gou", "chui", "qiang", "cha", "qian|lian|xian",
+       "huai", "mei", "xu", "gang", "gao", "zhuo", "tuo", "qiao", "yang", "dian|zhen",
+       "jia", "jian|kan", "zui", "dao", "long", "bin|bing", "zhu", "sang", "xi|die", "ji|gui",
+       "lian", "hui", "rong|yong", "qian", "guo", "gai", "gai", "tuan|shuan|quan", "hua", "qi|se",
+       "sen", "cui|zhi", "peng", "you|chao", "hu", "jiang", "hu", "huan", "gui", "nie",
+       "yi", "gao", "kang", "gui", "gui", "cao", "man|wan", "jin", "di", "zhuang",
+       "le|yue", "lang", "chen", "cong|zong", "li|chi", "xiu", "qing", "shang", "fan", "tong",
+       "guan", "ze", "su", "lei", "lu", "liang", "mi", "lou", "chao|jiao", "su",
+       "ke", "chu", "cheng", "biao", "lu", "jiu|liao", "zhe", "zha", "shu", "zhang",
+       "man", "mo|mu", "niao|mu", "yang", "tiao", "peng", "zhu", "sha|xie", "xi", "quan",
+       "heng", "jian", "cong", "ji", "yan", "qiang", "xue", "ying", "er", "xun",
+       "zhi", "qiao", "zui", "cong", "piao", "shu", "hua", "gui", "zhen", "zun",
+       "yue", "shan", "xi", "chun", "dian", "fa|fei", "gan", "mo", "wu", "qiao",
+       "rao|nao", "lin", "liu", "qiao", "xian", "run", "fan", "zhan|jian", "tuo", "liao",
+       "yun", "shun", "tui|dun", "cheng", "tang|cheng", "meng", "ju", "cheng", "su|qiu", "jue",
+       "jue", "tan|dian", "hui", "ji", "nuo", "xiang", "tuo", "ning", "rui", "zhu",
+       "tong|chuang", "zeng|ceng", "fen|fei", "qiong", "ran|yan", "heng", "qian", "gu", "liu", "lao",
+       "gao", "chu", "xi", "sheng", "zi", "zan", "ji", "dou", "jing", "lu",
+       "xian", "cu|chu", "yuan", "ta", "shu|qiao", "jiang", "tan", "lin", "nong", "yin",
+       "xi", "hui", "shan", "zui", "xuan", "cheng", "gan", "ju", "zui", "yi",
+       "qin", "pu", "yan", "lei", "feng", "hui", "dang", "ji", "sui", "bo",
+       "ping|bo", "cheng", "chu", "zhua", "gui|hui", "ji", "jie", "jia", "qing", "zhai|shi|tu",
+       "jian", "qiang", "dao", "yi", "biao", "song", "she", "lin", "li", "cha",
+       "meng", "yin", "chou|tao|dao", "tai", "mian", "qi", "tuan", "bin|bing", "huo", "ji",
+       "qian|lian", "ni|mi", "ning", "yi", "gao", "jian|kan", "yin", "nou|ruan|ru", "qing", "yan",
+       "qi", "mi", "zhao", "gui", "chun", "ji", "kui", "po", "deng", "chu",
+       "ge", "mian", "you", "zhi", "huang|guo|gu", "qian", "lei", "lei", "sa", "lu",
+       "li", "cuan", "lv|chu", "mie|mei", "hui", "ou", "lv", "zhi", "gao", "du",
+       "yuan", "li|yue", "fei", "zhuo|zhu", "sou", "lian", "jiang", "chu", "qing", "zhu",
+       "lu", "yan", "li", "zhu", "chen", "jue|ji", "e", "su", "huai|gui", "nie",
+       "yu", "long", "la|lai", "qiao", "xian", "gui", "ju", "xiao", "ling", "ying",
+       "jian", "yin", "you", "ying", "xiang", "nong", "bo", "chan|zhan", "lan", "ju",
+       "shuang", "she", "wei|zui", "cong", "quan", "qu", "cang", "jiu", "yu", "luo",
+       "li", "cuan", "luan", "dang", "qu", "yan", "lan", "lan", "zhu", "lei",
+       "li", "ba", "nang", "yu", "ling", "guan", "qian", "ci", "huan", "xin",
+       "yu", "yu|yi", "qian|xian", "ou", "xu", "chao", "chu|qu|xi", "qi", "ke|ai", "yi|yin",
+       "jue", "xi|kai", "xu", "he", "yu", "kuai", "lang", "kuan", "shuo|sou", "xi",
+       "ei|ai", "qi", "qi", "xu|chua", "chi|chuai", "qin", "kuan", "kan|qian", "kuan", "kan|ke",
+       "chuan", "sha", "gua", "yan|yin", "xin", "xie", "yu", "qian", "xiao", "ye",
+       "ge", "wu", "tan", "jin|qun", "ou", "hu", "ti", "huan", "xu", "pen",
+       "xi", "xiao", "xu", "xi|she", "shan", "lian|han", "chu", "yi", "e", "yu",
+       "chuo", "huan", "zhi", "zheng", "ci", "bu", "wu", "qi", "bu", "bu",
+       "wai", "ju", "qian", "zhi|chi", "se", "chi", "se|sha", "zhong", "sui", "sui",
+       "li", "ze", "yu", "li", "gui", "dai", "dai", "si", "jian", "zhe",
+       "mo|wen", "mo", "yao", "mo", "cu", "yang", "tian", "sheng", "dai", "shang",
+       "xu", "xun", "shu", "can", "jing", "piao", "qia", "qiu", "su", "qing|jing",
+       "yun", "lian", "yi", "fou|bo", "zhi|shi", "ye|yan", "can", "hun|mei", "dan", "ji",
+       "die", "zhen", "yun", "wen", "chou", "bin", "ti", "jin", "shang", "yin",
+       "chi", "jiu", "kui|hui", "cuan", "yi", "dan", "du", "jiang", "lian", "bin",
+       "du", "jian", "jian", "shu", "ou", "duan", "zhu", "yin|yan", "qing|keng|sheng", "yi",
+       "sha", "ke|qiao", "ke|qiao", "xiao|yao", "xun", "dian", "hui", "hui", "gu", "qiao",
+       "ji", "yi", "ou", "hui", "duan", "yi", "xiao", "wu", "guan|wan", "mu",
+       "mei", "mei", "ai", "jie", "du|dai", "yu", "bi", "bi", "bi", "pi",
+       "pi", "bi", "chan", "mao", "hao", "cai", "bi", "lie", "jia", "zhan",
+       "sai", "mu", "tuo", "xun", "er", "rong", "xian", "ju", "mu", "hao",
+       "qiu", "dou|nuo", "mushiruPPPV", "tan", "pei", "ju", "duo", "cui", "bi", "san",
+       "san", "mao", "sai|sui", "shu", "shu", "tuo", "he", "jian", "ta", "san",
+       "lv", "mu", "mao", "tong", "rong", "chang", "pu", "lu", "zhan", "sao",
+       "zhan", "meng", "lu", "qu", "die", "shi|zhi", "di", "min", "jue", "meng|mang",
+       "qi", "pie", "nai", "qi", "dao", "xian", "chuan", "fen", "yang|ri", "nei",
+       "nei", "fu", "shen", "dong", "qing", "qi", "yin", "xi", "hai", "yang",
+       "an", "ya", "ke", "qing", "ya", "dong", "dan", "lv", "qing", "yang",
+       "yun", "yun", "shui", "shui", "zheng|cheng", "bing", "yong", "dang", "shui", "le",
+       "ni", "tun", "fan", "gui|jiu", "ting", "zhi", "qiu", "bin|pa", "ze", "mian",
+       "cuan", "hui", "diao", "han", "cha", "zhuo|que", "chuan", "wan", "fan", "da",
+       "xi", "tuo", "mang", "qiu", "qi", "shan", "pin", "han", "qian", "wu",
+       "wu", "xun", "si", "ru", "gong", "jiang", "chi", "wu", "tu", "jiu",
+       "tang|shang", "zhi|ji", "zhi", "qian", "mi", "gu|yu", "wang", "jing", "jing", "rui",
+       "jun", "hong", "tai", "tai", "ji", "bian", "bian", "gan|han|cen", "wen|men", "zhong",
+       "fang|pang", "xiong", "jue", "hu|huang", "niu|you", "qi", "fen", "xu", "xu", "qin",
+       "yi", "wo", "yun", "yuan", "hang", "yan", "shen|chen", "chen", "dan", "you",
+       "dun", "hu", "huo", "qi", "mu", "nv|niu", "mei|mo", "ta|da", "mian", "mi|wu",
+       "chong", "hong|pang", "bi", "sha", "zhi", "pei", "pan", "zhui|zi", "za", "gou",
+       "pai", "mei|mo", "ze", "feng", "ou", "li", "lun", "cang", "feng", "wei",
+       "hu", "mo", "mei", "shu", "ju", "za", "tuo|duo", "tuo", "tuo|duo", "he",
+       "li", "mi|li", "yi|chi", "fa", "fei", "you", "tian", "zhi", "zhao", "gu",
+       "zhan", "yan", "si", "kuang", "jiong", "ju", "xie|yi", "qiu", "yi|die", "jia",
+       "zhong", "quan", "bo|po", "hui", "mi|bi", "ben", "ze", "chu|she", "le", "you|ao",
+       "gu", "hong", "gan", "fa", "mao", "si", "hu", "peng|ping", "ci", "fan",
+       "zhi", "su", "ning", "cheng", "ling", "pao", "bo", "qi", "si", "ni",
+       "ju", "yue|sa", "zhu", "sheng", "lei", "xuan", "jue|xue", "fu", "pan", "min",
+       "tai", "yang", "ji", "yong", "guan", "beng", "xue", "long|shuang", "lu", "dan",
+       "luo|po", "xie", "po", "ze|shi", "jing", "yin", "pan", "jie", "yie", "hui",
+       "hui", "zai", "cheng", "yin", "wei", "hou", "jian", "yang", "lie", "si",
+       "ji", "er", "xing", "fu", "sa|xi", "se|qi|zi", "zhi", "yin", "wu", "xi|xian",
+       "kao", "zhu", "jiang", "luo", "luo", "an|yan|e", "dong", "ti", "si", "lei",
+       "yi", "mi", "quan", "jin", "po", "wei", "xiao", "xie", "hong", "xu",
+       "su|shuo", "kuang", "tao", "qie|jie", "ju", "er", "zhou", "ru", "ping", "xun",
+       "xiong", "zhi", "guang", "huan", "ming", "huo", "wa", "qia", "pai", "wu",
+       "qu", "liu", "yi", "jia", "jing", "qian|jian", "jiang", "jiao", "zhen", "shi",
+       "zhuo", "ce", "fa", "kuai|hui", "ji", "liu", "chan", "hun", "hu|xu", "nong",
+       "xun", "jin", "lie", "qiu", "wei", "zhe", "jun|xun", "han", "bang", "mang",
+       "zhuo", "you|di", "xi", "bo", "dou", "huan", "hong", "yi", "pu", "ying|cheng",
+       "lan", "hao", "lang", "han", "li", "geng", "fu", "wu", "li", "chun",
+       "feng|hong", "yi", "yu", "tong", "lao", "hai", "jin", "jia", "chong", "jiong",
+       "mei", "sui|nei", "cheng", "pei", "xian", "shen", "tu", "kun", "ping", "nie",
+       "han", "jing", "xiao", "she", "nian", "tu", "yong|chong", "xiao", "xian", "ting",
+       "e", "su", "tun|yun", "juan", "cen", "ti", "li", "shui", "si", "lei",
+       "shui", "tao", "du", "lao", "lai", "lian", "wei", "wo|guo", "yun", "huan",
+       "di", "heng", "run", "jian", "zhang", "se", "fu", "guan", "xing", "shou|tao",
+       "shuan", "ya", "chuo", "zhang", "ye", "kong|nang", "wan|wo|yuan", "han", "tuo", "dong",
+       "he", "wo", "ju", "she", "liang", "hun", "ta", "zhuo", "dian", "qie|ji",
+       "de", "juan", "zi", "xi", "xiao", "qi", "gu", "guo|guan", "yan", "lin",
+       "tang|chang", "zhou", "peng", "hao", "chang", "shu", "qi", "fang", "zhi", "lu",
+       "nao|chuo|zhuo", "ju", "tao", "cong", "lei", "zhe", "ping|peng", "fei", "song", "tian",
+       "pi|pei", "dan", "yu|xu", "ni", "yu", "lu", "gan", "mi", "jing|cheng", "ling",
+       "lun", "yin", "cui", "qu", "huai", "yu", "nian|shen", "shen", "biao|hu", "chun|zhun",
+       "hu", "yuan", "lai", "hun", "qing", "yan", "qian", "tian", "miao", "zhi",
+       "yin", "bo", "ben", "yuan", "wen|min", "ruo|re|luo", "fei", "qing", "yuan", "ke",
+       "ji", "she", "yuan", "se", "lu", "zi", "du|dou", "yi", "jian", "mian|sheng",
+       "pai", "xi", "yu", "yuan", "shen", "shen", "rou", "huan", "zhu", "jian",
+       "nuan", "yu", "qiu|wu", "ting", "qu|ju", "du", "feng", "zha", "bo", "wo",
+       "wo|guo", "ti|di", "wei", "wen", "ru", "xie", "ce", "wei", "he", "gang|jiang",
+       "yan", "hong", "xuan", "mi", "ke", "mao", "ying", "yan", "you", "hong|qing",
+       "miao", "sheng", "mei", "zai", "hun", "nai", "gui", "chi", "e", "pai",
+       "mei", "lian", "qi", "qi", "mei", "tian", "cou", "wei", "can", "tuan",
+       "mian", "hui|min|xu", "po", "xu", "ji", "pen", "jian", "jian", "hu", "feng",
+       "xiang", "yi", "yin", "zhan", "shi", "jie", "zhen", "huang", "tan", "yu",
+       "bi", "min|hun", "shi", "tu", "sheng", "yong", "ju", "dong", "tuan|nuan", "qiu|jiao",
+       "qiu|jiao", "qiu", "yan|yin", "tang|shang", "long", "huo", "yuan", "nan", "ban|pan", "you",
+       "quan", "zhuang|hun", "liang", "chan", "xian", "chun", "nie", "zi", "wan", "shi",
+       "man", "ying", "la", "kui|hui", "feng|hong", "jian", "xu", "lou", "wei", "gai",
+       "bo", "ying", "po", "jin", "yan|gui", "tang", "yuan", "suo", "yuan", "lian|nian|xian",
+       "yao", "meng", "zhun", "cheng", "ke", "tai", "da|ta", "wa", "liu", "gou",
+       "sao", "ming", "zha", "shi", "yi", "lun", "ma", "pu", "wei", "li",
+       "zai", "wu", "xi", "wen", "qiang", "ze", "shi", "su", "ai", "zhen|qin",
+       "sou", "yun", "xiu", "yin", "rong", "hun", "su", "suo", "ni|niao", "ta",
+       "shi", "ru", "ai", "pan", "chu|xu", "chu", "pang", "weng", "cang", "mie",
+       "ge", "dian", "hao|xue", "huang", "qi|xi|xie", "zi", "di", "zhi", "xing|ying", "fu",
+       "jie", "hua", "ge", "zi", "tao", "teng", "sui", "bi", "jiao", "hui",
+       "gun", "yin", "ze|hao", "long", "zhi", "yan", "she", "man", "ying", "chun",
+       "lv", "lan", "luan", "yao", "bin", "tan", "yu", "xiu", "hu", "bi",
+       "biao", "zhi", "jiang", "kou", "shen", "shang", "di", "mi", "ao", "lu",
+       "hu|xu", "hu", "you", "chan", "fan", "yong", "gun", "man", "qing", "yu",
+       "piao", "ji", "ya", "chao", "qi", "xi", "ji", "lu", "lou", "long",
+       "jin", "guo", "cong|song", "lou", "zhi", "gai", "qiang", "li", "yan", "cao",
+       "jiao", "cong", "chun", "tuan|zhuan", "ou", "teng", "ye", "xi", "mi", "tang",
+       "mo", "shang", "han", "lian", "lan", "wa", "chi", "gan", "feng|peng", "xuan",
+       "yi", "man", "zi", "mang", "kang", "luo|ta", "ben|peng", "shu", "zhang", "zhang",
+       "chong|zhuang", "xu", "huan", "huo|kuo", "jian", "yan", "shuang", "liao|liu", "cui", "ti",
+       "yang", "jiang", "cong|zong", "ying", "hong", "xiu", "shu", "guan", "ying", "xiao",
+       "cong|zong", "kun", "xu", "lian", "zhi", "wei", "pi|pie", "yu", "jiao|qiao", "po",
+       "dang|xiang", "hui", "jie", "wu", "pa", "ji", "pan", "wei", "su", "qian",
+       "qian", "xi|ya", "lu", "xi", "xun", "dun", "huang|guang", "min", "run", "su",
+       "lao|liao", "zhen", "cong|zong", "yi", "zhi", "wan", "tan|shan", "tan", "chao", "xun",
+       "kui|hui", "ye", "shao", "tu|zha", "zhu", "san|sa", "hei", "bi", "shan", "chan",
+       "chan", "shu", "tong", "pu", "lin", "wei", "se", "se", "cheng", "jiong",
+       "cheng|deng", "hua", "jiao", "lao", "che", "gan", "cun", "jing", "si", "shu|zhu",
+       "peng", "han", "yun", "liu", "hong|gong", "fu", "hao", "he", "xian", "jian",
+       "shan", "xi", "ao", "lu", "lan", "ning", "yu", "lin", "mian|sheng", "zao",
+       "dang", "huan", "ze|shi", "xie", "yu", "li", "shi", "xue", "ling", "wan|man",
+       "zi", "yong", "kuai|hui", "can", "lian", "dian", "ye", "ao", "huan", "zhen",
+       "chan", "man", "gan", "dan|tan", "yi", "sui", "pi", "ju", "ta", "qin",
+       "ji", "zhuo", "lian", "nong", "guo|wo", "jin", "fen|pen", "se", "ji|sha", "sui",
+       "hui|huo", "chu", "ta", "song", "ding|ting", "se", "zhu", "lai", "bin", "lian",
+       "mi|ni", "shi", "shu", "mi", "ning", "ying", "ying", "meng", "jin", "qi",
+       "bi|pi", "ji", "hao", "ru", "cui|zui", "wo", "tao", "yin", "yin", "dui",
+       "ci", "huo|hu", "qing", "lan", "jun|xun", "ai|kai|ke", "pu", "zhuo|zhao", "wei", "bin",
+       "gu", "qian", "ying", "bin", "kuo", "fei", "cang", "me", "jian", "wei|dui",
+       "luo|po", "zan|cuan", "lv", "li", "you", "yang", "lu", "si", "zhi", "ying",
+       "du|dou", "wang", "hui", "xie", "pan", "shen", "biao", "chan", "mie|mo", "liu",
+       "jian", "pu|bao", "se", "cheng|deng", "gu", "bin", "huo", "xian", "lu", "qin",
+       "han", "ying", "rong", "li", "jing", "xiao", "ying", "sui", "wei|dui", "xie",
+       "huai|wai", "xue", "zhu", "long|shuang", "lai", "dui", "fan", "hu", "lai", "shu",
+       "lian", "ying", "mi", "ji", "lian", "jian|zun", "ying", "fen", "lin", "yi",
+       "jian", "yue", "chan", "dai", "rang|nang", "jian", "lan", "fan", "shuang", "yuan",
+       "zhuo|jiao|ze", "feng", "she", "lei", "lan", "cong", "qu", "yong", "qian", "fa",
+       "guan", "jue", "yan", "hao", "ying", "sa", "zan|cuan", "luan", "yan", "li",
+       "mi", "shan", "tan", "dang|tang", "jiao", "chan", "ying", "hao", "ba", "zhu",
+       "lan", "lan", "nang", "wan", "luan", "xun|quan", "xian", "yan", "gan", "yan",
+       "yu", "huo", "huo|biao", "mie", "guang", "deng", "hui", "xiao", "xiao", "hui",
+       "hong", "ling", "zao", "zhuan", "jiu", "zha|yu", "xie", "chi", "zhuo", "zai",
+       "zai", "can", "yang", "qi", "zhong", "fen|ben", "niu", "jiong|gui", "wen", "pu",
+       "yi", "lu", "chui", "pi", "kai", "pan", "yan", "yan", "pang|feng", "mu",
+       "chao", "liao", "que", "kang", "dun", "guang", "xin", "zhi", "guang", "guang",
+       "wei", "qiang", "bian", "da", "xia", "zheng", "zhu", "ke", "zhao", "fu",
+       "ba", "xie", "xie", "ling", "zhuo|chu", "xuan", "ju", "tan", "pao|bao", "jiong",
+       "pao|fou", "tai", "tai", "bing", "yang", "tong", "shan|qian", "zhu", "zha", "dian",
+       "wei", "shi", "lian", "chi", "huang", "zhou", "hu", "shuo", "lan", "ting",
+       "jiao|yao", "xu", "heng", "quan", "lie", "huan", "yang", "xiao", "xiu", "xian",
+       "yin", "wu", "zhou", "yao", "shi", "wei", "tong|dong", "mie", "zai", "kai",
+       "hong", "lao|luo", "xia", "zhu", "xuan", "zheng", "po", "yan", "hui", "guang",
+       "che", "hui", "kao", "chen", "fan", "shao", "ye", "hui", "uu", "tang",
+       "jin", "re", "lie", "xi", "fu|pao", "jiong", "xie|che", "pu", "ting", "zhuo",
+       "ting", "wan", "hai", "peng", "lang", "yan", "xu", "feng", "chi", "rong",
+       "hu", "xi", "shu", "he", "xun|hun", "ku", "juan|ye", "xiao", "xi", "yan",
+       "han", "zhuang", "qu|jun", "di", "xie|che", "ji|qi", "wu", "yan", "lv", "han",
+       "yan", "huan", "men", "ju", "dao", "bei", "fen", "lin", "kun", "hun",
+       "tun", "xi", "cui", "wu", "hong", "chao|ju", "fu", "wo|ai", "jiao", "zong|cong",
+       "feng", "ping", "qiong", "ruo", "xi|yi", "qiong", "xin", "zhuo|chao", "yan", "yan",
+       "yi", "jue", "yu", "gang", "ran", "pi", "xiong|ying", "gang", "sheng", "chang",
+       "shao", "xiong|ying", "nem", "geng", "qu", "chen", "he", "kui", "zhong", "duan",
+       "xia", "hui|yun|xun", "feng", "lian", "xuan", "xing", "huang", "jiao", "jian", "bi",
+       "ying", "zhu", "wei", "tuan", "shan|qian", "xi|yi", "nuan", "nuan", "chan", "yan",
+       "jiong", "jiong", "yu", "mei", "sha", "wei", "ye|zha", "jin", "qiong", "rou",
+       "mei", "huan", "xu", "zhao", "wei", "fan", "qiu", "sui", "yang", "lie",
+       "zhu", "jie", "zao", "gua", "bao", "hu", "yun", "nan", "shi", "huo",
+       "bian", "gou", "tui", "tang", "chao", "shan", "en|yun", "bo", "huang", "xie",
+       "xi", "wu", "xi", "yun", "he", "he|xiao", "xi", "yun", "xiong", "xiong",
+       "shan", "qiong", "yao", "xun", "mi", "lian", "ying", "wu", "rong", "gong",
+       "yan", "qiang", "liu", "xi", "bi", "biao", "cong|zong", "lu|ao", "jian", "shu",
+       "yi", "lou", "peng|feng", "sui|cui", "yi", "teng", "jue", "zong", "yun|yu", "hu",
+       "yi", "zhi", "ao", "wei", "liu", "han|ran", "ou", "re", "jiong", "man",
+       "kun", "shang", "cuan", "zeng", "jian", "xi", "xi", "xi", "yi", "xiao",
+       "chi", "huang", "chan|dan", "ye", "tan", "ran", "yan", "xun", "qiao", "jun",
+       "deng", "dun", "shen", "jiao|qiao|jue|zhuo", "fen", "si", "liao", "yu", "lin", "tong|dong",
+       "shao", "fen", "fan", "yan", "xun", "lan", "mei", "tang", "yi", "jiong",
+       "men", "zhu", "jiao", "ying", "yu", "yi", "xue", "lan", "tai|lie", "zao",
+       "can", "sui", "xi", "que", "zong", "lian", "hui", "zhu", "xie", "ling",
+       "wei", "yi", "xie", "zhao", "hui", "da", "nong", "lan", "xu", "xian",
+       "he", "xun", "jin", "chou", "tao", "yao", "he", "lan", "biao", "rong|ying",
+       "li|lie", "mo", "bao", "ruo", "lv", "la|lie", "ao", "xun", "kuang|huang", "shuo",
+       "liao", "li", "lu", "jue", "liao", "yan|xun", "xi", "xie", "long", "ye",
+       "can", "rang", "yue", "lan", "cong", "jue", "chong", "guan", "qu", "che",
+       "mi", "tang", "lan", "zhu", "lan", "ling", "cuan", "yu", "zhao|zhua", "zhao|zhua",
+       "pa", "zheng", "pao", "cheng|chen", "yuan", "ai", "wei", "han", "jue", "jue",
+       "fu", "ye", "ba", "die", "ye", "yao", "zu", "shuang", "er", "pan",
+       "chuang", "ke", "zang", "die", "qiang", "yong", "qiang", "pian", "ban", "pan",
+       "chao", "jian", "pai", "du", "chuang", "yu", "zha", "bian|mian", "die", "bang",
+       "bo", "chuang", "you", "you|yong", "du", "ya", "cheng", "niu", "niu", "pin",
+       "jiu|le", "mou|mu", "ta", "mu", "lao", "ren", "mang", "fang", "mao", "mu",
+       "gang", "wu", "yan", "ge|qiu", "bei", "si", "jian", "gu", "you|chou", "ke",
+       "sheng", "mu", "di", "qian", "quan", "quan", "zi", "te", "xi", "mang",
+       "keng", "qian", "wu", "gu", "xi", "li", "li", "pou", "ji", "gang",
+       "zhi|te", "ben", "quan", "chun", "du", "ju", "jia", "jian|qian", "feng", "pian",
+       "ke", "ju", "kao", "chu", "xi", "bei", "luo", "jie", "ma", "san",
+       "wei", "mao|li", "dun", "tong", "qiao", "jiang", "xi", "li", "du", "lie",
+       "bai", "piao", "bao", "xi", "chou", "wei", "kui", "chou", "quan", "quan",
+       "quan|ba", "fan", "qiu", "ji", "chai", "zhuo|bao", "han|an", "ge", "zhuang", "guang",
+       "ma", "you", "kang|gang", "pei|fei", "hou", "ya", "yin", "huan|fan", "zhuang", "yun",
+       "kuang", "niu", "di", "kuang", "zhong", "mu", "bei", "pi", "ju", "yi|quan|chi",
+       "sheng|xing", "pao", "xia", "tuo|yi", "hu", "ling", "fei", "pi", "ni", "yao",
+       "you", "gou", "xue", "ju", "dan", "bo", "ku", "xian", "ning", "huan",
+       "hen", "jiao", "he", "zhao", "jie", "xun", "shan", "ta|shi", "rong", "shou",
+       "tong|dong", "lao", "du", "xia", "shi", "kuai", "zheng", "yu", "sun", "yu",
+       "bi", "mang|dou", "xi|shi", "juan", "li", "xia", "yin", "suan", "lang", "bei",
+       "zhi", "yan", "sha", "li", "han", "xian", "jing", "pai", "fei", "xiao",
+       "bai|pi", "qi", "ni", "biao", "yin", "lai", "lie", "jian|yan", "qiang", "kun",
+       "yan", "guo", "zong", "mi", "chang", "yi", "zhi", "zheng", "ya|wei", "meng",
+       "cai", "cu", "she", "lie", "ceon", "luo", "hu", "zong", "gui", "wei",
+       "feng", "wo", "yuan", "xing", "zhu", "mao", "wei", "chuan", "xian", "tuan",
+       "ya|jia|qie", "nao", "xie|he|ge|hai", "jia", "hou", "bian|pian", "you", "you", "mei", "cha",
+       "yao", "sun", "bo|po", "ming", "hua", "yuan", "sou", "ma", "huan", "dai",
+       "yu", "shi", "hao", "qiang", "yi", "zhen", "cang", "hao|gao", "man", "jing",
+       "jiang", "mo", "zhang", "chan", "ao", "ao", "hao", "suo", "fen", "jue",
+       "bi", "bi", "huang", "pu", "lin", "xu", "tong", "yao|xiao", "lao", "shuo|xi",
+       "xiao", "shou", "dun", "jiao", "ge|lie|xie", "juan", "du", "hui", "kuai", "xian",
+       "xie", "ta", "xian", "xun", "ning", "bian|pian", "huo", "nou|ru", "meng", "lie",
+       "nao|you", "guang", "shou", "lu", "ta", "xian", "mi", "rang", "huan", "nao|you",
+       "luo", "xian", "qi", "jue", "xuan", "miao", "zi", "shuai|lv", "lu", "yu",
+       "su", "wang", "qiu", "ga", "ding", "le", "ba", "ji", "hong", "di",
+       "chuan", "gan", "jiu", "yu", "qi", "yu", "chang|yang", "ma", "hong", "wu",
+       "fu", "min|wen", "jie", "ya", "bin|fen", "bian", "bang", "yue", "jue", "men|yun",
+       "jue", "wan", "jian|qian", "mei", "dan", "pin", "wei", "huan", "xian", "qiang|cang",
+       "ling", "dai", "yi", "an|gan", "ping", "dian", "fu", "xuan|xian", "xi", "bo",
+       "ci", "gou", "jia", "shao", "po", "ci", "ke", "ran", "sheng", "shen",
+       "yi|tai", "zu|ju", "jia", "min", "shan", "liu", "bi", "zhen", "zhen", "jue",
+       "fa", "long", "jin", "jiao", "jian", "li", "guang", "xian", "zhou", "gong",
+       "yan", "xiu", "yang", "xu", "luo", "su", "zhu", "qin", "yin|ken", "xun",
+       "bao", "er", "xiang", "yao", "xia", "hang", "gui", "chong", "xu", "ban",
+       "pei", "lao", "dang", "ying", "hun|hui", "wen", "e", "cheng", "di|ti", "wu",
+       "wu", "cheng", "jun", "mei", "bei", "ting", "xian", "chu", "han", "xuan|qiong",
+       "yan", "qiu", "xuan", "lang", "li", "xiu", "fu", "liu", "ya", "xi",
+       "ling", "li", "jin", "lian", "suo", "suo", "feng", "wan", "dian", "pin|bing",
+       "zhan", "cui|se", "min", "yu", "ju", "chen", "lai", "min", "sheng", "wei|yu",
+       "tian", "shu", "zhuo|zuo", "beng|pei", "cheng", "hu", "qi", "e", "kun", "chang",
+       "qi", "beng", "wan", "lu", "cong", "guan", "yan", "diao", "bei", "lin",
+       "qin", "pi", "pa", "que", "zhuo", "qin", "fa", "jin", "qiong", "du",
+       "jie", "hun|hui", "yu", "mao", "mei", "chun", "xuan", "ti", "xing", "dai",
+       "rou", "min", "jian", "wei", "ruan", "huan", "xie|jie", "chuan", "jian", "zhuan",
+       "chang|yang", "lian", "quan", "xia", "duan", "yuan", "ye", "nao", "hu", "ying",
+       "yu", "huang", "rui", "se", "liu", "shi", "rong", "suo", "yao", "wen",
+       "wu", "zhen", "jin", "ying", "ma", "tao", "liu", "tang", "li", "lang",
+       "gui", "tian|zhen", "qiang|cang", "cuo", "jue", "zhao", "yao", "ai", "bin|pian", "tu|shu",
+       "chang", "kun", "zhuan", "cong", "jin", "yi", "cui", "cong", "qi", "li",
+       "jing", "zao|suo", "qiu", "xuan", "ao", "lian", "men", "zhang", "yin", "ye",
+       "ying", "zhi", "lu", "wu", "deng", "xiu", "zeng", "xun", "qu", "dang",
+       "lin", "liao", "qiong|jue", "su", "huang", "gui", "pu", "jing", "fan", "jin",
+       "liu", "ji", "hui", "jing", "ai", "bi", "can", "qu", "zao", "dang",
+       "jiao", "guan", "tan", "hui|kuai", "huan", "se", "sui", "tian", "chu", "yu",
+       "jin", "lu|fu", "bin|pian", "shu", "wen", "zui", "lan", "xi", "ji|zi", "xuan",
+       "ruan", "wo", "gai", "lei", "du", "li", "zhi", "rou", "li", "zan",
+       "qiong", "ti", "gui", "sui", "la", "long", "lu", "li", "zan", "lan",
+       "ying", "mi|xi", "xiang", "qiong|wei", "guan", "dao", "zan", "huan|ye|ya", "gua", "bo",
+       "die", "bo|pao", "hu", "zhi|hu", "piao", "ban", "rang", "li", "wa", "shiwa",
+       "xiang|hong", "qianwa", "ban", "pen", "fang", "dan", "weng", "ou", "fenwa", "maowa",
+       "ki ro ton|mao wa", "hu", "ling", "yi", "ping", "ci", "bai", "juan", "chang", "chi",
+       "liwa", "dang", "wa", "bu", "zhui", "ping", "bian", "zhou", "zhen", "liwa",
+       "ci", "ying", "qi", "xian", "lou", "di", "ou", "meng", "zhuan", "beng",
+       "lin", "zeng", "wu", "pi", "dan", "weng", "ying", "yan", "gan", "dai",
+       "shen", "tian", "tian", "han", "chang", "sheng", "qing", "shen", "chan", "chan",
+       "rui", "sheng", "su", "shen", "yong", "shuai", "lu", "fu", "yong", "beng",
+       "beng", "ning", "tian", "you", "jia", "shen", "you", "dian", "fu", "nan",
+       "dian|tian|sheng", "ping", "ting|ding", "hua", "ting|ding", "zhen", "zai|zi", "meng", "bi", "bi|qi",
+       "mu", "xun", "liu", "chang", "mu", "yun", "fan", "fu", "geng", "tian",
+       "jie", "jie", "quan", "wei", "fu|bi", "tian", "mu", "tap", "pan", "jiang",
+       "wa", "da|fu", "nan", "liu", "ben", "zhen", "xu|chu", "mu", "mu", "ce|ji",
+       "zai|zi", "gai", "bi", "da", "zhi|chou|shi", "lve", "qi", "lve", "fan|pan", "yi",
+       "fan|pan", "hua", "she|yu", "she", "mu", "jun", "yi", "liu", "she", "die",
+       "chou", "hua", "dang", "zhui", "ji", "wan", "jiang", "cheng", "chang", "tuan",
+       "lei", "ji", "cha", "liu", "die", "tuan", "lin", "jiang", "jiang|qiang", "chou",
+       "pi", "die", "die", "pi|ya|shu", "jie|qie", "dan", "shu", "shu", "zhi|di", "yi|ni",
+       "ne", "nai", "ding", "bi", "jie", "liao", "gang", "ge|yi", "jiu", "zhou",
+       "xia", "shan", "xu", "n<e|yao", "li|lai", "yang", "chen", "you", "ba", "jie",
+       "jue|xue", "qi", "ya|xia", "cui", "bi", "yi", "li", "zong", "chuang", "feng",
+       "zhu", "pao", "pi", "gan", "ke", "ci", "xue", "zhi", "da", "zhen",
+       "fa|bian", "zhi", "teng", "ju", "ji", "fei", "gou", "shan|dian", "jia", "xuan",
+       "zha", "bing", "nie", "zheng", "yong", "jing", "quan", "teng|chong", "tong", "yi",
+       "jie", "wei|you|yu", "hui", "tan|shi", "yang", "zhi", "zhi", "hen", "ya", "mei",
+       "dou", "jing", "xiao", "tong", "tu", "mang", "pi", "xiao", "suan", "pu",
+       "li", "zhi", "cuo", "duo", "wu", "sha", "lao", "shou", "huan", "xian",
+       "yi", "beng|peng", "zhang", "guan", "tan", "fei", "ma", "ma|lin", "chi", "ji",
+       "tian|dian", "an|ye|e", "chi", "bi", "bi", "min", "gu", "dui", "ke|e", "wei",
+       "yu", "cui", "ya", "zhu", "cu", "dan", "shen", "zhong", "zhi|chi", "yu",
+       "hou", "feng", "la", "yang", "chen", "tu", "yu", "guo", "wen", "huan",
+       "ku", "jia|xia", "yin", "yi", "lou", "sao", "jue", "chi", "xi", "guan",
+       "yi", "wen", "ji", "chuang", "ban", "hui|lei", "liu", "chai|cuo", "shou", "n<e|yao",
+       "dian|chen", "da|dB", "bie", "tan", "zhang", "biao", "shen", "cu", "luo", "yi",
+       "zong", "chou", "zhang", "zhai", "sou", "se", "que", "diao", "lou", "lou",
+       "mo", "qin", "yin", "ying", "huang", "fu", "liao", "long", "qiao|jiao", "liu",
+       "lao", "xian", "fei", "dan", "yin", "he", "ai", "ban", "xian", "guan",
+       "gui|wei", "nong", "yu", "wei", "yi", "yong", "pi", "lei", "li|lai", "shu",
+       "dan", "lin", "dian", "lin", "la", "bie", "ji", "chi", "yang", "xuan",
+       "jie", "zheng", "mo", "li", "huo", "la", "ji", "dian", "xuan", "ying",
+       "yin", "qu", "yong", "tan", "dian", "luo", "luan", "luan", "bo", "uu",
+       "gui", "ba", "fa", "deng", "fa", "bai", "bai", "qie", "ji|bi", "zao",
+       "zao", "mao", "di|de", "pa|ba", "jie", "huang", "gui", "ci", "ling", "gao|yao",
+       "mo", "ji", "jiao", "peng", "gao|yao", "ai", "e", "hao", "han", "bi",
+       "wan", "chou", "qian", "xi", "ai", "xiao", "hao", "huang", "hao", "ze",
+       "cui", "hao", "xiao", "ye", "po", "hao", "jiao", "ai", "xing", "huang",
+       "li|luo|bo", "piao", "he", "jiao", "pi", "gan", "pao", "zhou", "jun", "qiu",
+       "cun", "que", "zha", "gu", "jun", "jun", "zhou", "zha|cu", "gu", "zhao|zhan|dan",
+       "du", "min", "qi", "ying", "yu", "bei", "diao", "zhong", "pen", "he",
+       "ying", "he", "yi", "bo", "wan", "he", "ang", "zhan", "yan", "jian",
+       "he", "yu", "kui", "fan", "gai|ge|he", "dao", "pan", "fu", "qiu", "sheng|cheng",
+       "dao", "lu", "zhan", "meng", "li", "jin", "xu", "jian", "pan", "guan",
+       "an", "lu", "xu", "zhou|chou", "dang", "an", "gu", "li", "mu", "ding",
+       "gan", "xu", "mang", "mang|wang", "zhi", "qi", "yuan", "xian|tian", "xiang", "dun",
+       "xin", "xi|pan", "pan", "feng", "dun", "min", "ming", "sheng|xing", "shi", "yun|hun",
+       "mian", "pan", "fang", "miao", "dan", "mei", "mao", "kan", "xian", "kou",
+       "shi", "yang|ying", "zheng", "yao|ao", "shen", "huo", "da", "zhen", "kuang", "ju|xu|kou",
+       "shen", "yi|chi", "sheng", "mei", "mo|mie", "zhu", "zhen", "zhen", "mian", "shi",
+       "yuan", "die|ti", "ni", "zi", "zi", "chao", "zha", "xuan", "bing|fang", "pang|pan",
+       "long", "gui|sui", "tong", "mi", "die|zhi", "di", "ne", "ming", "xuan|shun|xun", "chi",
+       "kuang", "juan", "mou", "zhen", "tiao", "yang", "yan", "mo", "zhong", "mo",
+       "zhuo|zhao|zhe", "zheng", "mei", "suo", "qiao|shao|xiao", "han", "huan", "di", "cheng", "cuo|zhuai",
+       "juan", "e", "mian", "xian", "xi", "kun", "lai", "jian", "shan", "tian",
+       "gun", "wan", "leng", "shi", "qiong", "li", "ya", "jing", "zheng", "li",
+       "lai", "sui|zui", "juan", "shui", "sui", "du", "bi", "bi", "mu", "hun",
+       "ni", "lu", "yi|ze|gao", "jie", "cai", "zhou", "yu", "hun", "ma", "xia",
+       "xing", "hui", "hun", "zai", "chun", "jian", "mei", "du", "hou", "xuan",
+       "ti", "kui", "gao", "rui", "mao", "xu", "fa", "wo", "miao", "chou",
+       "gui|wei|kui", "mi", "weng", "kou|ji", "dang", "chen", "ke", "sou", "xia", "qiong|huan",
+       "mo", "ming", "man|men", "fen", "ze", "zhang", "yi", "diao|dou", "kou", "mo",
+       "shun", "cong", "lou|lv", "chi", "man|men", "piao", "cheng", "gui", "meng", "wan",
+       "run|shun", "pie", "xi", "qiao", "pu", "zhu", "deng", "shen", "shun", "liao",
+       "che", "xian|jian", "kan", "ye", "xue", "tong", "wu|mi", "lin", "gui|kui", "jian",
+       "ye", "ai", "hui", "zhan", "jian", "gu", "zhao", "qu|ju", "wei", "chou",
+       "sao", "ning|cheng", "xun", "yao", "huo|yue", "meng", "mian", "pin", "mian", "lei",
+       "kuang|guo", "jue", "xuan", "mian", "huo", "lu", "meng", "long", "guan|quan", "man",
+       "xi", "chu", "tang", "kan", "zhu", "mao", "jin|qin|guan", "jin|qin|guan", "yu|xu|jue", "shuo",
+       "ze", "jue", "shi", "yi", "shen", "zhi", "hou", "shen", "ying", "ju",
+       "zhou", "jiao", "cuo", "duan", "ai", "jiao", "zeng", "yue", "ba", "shi|dan",
+       "ding", "qi", "ji", "zi", "gan", "wu", "zhe", "ku", "gang|qiang|kong", "xi",
+       "fan", "kuang", "dang", "ma", "sha", "dan", "jue", "li", "fu", "min",
+       "e", "xu|hua", "kang", "zhi", "qi|qie", "kan", "jie", "pin|bin|fen", "e", "ya",
+       "pi", "zhe", "yan", "sui", "zhuan", "che", "dun", "wa", "yan", "jin",
+       "feng", "fa", "mo", "zha", "ju", "yu", "ke|luo", "tuo", "tuo", "di",
+       "zhai", "zhen", "e", "fu|fei", "mu", "zhu", "li|la", "bian", "nu", "ping",
+       "peng", "ling", "pao", "le", "po", "bo", "po", "shen", "za", "ai",
+       "li", "long", "tong", "yong", "li", "kuang", "chu", "keng", "quan", "zhu",
+       "kuang|guang", "gui", "e", "nao", "qia", "lu", "wei|gui", "ai", "luo|ge", "ken|xian|gun|yin",
+       "xing", "yan", "dong", "peng|ping", "xi", "lao", "hong", "shuo|shi", "xia", "qiao",
+       "qing", "wei|ai|gai", "qiao", "ce", "keng", "xiao", "que|ke|ku", "chan", "lang", "hong",
+       "yu", "xiao", "xia", "mang|bang", "luo|long", "yong|tong", "che", "che", "wo", "liu",
+       "ying", "mang", "que", "yan", "sha", "kun", "yu", "ze", "hua", "lu",
+       "chen", "jian", "nve", "song", "zhuo", "keng", "peng", "yan", "zhui|chui|duo", "kong",
+       "cheng", "qi", "zong|cong", "qing", "lin", "jun", "bo", "ding", "min", "diao",
+       "jian|zhan", "he", "lu|liu", "ai", "sui", "que|xi", "leng", "bei", "yin", "dui",
+       "wu", "qi", "lun", "wan", "dian", "nao|gang", "bei", "qi", "chen", "ruan",
+       "yan", "die", "ding", "zhou", "tuo", "jie|ya", "ying", "bian", "ke", "bi",
+       "wei", "shuo|shi", "zhen", "duan", "xia", "dang", "ti|di", "nao", "peng", "jian",
+       "di", "tan", "cha", "tian", "qi", "dun", "feng", "xuan", "que", "que|qiao",
+       "ma", "gong", "nian", "su|xie", "e", "ci", "liu", "si|ti", "tang", "bang|pang",
+       "hua|ke|gu", "pi", "kui|wei", "sang", "lei", "cuo", "tian", "xia|qia|ya", "xi", "lian|qian",
+       "pan", "wei|ai|gai", "yun", "dui", "zhe", "ke", "la", "zhuan", "yao", "gun",
+       "zhuan", "chan", "qi", "ao|qiao", "peng", "liu", "lu", "kan", "chuang", "chen",
+       "yin", "lei", "biao", "qi", "mo", "qi|zhu", "cui", "zong", "qing", "chuo",
+       "lun", "ji", "shan", "lao|luo", "qu", "zeng", "deng", "jian", "xi", "lin",
+       "ding", "dian", "huang", "pan|bo", "ji|she", "qiao", "di", "li", "jian", "jiao",
+       "xi", "zhang", "qiao", "dun", "jian", "yu", "zhui", "he|qiao", "ke|huo", "ze",
+       "lei", "jie", "chu", "ye", "que|hu", "dang", "yi", "jiang", "pi", "pi",
+       "yu", "pin", "e|qi", "ai", "ke", "jian", "yu", "ruan", "meng", "pao",
+       "ci", "bo", "yang", "mie", "ca", "xian|xin", "kuang", "lei", "lei", "zhi",
+       "li", "li", "fan", "que", "pao", "ying", "li", "long", "long", "mo",
+       "bo", "shuang", "guan", "jian", "ca", "yan", "shi", "shi", "li", "reng",
+       "she", "yue", "si", "qi", "ta", "ma", "xie", "yao", "xian", "zhi|qi",
+       "qi", "zhi", "beng|fang", "dui", "zhong", "ren", "yi", "shi", "you", "zhi",
+       "tiao", "fu", "fu", "mi|bi", "zu", "zhi", "suan", "mei", "zuo", "qu",
+       "hu", "zhu", "shen", "sui", "ci", "chai", "mi", "lv", "yu", "xiang",
+       "wu", "tiao", "piao", "zhu", "gui", "xia", "zhi", "ji|zhai", "gao", "zhen",
+       "gao", "shui|lei", "jin", "shen", "gai", "kun", "di", "dao", "huo", "tao",
+       "qi", "gu", "guan", "zui", "ling", "lu", "bing", "jin", "dao", "zhi",
+       "lu", "chan|shan", "bi|pi", "chu", "hui", "you|chao", "xi", "yin", "zi", "huo",
+       "zhen", "fu", "yuan", "xu", "xian", "shang|yang", "ti|zhi", "yi", "mei", "si",
+       "di", "bei", "zhuo", "zhen", "ying", "ji", "gao", "tang", "si", "ma",
+       "ta", "fu", "xuan", "qi", "yu", "xi", "ji", "si", "shan|chan", "dan",
+       "gui", "sui", "li", "nong", "mi", "dao", "li", "rang", "yue", "ti",
+       "zan", "lei", "rou", "yu", "yu|ou", "li", "xie", "qin", "he", "tu",
+       "xiu", "si", "ren", "tu", "zi", "cha|na", "gan", "yi|zhi", "xian", "bing",
+       "nian", "qiu", "qiu", "zhong", "fen", "hao|mao", "yun", "ke", "miao", "zhi",
+       "jing", "bi", "zhi", "yu", "mi|bi", "ku", "ban", "pi", "ni", "li",
+       "you", "zu", "pi", "bo", "ling", "mo", "cheng", "nian", "qin", "yang",
+       "zuo", "zhi", "di", "shu", "ju", "zi", "huo|kuo", "ji", "cheng|chen", "tong",
+       "shi|zhi", "huo|kuo", "huo", "yin", "zi", "zhi", "jie", "ren", "du", "yi",
+       "zhu", "hui", "nong", "fu|pu", "xi", "gao", "lang", "fu", "xun|ze", "shui",
+       "lv", "kun", "gan", "jing", "ti", "cheng", "tu|shu", "shao", "shui", "ya",
+       "lun", "lu", "gu", "zuo", "ren", "zhun", "bang", "bai", "ji|qi", "zhi",
+       "zhi", "kun", "leng|ling", "peng", "ke", "bing", "chou", "zui|zu|su", "yu", "su",
+       "lve", "uu", "yi", "xi|qie", "bian", "ji", "fu", "pi|bi", "nuo", "jie",
+       "zhong", "zong", "xu", "cheng|chen", "dao", "wen", "xian|jian|lian", "zi|jiu", "yu", "ji",
+       "xu", "zhen", "zhi", "dao", "jia", "ji|qi", "gao", "gao", "gu", "rong",
+       "sui", "rong", "ji", "kang", "mu", "can|shan|cen", "men|mei", "zhi", "ji", "lu",
+       "su", "ji", "ying", "wen", "qiu", "se", "kweok", "yi", "huang", "qie",
+       "ji", "sui", "xiao|rao", "pu", "jiao", "zhuo|bo", "tong|zhong", "zuo", "lu", "sui",
+       "nong", "se", "hui", "rang", "nuo", "yu", "pin", "ji", "tui", "wen",
+       "cheng|chen", "huo", "kuang", "lv", "biao|pao", "se", "rang", "zhuo|jue", "li", "cuan|zan",
+       "xue", "wa", "jiu", "qiong", "xi", "qiong", "kong", "yu", "shen", "jing",
+       "yao", "chuan", "zhun", "tu", "lao", "qie", "zhai", "yao", "bian", "bao",
+       "yao", "bing", "wa", "zhu|ku", "jiao|liao|liu", "qiao", "diao", "wu", "wa|gui", "yao",
+       "zhi", "chuang", "yao", "tiao|yao", "jiao", "chuang", "jiong", "xiao", "cheng", "kou",
+       "cuan", "wo", "dan", "ku", "ke", "zhuo", "huo", "su", "guan", "kui",
+       "dou", "zhuo", "yin|xun", "wo", "wa", "ya|ye", "yu", "ju", "qiong", "yao",
+       "yao", "tiao", "chao", "yu", "tian|dian|yan", "diao", "ju", "liao", "xi", "wu",
+       "kui", "chuang", "chao|ke", "kuan|cuan", "kuan|cuan", "long", "cheng", "cui", "liao", "zao",
+       "cuan", "qiao", "qiong", "dou", "zao", "long", "qie", "li", "chu", "shi",
+       "fu", "qian", "chu|qi", "hong", "qi", "hao", "sheng", "fen", "shu", "miao",
+       "qu|kou", "zhan", "zhu", "ling", "long", "bing", "jing", "jing", "zhang", "bai",
+       "si", "jun", "hong", "tong", "song", "jing|zhen", "diao", "yi", "shu", "jing",
+       "qu", "jie", "ping", "duan", "li", "zhuan", "ceng|zeng", "deng", "cun", "wai",
+       "jing", "kan", "jing", "zhu", "zhu|du", "le|jin", "peng", "yu", "chi", "gan",
+       "mang", "zhu", "wan", "du", "ji", "jiao", "ba", "suan", "ji", "qin",
+       "zhao", "sun", "ya", "zhui|rui", "yuan", "hu", "hang", "xiao", "cen|jin|han", "pi|bi",
+       "bi", "jian", "yi", "dong", "shan", "sheng", "da|xia|na", "di", "zhu", "na",
+       "chi", "gu", "li", "qie", "min", "bao", "tiao", "si", "fu", "ce",
+       "ben", "fa", "da", "zi", "di", "ling", "zuo|ze", "nu", "fu|fei", "gou",
+       "fan", "jia", "ge", "fan", "shi", "mao", "po", "ti", "jian", "qiong",
+       "long", "min", "bian", "luo", "gui", "qu", "chi", "yin", "yao", "xian",
+       "bi", "qiong", "kuo", "deng", "jiao", "jin", "quan", "sun", "ru", "fa",
+       "kuang", "zhu", "tong", "ji", "da", "hang", "ce", "zhong", "kou", "lai",
+       "bi", "shai", "dang", "zheng", "ce", "fu", "yun|jun", "tu", "pa", "li",
+       "lang", "ju", "guan", "jian", "han", "tong", "xia", "zhi", "cheng", "suan",
+       "shi", "zhu", "zuo", "xiao", "shao", "ting", "ce", "yan", "gao", "kuai",
+       "gan", "chou", "kuang", "gang", "yun", "o", "qian", "xiao", "jian", "pou|bu|fu|pu",
+       "lai", "zou", "pai|bei", "bi", "bi", "ge", "tai|chi", "guai|dai", "yu", "jian",
+       "zhao|dao", "gu", "chi", "zheng", "qing|jing", "sha", "zhou", "lu", "bo", "ji",
+       "lin", "suan", "jun|qun", "fu", "zha", "gu", "kong", "qian", "quan", "jun",
+       "chui", "guan", "wan|yuan", "ce", "zu", "po", "ze", "qie", "tuo", "luo",
+       "dan", "xiao", "ruo", "jian", "xuan", "bian", "sun", "xiang", "xian", "ping",
+       "zhen", "xing", "hu", "shi|yi", "zhu", "yue|yao|chuo", "chun", "lv", "wu", "dong",
+       "shuo|xiao|qiao", "ji", "jie", "huang", "xing", "mei", "fan", "chuan", "zhuan", "pian",
+       "feng", "zhu", "hong", "qie", "hou", "qiu", "miao", "qian", "gu", "kui",
+       "yi", "lou", "yun", "he", "tang", "yue", "chou", "gao", "fei", "ruo",
+       "zheng", "gou", "nie", "qian", "xiao", "cuan", "gong|gan|long", "peng|pang", "du", "li",
+       "bi", "zhuo|huo", "chu", "shai", "chi", "zhu", "qiang|cang", "long", "lan", "jian",
+       "bu", "li", "hui", "bi", "zhu|di", "cong", "yan", "peng", "cen|zan|can", "zhuan|zuan|suan",
+       "pi", "piao|biao", "dou", "yu", "mie", "tuan|zhuan", "ze", "shai", "guo|gui", "yi",
+       "hu", "chan", "kou", "cu", "ping", "zao", "ji", "gui", "su", "lou",
+       "ce|ji", "lu", "nian", "suo", "cuan", "diao", "suo", "le", "duan", "zhu",
+       "xiao", "bo", "mi|mie", "shai|si", "dang", "liao", "dan", "dian", "fu", "jian",
+       "min", "kui", "dai", "jiao", "deng", "huang", "sun|zhuan", "lao", "zan", "xiao",
+       "lu", "shi", "zan", "qi", "pai", "qi", "pai", "gan", "ju", "lu",
+       "lu", "yan", "bo", "dang", "sai", "zhua", "gou", "qian", "lian", "bu|bo",
+       "zhou", "lai", "shi", "lan", "kui", "yu", "yue", "hao", "zhen|jian", "tai",
+       "ti", "nie", "chou", "ji", "yi", "qi", "teng", "zhuan", "zhou", "fan|pan|bian",
+       "sou|shu", "zhou", "qian", "zhuo", "teng", "lu", "lu", "jian", "tuo", "ying",
+       "yu", "lai", "long", "shen shi|sen si|qie", "lian", "lan", "qian", "yue", "zhong", "qu",
+       "lian", "bian", "duan", "zuan", "li", "shai", "luo", "ying", "yue", "zhuo",
+       "yu", "mi", "di", "fan", "shen", "zhe", "shen", "nv", "he", "lei",
+       "xian", "zi", "ni", "cun", "zhang", "qian", "zhai", "bi", "ban", "wu",
+       "sha|chao", "kang|jing", "rou", "fen", "bi", "cui", "yin", "zhe", "mi", "ta",
+       "hu", "ba", "li", "gan", "ju", "po", "yu", "cu", "nian", "zhou",
+       "chi", "su", "tiao", "li", "xi", "su", "hong", "tong", "zi|ci", "ce|se",
+       "yue", "zhou|yu", "lin", "zhuang", "bai", "lao", "fen", "er", "qu", "he",
+       "liang", "xian", "fu", "liang", "can", "jing", "li", "yue", "lu", "ju",
+       "qi", "cui", "bai", "zhang", "lin", "zong", "jing", "guo", "hua", "san|shen",
+       "shen", "tang", "bian", "rou", "mian", "hou", "xu", "zong", "hu", "jian",
+       "zan", "ci", "li", "xie", "fu", "nuo", "bei", "gu|gou", "xiu", "gao",
+       "tang", "qiu", "jia", "cao", "zhuang", "tang", "mi|mei", "san|shen", "fen", "zao",
+       "kang", "jiang", "mo", "san|shen", "san", "nuo", "xi", "liang", "jiang", "kuai",
+       "bo", "huan", "shu", "zong", "xian", "nuo", "tuan", "nie", "li", "zuo",
+       "di", "nie", "tiao", "lan", "mi|si", "si", "jiu", "xi|ji", "gong", "zheng",
+       "jiu", "gong", "ji", "cha", "zhou", "xun", "yue|yao", "hong|gong", "yu", "he|ge",
+       "wan", "ren", "wen", "wen", "qiu", "na", "zi", "tou", "niu", "fou",
+       "ji|jie", "shu", "chun", "bi", "zhen", "sha", "hong", "zhi", "ji", "fen",
+       "yun", "ren", "dan", "jin", "su", "fang", "suo", "cui", "jiu", "zha|za",
+       "ha", "jin", "fu", "zhi", "qi", "zi", "chou", "hong", "zha|za", "lei",
+       "xi", "fu", "xie", "shen", "bo|bi", "zhu", "qu", "ling", "zhu", "shao",
+       "gan", "yang", "fu", "tuo", "zhen|tian", "dai", "chu", "shi", "zhong", "xian",
+       "zu", "jiong", "ban", "qu", "mo", "shu", "zui", "kuang", "jing", "ren",
+       "hang", "xie", "jie", "zhu", "chou", "gua|kua", "bai|mo", "jue", "kuang", "hu",
+       "ci", "huan|geng", "geng", "tao", "xie|jie", "ku", "jiao", "quan|shuan", "gai|ai", "luo|lao",
+       "xuan", "beng|bing|peng", "xian", "fu", "gei|ji", "tong|dong", "rong", "tiao|diao|dao", "yin", "lei",
+       "xie", "juan", "xu", "gai|hai", "die", "tong", "si", "jiang", "xiang", "hui",
+       "jue", "zhi", "jian", "juan", "chi|zhi", "mian|wen|man|wan", "zhen", "lv", "cheng", "qiu",
+       "shu", "bang", "tong", "xiao", "huan|wan", "qin|xian", "geng", "xu", "ti", "xiu",
+       "xie", "hong", "xi", "fu", "ting", "sui", "dui", "kun", "fu", "jing",
+       "hu", "zhi", "yan|xian", "jiong", "feng", "ji", "xu", "ren", "zong|zeng", "lin|chen",
+       "duo", "li|lie", "lv", "jing", "chou", "quan", "shao", "qi", "qi", "zhun",
+       "ji|qi", "wan", "qian|qing|zheng", "xian", "shou", "wei", "qing|qi", "tao", "wan", "gang",
+       "wang", "beng", "zhui", "cai", "guo", "cui", "lun|guan", "liu", "qi", "zhan",
+       "bi", "chuo|chao", "ling", "mian", "qi", "ji", "tian|tan|chan", "zong", "gun", "zou",
+       "xi", "zi", "xing", "liang", "gei|ji", "fei", "rui", "min", "yu", "zong",
+       "fan", "lv|lu", "xu", "ying", "shang", "zi", "xu", "xiang", "jian", "ke",
+       "xian", "ruan", "mian", "ji|qi", "duan", "chong|zhong", "di", "min", "miao|mao", "yuan",
+       "xie|ye", "bao", "si", "qiu", "bian", "huan", "geng", "zong", "mian", "wei",
+       "fu", "wei", "tou|xu|shu", "gou", "miao", "xie", "lian", "zong", "bian|pian", "gun|yun",
+       "yin", "ti", "gua|wo", "zhi", "yun|wen", "cheng", "chan", "dai", "xie", "yuan",
+       "zong", "xu", "sheng", "wei", "geng", "seon", "ying", "jin", "yi", "zhui",
+       "ni", "bang", "gu", "pan", "zhou", "jian", "ci|cuo|suo", "quan", "shuang", "yun|wen",
+       "xia", "cui|sui|shuai", "xi", "rong", "tao", "fu", "yun", "zhen", "gao", "ru",
+       "hu", "zai|zeng", "teng", "xian|xuan", "su", "zhen", "zong", "tao", "huang", "cai",
+       "bi", "feng", "cu", "li", "suo|su", "yan|yin", "xi", "zong", "lei", "zhuan|juan",
+       "qian", "man", "zhi", "lv", "mu|mo", "piao", "lian", "mi", "xuan", "zong",
+       "ji", "shan", "sui", "fan|po", "lv", "beng", "yi", "sao", "mou|miu|miao|mu|liao", "yao|you|zhou",
+       "qiang", "sheng", "xian", "ji", "zong", "xiu", "ran", "xuan", "sui", "qiao",
+       "zeng", "zuo", "zhi", "shan", "san", "lin", "ju|jue", "fan", "liao", "chuo",
+       "zun", "jian", "rao", "chan", "rui", "xiu", "hui", "hua", "zuan", "xi",
+       "qiang", "wen", "da", "sheng", "hui", "xi|ji", "se", "jian", "jiang", "huan",
+       "qiao|sao", "cong", "xie", "jiao|zhuo", "bi", "dan|tan|chan", "yi", "nong", "sui", "yi",
+       "sha", "ru", "ji", "bin", "qian", "lan", "pu|fu", "xun", "zuan", "zi",
+       "peng", "yao|li", "mo", "lei", "xie", "zuan", "kuang", "you", "xu", "lei",
+       "xian", "chan", "jiao", "lu", "chan", "ying", "cai", "xiang|rang", "qian", "zui",
+       "zuan", "luo", "li|xi|sa", "dao", "lan", "lei", "lian", "si", "jiu", "yu",
+       "hong|gong", "zhou", "xian|qian", "he|ge", "yue|yao", "ji", "wan", "kuang", "ji", "ren",
+       "wei", "yun", "hong", "chun", "pi|bi", "sha", "gang", "na", "ren", "zong",
+       "lun|guan", "fen", "zhi", "wen", "fang", "zhu", "zhen", "niu", "shu", "xian",
+       "gan", "xie", "fu", "lian", "zu", "shen", "xi", "zhi", "zhong", "zhou",
+       "ban", "fu", "chu", "shao", "yi", "jing", "dai", "bang", "rong", "jie",
+       "ku", "rao", "die", "hang", "hui", "gei|ji", "xuan", "jiang", "luo|lao", "jue",
+       "jiao", "tong", "bing", "xiao", "juan", "xiu", "xi", "sui", "tao", "ji",
+       "ti", "ji", "xu", "ling", "ying", "xu", "qi", "fei", "chuo|chao", "shang",
+       "gun", "sheng", "wei", "mian", "shou", "beng", "chou", "tao", "liu", "quan",
+       "zong|zeng", "zhan", "wan", "lv|lu", "zhui", "zi", "ke", "xiang", "jian", "mian",
+       "lan", "ti", "miao", "ji|qi", "yun|wen", "hui", "si", "duo", "duan", "bian|pian",
+       "xian", "gou", "zhui", "huan", "di", "lv", "bian", "min", "yuan", "jin",
+       "fu", "ru", "zhen", "feng", "cui|sui|shuai", "gao", "chan", "li", "yi", "jian",
+       "bin", "piao", "man", "lei", "ying", "suo|su", "mou|miu|miao|mu|liao", "sao", "xie", "liao",
+       "shan", "zeng", "jiang", "qian", "qiao|sao", "huan", "jiao|zhuo", "zuan", "fou", "xie",
+       "gang", "fou", "que", "fou", "que", "bo", "ping", "xiang", "zhao", "gang",
+       "ying", "ying", "qing", "xia", "guan", "zun", "tan", "cheng", "qi", "weng",
+       "ying", "lei", "tan", "lu", "guan", "wang", "wang", "wang", "wang", "han",
+       "rb", "luo", "fu", "shen", "fa", "gu", "zhu", "ju", "mao", "gu",
+       "min", "gang", "ba|pi", "gua", "ti", "juan", "fu", "shen", "yan", "zhao",
+       "zui", "guai|gua", "zhuo", "yu", "zhi", "an", "fa", "lan", "shu", "si",
+       "pi", "ma", "liu", "ba|pi", "fa", "li", "chao", "wei", "bi", "ji",
+       "zeng", "chong", "liu", "ji", "juan", "mi", "zhao", "luo", "pi", "ji",
+       "ji", "luan", "yang|xiang", "mi", "qiang", "da", "mei", "yang|xiang", "ling", "you",
+       "fen", "ba", "gao", "yang", "gu", "qiang", "zang", "mei|gao", "ling", "yi|xi",
+       "zhu", "di", "xiu", "qiang", "yi", "xian", "rong", "qun", "qun", "qiang",
+       "huan", "suo", "xian", "yi", "you", "qiang|kong", "qian|xian|yan", "yu", "geng", "jie",
+       "tang", "yuan", "xi", "fan", "shan", "fen", "shan", "lian", "lei", "geng",
+       "nou", "qiang", "chan", "yu", "hong|gong", "yi", "chong", "weng", "fen", "hong",
+       "chi", "chi", "cui", "fu", "xia", "ben", "yi", "la", "yi", "pi|bi|po",
+       "ling", "liu", "zhi", "qu|yu", "xi", "xie", "xiang", "xi", "xi", "ke",
+       "qiao", "hui", "hui", "xiao", "sha", "hong", "jiang", "di|zhai", "cui", "fei",
+       "dao|zhou", "sha", "chi", "zhu", "jian", "xuan", "chi", "pian", "zong", "wan",
+       "hui", "hou", "he", "he", "han", "ao", "piao", "yi", "lian", "hou|qu",
+       "ao", "lin", "pen", "qiao", "ao", "fan", "yi", "hui", "xuan", "dao",
+       "yao", "lao", "lao", "kao", "mao", "zhe", "qi|shi", "gou", "gou", "gou",
+       "die", "die", "er", "shua", "ruan|nuo", "er|nai", "nai", "duan|zhuan", "lei", "ting",
+       "zi", "geng", "chao", "hao", "yun", "ba|pa", "pi", "si|chi", "si", "qu|chu",
+       "jia", "ju", "huo", "chu", "lao", "lun", "ji|jie", "tang", "ou", "lou",
+       "nou", "jiang", "pang", "zha|ze", "lou", "ji", "lao", "huo", "you", "mo",
+       "huai", "er", "yi", "ding", "ye", "da", "song", "qin", "yun|ying", "chi",
+       "dan", "dan", "hong", "geng", "zhi", "pan", "nie", "dan", "zhen", "che",
+       "ling", "zheng", "you", "wa|tui|zhuo", "liao", "long", "zhi", "ning", "tiao", "er|nv",
+       "ya", "tie|zhe", "guo", "xu", "lian", "hao", "sheng", "lie", "pin", "jing",
+       "ju", "bi", "di|zhi", "guo", "wen", "xu", "ping", "cong", "ding", "ni",
+       "ting", "ju", "cong", "kui", "lian", "kui", "cong", "lian", "weng", "kui",
+       "lian", "lian", "cong", "ao", "sheng", "song", "ting", "kui", "nie", "zhi",
+       "dan", "ning", "qie", "ni|jian", "ting", "ting", "long", "yu", "yu", "zhao",
+       "si", "su", "yi", "su", "si", "zhao", "zhao", "rou", "yi", "lei|le",
+       "ji", "qiu", "ken", "cao", "ge", "bo|di", "huan", "huang", "chi", "ren",
+       "xiao", "ru", "zhou", "yuan", "du", "gang", "rong|chen", "gan", "chai", "wo",
+       "chang", "gu", "zhi", "qin|han", "fu", "fei", "ban", "pei", "pang|pan", "jian",
+       "fang", "zhun|chun", "you", "na", "ang", "ken", "ran", "gong", "yu", "wen",
+       "yao", "qi", "pi|bi", "qian", "xi", "xi", "fei", "ken", "jing", "tai",
+       "shen", "zhong", "zhang", "xie", "shen", "wei", "zhou", "die", "dan", "fei|bi",
+       "ba", "bo", "qu", "tian", "bei", "gua", "tai", "zi|fei", "fei|ku", "zhi",
+       "ni", "ping|peng", "zi", "fu|zhou", "pang|pan", "zhen", "xian", "zuo", "pei", "jia",
+       "sheng", "zhi", "bao", "mu", "qu", "hu", "qia", "chi", "yin", "xu",
+       "yang", "long", "dong", "ka", "lu", "jing", "nu", "yan", "pang", "kua",
+       "yi", "guang", "hai", "ge", "dong", "chi", "jiao", "xiong", "xiong", "er",
+       "an", "heng", "pian", "neng|nai", "zi", "gui|kui", "zheng", "tiao", "zhi", "cui",
+       "mei", "xie", "cui", "xie", "mai", "mai", "ji", "xie", "nin", "kuai",
+       "sa", "zang", "qi", "nao", "mi", "nong", "luan", "wan", "bo", "wen",
+       "wan", "xiu", "jiao", "jing", "rou", "heng", "cuo", "lie", "shan", "ting",
+       "mei", "chun", "shen", "jia", "te", "juan", "cu", "xiu", "xin", "tuo",
+       "pao", "cheng", "nei", "fu", "dou", "tuo", "niao", "nao", "pi", "gu",
+       "luo", "li", "lian", "zhang", "cui", "jie", "liang", "shui", "pi", "biao",
+       "lun", "pian", "guo", "juan", "chui", "dan", "tian", "nei", "jing", "nai",
+       "la", "ye", "a", "ren", "shen", "zhui", "fu", "fu", "ju", "fei",
+       "qiang", "wan", "dong", "pi", "guo", "zong", "ding", "wo", "mei", "ruan",
+       "zhuan", "chi", "cou", "luo", "ou", "di", "an", "xing", "nao", "shu",
+       "shuan", "nan", "yun", "zhong", "rou", "e", "sai", "tu", "yao", "jian",
+       "wei", "jiao", "yu", "jia", "duan", "bi", "chang", "fu", "xian", "ni",
+       "mian", "wa", "teng", "tui", "bang", "qian", "lv", "wa", "shou", "tang",
+       "su", "zhui", "ge", "yi", "bo", "liao", "ji", "pi", "xie", "gao",
+       "lv", "bin", "ou", "chang", "lu|biao", "guo", "pang", "chuai", "biao", "jiang",
+       "fu", "tang", "mo", "xi", "zhuan|chuan|chun", "lv", "jiao", "ying", "lv", "zhi",
+       "xue", "cun", "lin", "tong", "peng", "ni", "chuai", "liao", "cui", "kui",
+       "xiao", "teng", "fan|pan", "zhi", "jiao", "shan", "hu|wu", "cui", "run", "xiang",
+       "sui", "fen", "ying", "shan|dan", "zhua", "dan", "kuai", "nong", "tun", "lian",
+       "bi|bei", "yong", "jue", "chu", "yi", "juan", "la|ge", "lian", "sao", "tun",
+       "gu", "qi", "cui", "bin", "xun", "nao", "wo|yue", "zang", "xian", "biao",
+       "xing", "kuan", "la", "yan", "lu", "huo", "za", "luo", "qu", "zang",
+       "luan", "ni|luan", "za", "chen", "qian|xian", "wo", "guang|jiong", "zang|cang", "lin", "guang|jiong",
+       "zi", "jiao", "nie", "chou|xiu", "ji", "gao", "chou", "mian|bian", "nie", "zhi",
+       "zhi", "ge", "jian", "die|zhi", "zhi|jin", "xiu", "tai", "zhen", "jiu", "xian",
+       "yu", "cha", "yao", "yu", "chong", "xi", "xi", "jiu", "yu", "yu",
+       "xing", "ju", "jiu", "xin", "she", "she", "she", "jiu", "shi", "tan",
+       "shu", "shi", "tian", "tan", "pu", "pu", "guan", "hua", "tian", "chuan",
+       "shun", "xia", "wu", "zhou", "dao", "chuan", "shan", "yi", "fan", "pa",
+       "tai", "fan", "ban", "chuan", "hang", "fang", "ban", "bi", "lu", "zhong",
+       "jian", "cang", "ling", "zhu", "ze", "duo", "bo", "xian", "ge", "chuan",
+       "xia", "lu", "qiong", "pang", "xi", "kua", "fu", "zao", "feng", "li",
+       "shao", "yu", "lang", "ting", "yu", "wei", "bo", "meng", "nian", "ju",
+       "huang", "shou", "ke", "bian", "mu", "die", "dao", "bang", "cha", "yi",
+       "sou", "cang", "cao", "lou", "dai", "xue", "yao", "chong", "deng", "dang",
+       "qiang", "lu", "yi", "ji", "jian", "huo", "meng", "qi", "lu", "lu",
+       "chan", "shuang", "gen", "liang", "jian", "jian", "se", "yan", "fu", "ping",
+       "yan", "yan", "cao", "ao", "yi", "le", "ding", "qiu", "ai", "nai",
+       "tiao", "qiu", "jie", "peng", "wan", "yi", "chai|cha", "mian", "mi", "gan",
+       "qian", "yu", "yu", "shao", "xiong", "du", "hu|xia", "qi", "mang", "zi",
+       "hui|hu", "sui", "zhi", "xiang", "bi|pi", "fu", "tun|chun", "wei", "wu", "zhi",
+       "qi", "shan", "wen", "qian", "ren", "fu", "kou", "jie|gai", "lu", "xu|zhu",
+       "ji", "qin", "qi", "yuan|yan", "fen", "ba", "rui", "xin", "ji", "hua",
+       "lun|hua", "fang", "wu|hu", "jue", "gou", "zhi", "yun", "qin", "ao", "chu",
+       "mao", "ya", "fei|fu", "reng", "hang", "cong", "chan|yin", "you", "bian", "yi",
+       "qie", "wei", "li", "pi", "e", "xian", "chang", "cang", "zhu", "su",
+       "di|ti", "yuan", "ran", "ling", "tai", "tiao|shao", "di", "miao", "qing", "ji",
+       "yong", "ke|he", "mu", "bei", "bao", "gou", "min", "yi", "yi", "ju|qu",
+       "pie", "ruo|re", "ku", "zhu|ning", "ni", "pa|bo", "bing", "shan", "xiu", "yao",
+       "xian", "ben", "hong", "ying", "zuo|zha", "dong", "cha", "die", "nie", "gan",
+       "hu", "ping|peng", "mei", "fu", "sheng|rui", "gu", "bi", "wei", "fu", "zhuo",
+       "mao", "fan", "jia", "mao", "mao", "ba", "ci", "mo", "zi", "zhi",
+       "chi", "ji", "jing", "long", "cong", "niao", "yuan", "xue", "ying", "qiong",
+       "ge", "ming", "li", "rong", "yin", "gen", "qian", "chai", "chen", "yu",
+       "hao", "zi", "lie", "wu", "ji", "gui", "ci", "jian", "ci", "hou",
+       "guang", "mang", "cha", "jiao", "jiao", "fu", "yu", "zhu", "zi", "jiang",
+       "hui", "yin", "cha", "fa", "rong", "ru", "chong", "mang", "tong", "zhong",
+       "qian", "zhu", "xun", "huan", "fu", "quan", "gai", "da", "jing", "xing",
+       "chuan", "cao", "jing", "er", "an", "qiao", "chi", "ren", "jian", "ti",
+       "huang", "ping", "li", "jin", "lao", "shu", "zhuang", "da", "jia", "rao",
+       "bi", "ce", "qiao", "hui", "ji", "dang", "zi", "rong", "hun", "xing",
+       "luo", "ying", "qian", "jin", "sun", "yin", "mai", "hong", "zhou", "yao",
+       "du", "wei", "li", "dou", "fu", "ren", "yin", "he", "bi", "bu",
+       "yun", "di", "tu", "sui", "sui", "cheng", "chen", "wu", "bie", "xi",
+       "geng", "li", "pu", "zhu", "mo", "li", "zhuang", "zuo", "tuo", "qiu",
+       "suo|sha", "suo", "chen", "peng|feng", "ju", "mei", "meng", "xing", "jing", "che",
+       "shen|xin", "jun", "yan", "ting", "you", "cuo", "guan|wan", "han", "you", "cuo",
+       "jia", "wang", "su|you", "niu", "shao|xiao", "xian", "lang|liang", "fu|piao", "e", "mo|mu",
+       "wen|wan|mian", "jie", "nan", "mu", "kan", "lai", "lian", "shi", "wo", "tu",
+       "xian|lian", "huo", "you", "ying", "ying", "neus", "chun", "mang", "mang", "ci",
+       "wan|yun", "jing", "di", "qu", "dong", "jian", "zou|chu", "gu", "la", "lu",
+       "ju", "wei", "jun", "nie|ren", "kun", "he", "pu", "zi|zai", "gao", "guo",
+       "fu", "lun", "chang", "chou", "song", "chui", "zhan", "men", "cai", "ba",
+       "li", "tu", "bo", "han", "bao", "qin", "juan", "xi", "qin", "di",
+       "jie|sha", "pu", "dang", "jin", "qiao|zhao", "tai|zhi|chi", "geng", "hua", "gu", "ling",
+       "fei", "qin|jin", "an", "wang", "beng", "zhou", "yan", "zu", "jian", "lin|ma",
+       "tan", "shu", "tian", "dao", "hu", "qi", "he", "cui", "tao", "chun",
+       "bi", "chang", "huan", "fei", "lai", "qi", "meng", "ping", "wei", "dan",
+       "sha", "huan", "yan", "yi", "tiao", "qi", "wan", "ce", "nai", "zhen",
+       "tuo", "jiu", "tie", "luo", "bi", "yi", "pan", "bo", "pao", "ding",
+       "ying", "ying", "ying", "xiao", "sa", "qiu", "ke", "xiang", "wan", "yu",
+       "yu", "fu", "lian", "xuan", "xuan", "nan", "ce", "wo", "chun", "shao",
+       "yu", "bian", "mao", "an", "e", "luo|la|lao", "ying", "kuo", "kuo", "jiang",
+       "mian", "zuo", "zuo", "zu", "bao", "rou", "xi", "ye", "an", "qu",
+       "jian", "fu", "lv", "jing", "pen", "feng", "hong", "hong", "hou", "xing",
+       "tu", "zhu|zhuo|zhe", "zi", "xiang", "ren", "ge", "qia", "qing", "mi", "huang",
+       "shen", "pu", "gai", "dong", "zhou", "qian", "wei", "bo", "wei", "pa",
+       "ji", "hu", "zang", "jia", "duan", "yao", "jun", "cong", "quan", "wei",
+       "zhen", "kui", "ting", "hun", "xi", "shi", "qi", "lan", "zong", "yao",
+       "yuan", "mei", "yun", "shu", "di", "zhuan", "guan", "ran", "xue", "chan",
+       "kai", "kui|kuai", "uu", "jiang", "lou", "wei", "pai", "yong", "sou", "yin",
+       "shi", "chun", "shi", "yun", "zhen", "lang", "ru|na", "meng", "li", "que",
+       "suan", "yuan|huan", "li", "ju", "xi", "bang", "chu", "xu|shu", "tu", "liu",
+       "huo", "dian", "qian", "ju", "po", "cuo", "yuan", "chu", "yu", "kuai",
+       "pan", "pu", "pu", "na", "shuo", "xi", "fen", "yun", "zheng", "jian",
+       "ji", "ruo", "cang", "en", "mi", "hao", "sun", "zhen", "ming", "sou",
+       "xu", "liu", "xi", "gu", "lang", "rong", "weng", "gai|ge|he", "cuo", "shi",
+       "tang", "luo", "ru", "suo", "xuan", "bei", "yao|zhuo", "gui", "bi", "zong",
+       "gun", "zuo", "tiao", "ce", "pei", "lan", "dan", "ji", "li", "shen",
+       "lang", "yu", "ling", "ying", "mo", "diao|tiao|di", "tiao", "mao", "tong", "zhu",
+       "peng", "an", "lian", "cong", "xi", "ping", "qiu|xu|fu", "jin", "chun", "jie",
+       "wei", "tui", "cao", "yu", "yi", "zi|ju", "liao|lu", "bi", "lu", "xu",
+       "bu", "zhang", "lei", "qiang", "man", "yan", "ling", "ji", "biao", "gun",
+       "han", "di", "su", "lu", "she", "shang", "di", "mie", "hun", "wan",
+       "bu", "di", "cuo", "zhe", "shen", "xuan", "wei", "hu", "ao", "mi",
+       "lou", "cu", "zhong", "cai", "po", "jiang", "mi", "cong", "niao", "hui",
+       "juan", "yin", "jian", "nian", "shu", "yin", "guo", "chen", "hu", "sha",
+       "kou", "qian", "ma", "zang", "ze", "qiang", "dou", "lian", "lin", "kou",
+       "ai", "bi", "li", "wei", "ji", "qian", "sheng", "fan", "meng", "ou",
+       "chan", "dian", "xun", "jiao", "rui", "rui", "lei", "yu", "qiao", "zhu",
+       "hua", "jian", "mai", "yun", "bao", "you", "qu", "lu", "rao", "hui",
+       "e", "ti", "fei", "jue", "zui", "fa", "ru", "fen", "kui", "shun",
+       "rui", "ya", "xu", "fu", "jue", "dang", "wu", "dong", "si", "xiao",
+       "xi", "sa", "yun", "shao", "qi", "jian", "yun", "sun", "ling", "yu",
+       "xia", "weng", "ji", "hong", "si", "nong", "lei", "xuan", "yun", "yu",
+       "xi|xiao", "hao", "bao|bo", "hao", "ai", "wei", "hui", "hui", "ji", "ci",
+       "xiang", "wan|luan", "mie", "yi", "leng", "jiang", "can", "shen", "qiang|se", "lian",
+       "ke", "yuan", "da", "ti", "tang", "xue", "bi", "zhan", "sun", "xian|lian",
+       "fan", "ding", "xie", "gu", "xie", "shu", "jian", "hao|kao", "hong", "sa",
+       "xin", "xun", "yao", "bai", "sou", "shu", "xun", "dui", "pin", "yuan|wei",
+       "ning", "chou|zhou", "mai|wo", "ru", "piao", "tai", "ji", "zao", "chen", "zhen",
+       "er", "ni", "ying", "gao", "cong", "xiao|hao", "qi", "fa", "jian", "xu",
+       "kui", "jie|ji", "bian", "diao|zhuo", "mi", "lan", "jin", "cang|zang", "miao", "qiong",
+       "qi", "xian", "liao", "ou", "xian", "su", "lv", "yi", "mai", "xie",
+       "li", "yi", "la", "lei", "jiao", "di", "zhi", "bei", "teng", "yao|yue",
+       "mo", "huan", "biao|pao", "fan", "sou", "tan", "tui", "qiong", "qiao", "wei",
+       "liu", "hui", "ou", "gao", "yun", "bao", "li", "shu", "zhu|chu", "ai",
+       "lin", "zao", "xuan", "qin", "lai", "huo", "tuo", "wu", "rui", "rui",
+       "qi", "heng", "lu", "su", "tui", "mang", "yun", "ping", "yu", "xun",
+       "ji", "jiong", "xuan", "mo", "qiu", "su", "jiong", "peng", "nie", "nie",
+       "rang", "yi", "xian", "yu", "ju", "lian", "lian", "yin", "qiang", "ying",
+       "long", "tou", "hua", "yue", "ling", "qu", "yao", "fan", "mi", "lan",
+       "gui", "lan", "ji", "dang", "man", "lei", "lei", "hui", "feng", "zhi",
+       "wei", "kui", "zhan", "huai", "li", "ji", "mi", "lei", "huai", "luo",
+       "ji", "kui", "lu", "jian", "sal", "teng", "lei", "quan", "xiao", "yi",
+       "luan", "men", "bie", "hu", "hu", "lu", "nve", "lv", "si", "xiao",
+       "qian", "chu", "hu", "xu", "cuo", "fu", "xu", "xu", "lu", "hu",
+       "yu", "hao", "jiao", "ju", "guo", "bao", "yan", "zhan", "zhan", "kui",
+       "bin", "xi", "shu", "chong", "qiu", "diao", "ji", "qiu", "ding", "shi",
+       "xia", "jue", "zhe", "she", "yu", "han", "zi", "hong", "hui", "meng",
+       "ge", "sui", "xia", "chai", "shi", "yi", "ma", "xiang", "fang|bang", "e",
+       "ba", "chi", "qian", "wen", "wen", "rui", "bang|beng", "pi", "yue", "yue",
+       "jun", "qi", "tong", "yin", "qi|zhi", "can", "yuan|wan", "jue|que", "hui", "qin|qian",
+       "qi", "zhong", "ya", "hao", "mu", "wang", "fen", "fen", "hang", "gong|zhong",
+       "zao", "fu", "ran", "jie", "fu", "chi", "dou", "bao", "xian", "ni",
+       "dai|de", "qiu", "you", "zha", "ping", "chi", "you", "he", "han", "ju",
+       "li", "fu", "ran", "zha", "gou|qu|xu", "pi", "pi|bo", "xian", "zhu", "diao",
+       "bie", "bing", "gu", "zhan", "qu", "she|yi", "tie", "ling", "gu", "dan",
+       "tun", "ying", "li", "cheng", "qu", "mou", "ge|luo", "ci", "hui", "hui",
+       "mang|bang", "fu", "yang", "wa", "lie", "zhu", "yi", "xian", "kuo", "jiao",
+       "li", "yi|xu", "ping", "jie", "ge|ha", "she", "yi", "wang", "mo", "qiong",
+       "qie|ni", "gui", "qiong", "zhi", "man", "lao", "zhe", "jia", "nao", "si",
+       "qi", "xing", "jie", "qiu", "xiao", "yong", "jia", "tui", "che", "bei",
+       "e|yi", "han", "shu", "xuan", "feng", "shen", "shen", "fu", "xian", "zhe",
+       "wu", "fu", "li", "lang", "bi", "chu", "yuan", "you", "jie", "dan",
+       "yan", "ting", "dian", "tui", "hui", "wo", "zhi", "zhong", "fei", "ju",
+       "mi", "qi", "qi", "yu", "jun", "la", "meng", "qiang", "si", "xi",
+       "lun", "li", "die", "tiao", "tao", "kun", "han", "han", "yu", "bang",
+       "fei", "pi", "wei", "dun", "yi", "yuan", "suo", "quan", "qian", "rui",
+       "ni", "qing", "wei", "liang", "guo", "wan", "dong", "e", "ban", "di",
+       "wang", "can", "yang", "ying", "guo", "chan", "ding", "la", "ke", "ji",
+       "xie", "ting", "mao", "xu", "mian", "yu", "jie", "shi", "xuan", "huang",
+       "yan", "bian", "rou", "wei", "fu", "yuan", "mei", "wei", "fu", "ru",
+       "xie", "you", "qiu", "mao", "xia", "ying", "shi", "chong", "tang", "zhu",
+       "zong", "di", "fu", "yuan", "kui", "meng", "la", "dai", "hu", "qiu",
+       "die", "li", "wo", "yun", "qu", "nan", "lou", "chun", "rong", "ying",
+       "jiang", "ban", "lang", "pang", "si", "xi", "ci", "xi", "yuan", "weng",
+       "lian", "sou", "ban", "rong", "rong", "ji", "wu", "xiu", "han", "qin",
+       "yi", "bi", "hua", "tang", "yi", "du", "nai|neng", "he|xia", "hu", "gui|hui",
+       "ma", "ming", "yi", "wen", "ying", "teng", "zhong", "cang", "sao", "qi",
+       "man", "dao", "shang", "shi|zhe", "cao", "chi", "di", "ao", "lu", "wei",
+       "die|zhi", "tang", "chen", "piao", "qu|ju", "pi", "yu", "chan|jian", "luo", "lou",
+       "qin", "zhong", "yin", "jiang", "shuai", "wen", "xiao", "wan", "zhe", "zhe",
+       "ma", "ma", "guo", "liu", "mao", "xi", "cong", "li", "man", "xiao",
+       "chang", "zhang", "mang|meng", "xiang", "mo", "zui", "si", "qiu", "te", "zhi",
+       "peng", "peng", "jiao", "qu", "bie", "liao", "pan", "gui", "xi", "ji",
+       "zhuan", "huang", "fei|ben", "lao|liao", "jue", "jue", "hui", "yin|xun", "chan", "jiao",
+       "shan", "nao", "xiao", "wu", "chong", "xun", "si", "chu", "cheng", "dang",
+       "li", "xie", "shan", "yi", "jing", "da", "chan", "qi", "ci", "xiang",
+       "she", "luo", "qin", "ying", "chai", "li", "zei", "xuan", "lian", "zhu",
+       "ze", "xie", "mang", "xie", "qi", "rong", "jian", "meng", "hao", "ru",
+       "huo", "zhuo", "jie", "pin", "he", "mie", "fan", "lei", "jie", "la",
+       "min", "li", "chun", "li", "qiu", "nie", "lu", "du", "xiao", "zhu",
+       "long", "li", "long", "feng", "ye", "pi", "nang", "gu", "juan", "ying",
+       "shu", "xi", "can", "qu", "quan", "du", "can", "man", "qu", "jie",
+       "zhu", "zhuo", "xie", "huang", "nv", "pei", "nv", "xin", "zhong", "mai",
+       "er", "ke", "mie", "xi", "xing|hang|heng", "yan", "kan", "yuan", "qu", "ling",
+       "xuan", "shu", "xian", "tong", "xiang", "jie", "xian", "ya", "hu", "wei",
+       "dao", "chong", "wei", "dao", "zhun", "heng", "qu", "yi", "yi", "bu",
+       "gan", "yu", "biao", "cha", "yi", "shan", "chen", "fu", "gun", "fen",
+       "shuai", "jie", "na", "zhong", "dan", "ri", "zhong", "zhong", "jie", "zhi",
+       "xie", "ran", "zhi", "ren", "qin", "jin", "jun", "yuan", "mei", "chai",
+       "ao", "niao", "hui", "ran", "jia", "tuo", "ling", "dai", "bao|pao", "pao",
+       "yao", "zuo", "bi", "shao", "tan", "ju|jie", "he|ke", "xue", "xiu", "zhen",
+       "yi", "pa", "fu", "di", "wa", "fu", "gun", "zhi", "zhi", "ran",
+       "pan", "yi", "mao", "tuo", "na|jue", "gou", "xuan", "zhe", "qu", "bei|pi",
+       "yu", "xi", "mi", "bo", "uu", "fu", "chi|nuo", "chi|qi|duo|nuo", "ku", "ren",
+       "peng", "jia|jie|qia", "jian|zun", "bo|mo", "jie", "er", "ge", "ru", "zhu", "gui|gua",
+       "yin", "cai", "lie", "ka", "hang", "zhuang", "dang", "xu", "kun", "ken",
+       "niao", "shu", "jia", "kun", "cheng", "li", "juan", "shen", "pou", "ge|jie",
+       "yi", "yu", "zhen", "liu", "qiu", "qun", "ji", "yi", "bu", "zhuang",
+       "shui", "sha", "qun", "li", "lian", "lian", "ku", "jian", "bao", "chan",
+       "bi|pi", "kun", "tao", "yuan", "ling", "chi", "chang", "chou|dao", "duo", "biao",
+       "liang", "chang|shBng", "pei", "pei", "fei", "yuan|gun", "luo", "guo", "yan|an", "du",
+       "xi|ti", "zhi", "ju", "yi", "qi", "guo", "gua", "ken", "qi", "ti",
+       "ti", "fu", "chong", "xie", "bian", "die", "kun", "duan", "xiu", "xiu",
+       "he", "yuan", "bao", "bao", "fu", "yu", "tuan", "yan", "hui", "bei",
+       "zhu", "lv", "pao", "dan", "yun", "ta", "gou", "da", "huai", "rong",
+       "yuan", "ru", "nai", "jiong", "suo", "ban", "tui", "chi", "sang", "niao",
+       "ying", "jie", "qian", "huai", "ku", "lian", "lan", "li", "zhe", "shi",
+       "lv", "yi", "die", "xie", "xian", "wei", "biao", "cao", "ji", "qiang",
+       "sen", "bao", "xiang", "bi", "fu", "jian", "zhuan", "jian", "cui", "ji",
+       "dan", "za", "fan", "bo", "xiang", "xin", "bie", "rao", "man", "lan",
+       "ao", "ze", "gui", "cao", "sui", "nong", "chan", "lian", "bi", "jin",
+       "dang", "shu", "tan", "bi", "lan", "fu", "ru", "zhi", "ta", "shu",
+       "wa", "shi", "bai", "xie", "bo", "chen", "lai", "long", "xi", "xian",
+       "lan", "zhe", "dai", "ju", "zan", "shi", "jian", "pan", "yi", "lan",
+       "ya", "xi", "ya", "yao", "feng", "tan|qin", "fu", "fiao", "fu", "ba|po",
+       "he", "ji", "ji", "jian|xian", "guan", "bian", "yan", "gui", "jue|jiao", "pian",
+       "mao", "mi", "mi", "pie|mie", "shi", "si", "chan", "zhen", "jue|jiao", "mi",
+       "tiao", "lian", "yao", "zhi", "jun", "xi", "shan", "wei", "xi", "tian",
+       "yu", "lan", "e", "du", "qin|qing", "pang", "ji", "ming", "ying", "gou",
+       "qu", "zhan", "jin", "guan", "deng", "jian|bian", "luo|luan", "qu", "jian", "wei",
+       "jue|jiao", "qu", "luo", "lan", "shen", "di", "guan", "jian|xian", "guan", "yan",
+       "gui", "mi", "shi", "chan", "lan", "jue|jiao", "ji", "xi", "di", "tian",
+       "yu", "gou", "jin", "qu", "jiao|jue", "qiu", "jin", "cu", "jue", "zhi",
+       "chao", "ji", "gu", "dan", "zi|zui", "di", "shang", "hua|xie", "quan", "ge",
+       "shi", "jie|xie", "gui", "gong", "chu", "jie|xie", "hun", "qiu", "xing", "su",
+       "ni", "ji|qi", "jue", "zhi", "zha", "bi", "xing", "hu", "shang", "gong",
+       "zhi", "xue|hu", "chu", "xi", "yi", "li|lu", "jue", "xi", "yan", "xi",
+       "yan", "yan", "ding", "fu", "qiu", "qiu", "jiao", "hong", "ji", "fan",
+       "xun", "diao", "hong", "chai", "tao", "xu", "jie", "dan", "ren", "xun",
+       "yin", "shan", "qi", "tuo", "ji", "xun", "yin", "e", "fen", "ya",
+       "yao", "song", "shen", "yin", "xin", "jue", "xiao", "ne", "chen", "you",
+       "zhi", "xiong", "fang", "xin", "chao", "she", "yan", "sa", "zhun", "xu",
+       "yi", "yi", "su", "chi", "he", "shen", "he", "xu", "zhen", "zhu",
+       "zheng", "gou", "zi", "zi", "zhan", "gu", "fu", "jian", "die", "ling",
+       "di", "yang", "li", "nao", "pan", "zhou", "gan", "yi", "ju", "yao",
+       "zha", "tuo", "yi", "qu", "zhao", "ping", "bi", "xiong", "qu", "ba",
+       "da", "zu", "tao", "zhu", "ci", "zhe", "yong", "xu", "xun", "yi",
+       "huang", "he", "shi", "cha", "xiao", "shi", "hen", "cha", "gou", "gui",
+       "quan", "hui", "jie", "hua", "gai", "xiang", "wei", "shen", "chou", "tong",
+       "mi", "zhan", "ming", "luo", "hui", "yan", "xiong", "gua", "er", "bing",
+       "tiao|diao", "yi|chi", "lei", "zhu", "kuang", "kua", "wu", "yu", "teng", "ji",
+       "zhi", "ren", "cu", "lang", "e", "kuang", "ei|xi", "shi", "ting", "dan",
+       "bei|bo", "chan", "you", "keng", "qiao", "qin", "shua", "an", "yu", "xiao",
+       "cheng", "jie", "xian", "wu", "wu", "gao", "song", "bu", "hui", "jing",
+       "shuo|shui|yue", "zhen", "shuo|shui|yue", "du", "hua", "chang", "shui|shei", "jie", "ke", "qu|jue",
+       "cong", "xiao", "sui", "wang", "xian", "fei", "chi|lai", "ta", "yi", "ni|na",
+       "yin", "diao|tiao", "pi|bei", "zhuo", "chan", "chen", "zhun", "ji", "qi", "tan",
+       "zhui", "wei", "ju", "qing", "dong", "zheng", "ze|zuo|zha|cuo", "zou", "qian", "zhuo",
+       "liang", "jian", "chu|ji", "xia|hao", "lun", "shen", "biao", "hua", "bian", "yu",
+       "die", "xu", "pian", "shi|di", "xuan", "shi", "hun", "hua|gua", "e", "zhong",
+       "di", "xie", "fu", "pu", "ting", "jian", "qi", "yu", "zi", "zhuan",
+       "xi|shai|ai", "hui", "yin", "an", "xian", "nan", "chen", "feng", "zhu", "yang",
+       "yan", "huang", "xuan", "ge", "nuo", "xu", "mou", "ye", "wei", "xing",
+       "teng", "zhou", "shan", "jian", "bo", "kui", "huang", "huo", "ge", "ying",
+       "mi", "xiao", "mi", "xi", "qiang", "chen", "xue", "ti", "su", "bang",
+       "chi", "qian", "shi", "jiang", "yuan", "xie", "he", "tao", "yao", "yao",
+       "lu", "yu", "biao", "cong", "qing", "li", "mo", "mo", "shang", "zhe",
+       "miu", "jian", "ze", "jie", "lian", "lou", "can", "ou", "gun", "xi",
+       "zhuo", "ao", "ao", "jin", "zhe", "yi", "hu", "jiang", "man", "chao",
+       "han", "hua", "chan", "xu", "zeng", "se", "xi", "zha", "dui", "zheng",
+       "nao", "lan", "e", "ying", "jue", "ji", "zun", "jiao", "bo", "hui",
+       "zhuan", "wu", "zen", "zha", "shi", "qiao", "tan", "jian", "pu", "sheng",
+       "xuan", "zao", "tan", "dang", "sui", "xian", "ji", "jiao", "jing", "zhan",
+       "nong", "yi", "ai", "zhan", "pi", "hui", "hua", "yi", "yi", "shan",
+       "rang", "rou", "qian", "dui", "ta", "hu", "zhou", "hao", "ai", "ying",
+       "jian", "yu", "jian", "hui", "du", "zhe", "juan|xuan", "zan", "lei", "shen",
+       "wei", "chan", "li", "yi|tui", "bian", "zhe", "yan", "e", "chou", "wei",
+       "chou", "yao", "chan", "rang", "yin", "lan", "chen", "xie", "nie", "huan",
+       "zan", "yi", "dang", "zhan", "yan", "du", "yan", "ji", "ding", "fu",
+       "ren", "ji", "jie", "hong", "tao", "rang", "shan", "qi", "tuo", "xun",
+       "yi", "xun", "ji", "ren", "jiang", "hui", "ou", "ju", "ya", "ne",
+       "xu|hu", "e", "lun", "xiong", "song", "feng", "she", "fang", "jue", "zheng",
+       "gu", "he", "ping", "zu", "shi|zhi", "xiong", "zha", "su", "zhen", "di",
+       "zhou", "ci", "qu", "zhao", "bi", "yi", "yi|dai", "kuang", "lei", "shi",
+       "gua", "shi", "jie|ji", "hui", "cheng", "zhu", "shen", "hua", "dan", "gou",
+       "quan", "gui", "xun", "yi", "zheng", "gai", "xiang|yang", "cha", "hun", "xu",
+       "zhou|chou", "jie", "wu", "yu", "qiao", "wu", "gao", "you", "hui", "kuang",
+       "shuo|shui|yue", "song", "ei|xi", "qing", "zhu", "zou", "nuo", "du|dou", "zhuo", "fei",
+       "ke", "wei", "yu", "shui", "shen", "diao", "chan", "liang", "zhun", "sui",
+       "tan", "shen", "yi", "mou", "chen", "die", "huang", "jian", "xie", "xue",
+       "ye", "wei", "e", "yu", "xuan", "chan", "zi", "an", "yan", "di",
+       "mi", "pian", "xu", "mo", "dang", "su", "xie", "yao", "bang", "shi",
+       "qian", "mi", "jin", "man", "zhe", "jian", "miu", "tan", "zen", "qiao",
+       "lan", "pu", "jue", "yan", "qian", "zhan", "chen", "gu", "qian", "hong",
+       "xia", "ji", "hong", "han", "hong", "xi", "xi", "huo", "liao", "han",
+       "du", "long", "dou", "jiang", "qi", "chi", "li", "deng", "wan", "bi",
+       "shu", "xian", "feng", "zhi", "zhi", "yan", "yan", "shi", "chu", "hui",
+       "tun", "yi", "tun", "yi", "jian", "ba", "hou", "e", "chu", "xiang",
+       "huan", "jian", "ken", "gai", "ju", "fu", "xi", "bin", "hao", "yu",
+       "zhu", "jia", "fen", "xi", "hu", "wen", "huan", "bin", "di", "zong",
+       "fen", "yi", "zhi", "bao", "chai", "an", "pi", "na", "pi", "gou",
+       "na", "you", "diao", "mo", "si", "xiu", "huan", "ken|kun", "he|mo", "he|hao|mo",
+       "mo", "an", "mao", "li", "ni", "bi", "yu", "jia", "tuan", "mao",
+       "pi", "xi", "yi", "ju|lou", "mo", "chu", "tan", "huan", "jue", "bei",
+       "zhen", "yuan|yun", "fu", "cai", "gong", "dai", "yi", "hang", "wan", "pin",
+       "huo", "fan", "tan", "guan", "ze|zhai", "zhi", "er", "zhu", "shi", "bi",
+       "zi", "er", "gui", "pian", "bian", "mai", "dai|te", "sheng", "kuang", "fei",
+       "tie", "yi", "chi", "mao", "he", "bi|ben", "lu", "lin", "hui", "gai",
+       "pian", "zi", "jia|gu", "xu", "zei", "jiao", "gai", "zang", "jian", "ying",
+       "jun", "zhen", "she", "bin", "bin", "qiu", "she", "chuan", "zang", "zhou",
+       "lai", "zan", "ci", "chen", "shang", "tian", "pei", "geng", "xian", "mai",
+       "jian", "sui", "fu", "dan", "cong", "cong", "zhi", "lai", "zhang", "du",
+       "jin", "xiong|min", "chun", "yun", "bao", "zai", "lai", "feng", "cang", "ji",
+       "sheng", "ai", "zhuan|zuan", "fu", "gou", "sai", "ze", "liao", "yi", "bai",
+       "chen", "wan", "zhi", "zhui", "biao", "yun", "zeng", "dan", "zan", "yan",
+       "pu", "shan", "wan", "ying", "jin", "gan", "xian", "zang", "bi", "du",
+       "shu", "yan", "shang", "xuan", "long", "gan", "zang", "bei", "zhen", "fu",
+       "yuan", "gong", "cai", "ze", "xian", "bai", "zhang", "huo", "zhi", "fan",
+       "tan", "pin", "bian", "gou", "zhu", "guan", "er", "jian", "bi", "shi",
+       "tie", "gui", "kuang", "dai", "mao", "fei", "he", "yi", "zei", "zhi",
+       "jia|gu", "hui", "zi", "lin", "lu", "zang", "zi", "gai", "jin", "qiu",
+       "zhen", "lai", "she", "fu", "du", "ji", "shu", "shang", "ci", "bi",
+       "zhou", "geng", "pei", "dan", "lai", "feng", "zhui", "fu", "zhuan", "sai",
+       "ze", "yan", "zan", "yun", "zeng", "shan", "ying", "gan", "chi", "xi",
+       "she", "nan", "tong", "xi", "cheng", "he", "cheng", "zhe", "xia", "tang",
+       "zou", "zou", "li", "jiu", "fu", "zhao", "gan", "qi", "shan", "qiong",
+       "yin", "xian", "zi", "jue", "qin", "chi", "ci", "chen", "chen", "die|tu",
+       "qie|ju", "chao", "di", "xi", "zhan", "jue", "yue", "qu|cu", "ji|jie", "qu",
+       "chu", "gua|huo", "xue", "zi", "tiao", "duo", "lie", "gan", "suo", "cu",
+       "xi", "zhao", "su", "yin", "ju", "jian", "que|qi|ji", "tang", "chuo", "cui",
+       "lu", "qu|cu", "dang", "qiu", "zi", "ti", "qu|cu", "chi", "huang", "qiao",
+       "qiao", "jiao", "zao", "ti|yue", "er", "zan", "zan", "zu", "pa", "bao|bo",
+       "kua|wu", "ke", "dun", "jue|gui", "fu", "chen", "jian", "fang|pang", "zhi", "ta",
+       "yue", "ba|pao", "qi", "yue", "qiang", "tuo", "tai", "yi", "jian|chen", "ling",
+       "mei", "ba", "die", "ku", "tuo", "jia", "ci", "pao", "qia", "zhu",
+       "ju", "dian|tie|die", "zhi", "fu", "pan|ban", "ju|qie", "shan", "bo", "ni", "ju",
+       "li|luo", "gen", "yi", "ji", "dai|duo|chi", "xian", "jiao", "duo", "zhu", "quan",
+       "kua", "zhuai", "gui", "qiong", "kui", "xiang", "die", "lu", "pian|beng", "zhi",
+       "jie", "tiao|tao", "cai", "jian", "da", "qiao", "bi", "xian", "duo", "ji",
+       "ju", "ji", "shu|chou", "tu", "chuo", "jing", "nie", "xiao", "bu", "xue",
+       "qun", "mu", "shu", "liang", "yong", "jiao", "chou", "qiao", "mou", "ta",
+       "jian", "ji", "wo", "wei", "chuo", "jie", "ji", "nie", "ju", "nie",
+       "lun", "lu", "leng", "huai", "ju", "chi", "wan", "quan", "ti", "bo",
+       "zu", "qie", "qi", "cu", "zong", "cai", "zong", "peng", "zhi", "zheng",
+       "dian", "zhi", "yu", "duo", "dun", "chuan", "yong", "zhong", "di", "zhe",
+       "chen", "chuai", "jian", "gua", "tang", "ju", "fu", "cu", "die", "pian",
+       "rou", "nuo", "ti", "cha", "tui", "jian", "dao", "cuo", "xi", "ta",
+       "qiang", "nian", "dian", "ti", "ji", "nie", "pan", "liu", "zan", "bi",
+       "chong", "lu", "liao", "cu", "tang", "dai", "su", "xi", "kui", "ji",
+       "zhi", "qiang", "di", "pan", "zong", "lian", "beng", "zao", "nian", "bie",
+       "tui", "ju", "deng", "ceng", "xian", "fan", "chu", "zhong", "dun", "bo",
+       "cu", "cu", "jue", "jue", "lin", "ta", "qiao", "qiao", "pu", "liao",
+       "dun", "cuan", "guan", "zao", "ta", "bi", "bi", "zhu", "ju", "chu",
+       "qiao", "dun", "chou", "ji", "wu", "yue", "nian", "lin", "lie", "zhi",
+       "li|luo", "zhi", "chan", "chu", "duan", "wei", "long", "lin", "xian", "wei",
+       "zuan", "lan", "xie", "rang", "sa|xie", "nie", "ta", "qu", "ji", "cuan",
+       "zuan", "xi", "kui", "jue", "lin", "shen", "gong", "dan", "fen", "qu",
+       "ti", "duo", "duo", "gong", "lang", "ren", "luo", "ai", "ji", "ju",
+       "tang", "kong", "lao", "yan", "mei", "kang", "qu", "lou", "lao", "duo",
+       "zhi", "yan", "ti", "dao", "ying", "yu", "che|ju", "ya|zha|ga", "gui", "jun",
+       "wei", "yue", "xin|xian", "dai", "xuan", "fan|gui", "ren", "shan", "kuang", "shu",
+       "tun", "chen", "dai", "e", "na", "qi", "mao", "ruan", "kuang", "qian",
+       "zhuan", "hong", "hu", "qu", "kuang", "di", "ling", "dai", "ao", "zhen",
+       "fan", "kuang", "yang", "peng", "bei", "gu", "gu", "pao", "zhu", "rong",
+       "e", "ba", "zhou", "zhi", "yao", "ke", "yi", "qing", "shi", "ping",
+       "er", "gong", "ju", "jiao", "guang", "lu", "kai", "quan", "zhou", "zai",
+       "zhi", "she", "liang", "yu", "shao", "you", "wan", "yin", "zhe", "wan",
+       "fu", "qing", "zhou", "ni", "ling", "zhe", "han", "liang", "zi", "hui",
+       "wang", "chuo", "guo", "kan", "yi", "peng", "qian", "gun", "nian", "ping",
+       "guan", "bei", "lun", "pai", "liang", "ruan", "rou", "ji", "yang", "xian",
+       "chuan", "cou", "chun", "ge", "you", "hong", "shu", "fu", "zi", "fu",
+       "wen", "fan", "zhan", "yu", "wen", "tao", "gu", "zhen", "xia", "yuan",
+       "lu", "jiao", "chao", "zhuan", "wei", "hun", "xue", "zhe", "jiao", "zhan",
+       "bu", "lao", "fen", "fan", "lin", "ge", "se", "kan", "huan", "yi",
+       "ji", "dui", "er", "yu", "jian", "hong", "lei", "pei", "li", "li",
+       "lu", "lin", "che", "ya", "gui", "xuan", "dai", "ren", "zhuan", "e",
+       "lun", "ruan", "hong", "gu", "ke", "lu", "zhou", "zhi", "yi", "hu",
+       "zhen", "li", "yao", "qing", "shi", "zai", "zhi", "jiao", "zhou", "quan",
+       "lu", "jiao", "zhe", "fu", "liang", "nian", "bei", "hui", "gun", "wang",
+       "liang", "chuo", "zi", "cou", "fu", "ji", "wen", "shu", "pei", "yuan",
+       "xia", "zhan|nian", "lu", "zhe", "lin", "xin", "gu", "ci", "ci", "bi|pi",
+       "zui", "bian", "la", "la", "ci", "xue", "ban", "bian", "bian", "bian",
+       "xue", "bian", "ban", "ci", "bian", "bian", "chen", "ru", "nong", "nong",
+       "zhen", "chuo", "chuo", "yi", "reng", "bian", "dao|bian", "shi", "yu", "liao",
+       "da", "chan", "gan", "qian", "yu", "yu", "qi", "xun", "yi", "guo",
+       "mai", "qi", "bi", "wang|kuang", "tu", "zhun", "ying", "da", "yun", "jin",
+       "hang", "ya", "fan", "wu", "da", "e", "huan|hai", "zhe|zhei", "da", "jin",
+       "yuan", "wei", "lian", "chi", "che", "chi", "tiao", "zhi|li", "yi", "jiong",
+       "jia", "chen", "dai", "er", "di", "po|pai", "zhu|wang", "die", "ze", "tao",
+       "shu", "yi", "keop", "jing", "hui", "dong", "you", "mi", "beng", "ji",
+       "nai", "yi", "jie", "zhui|dui", "lie", "xun", "tui", "song", "kuo", "tao",
+       "pang", "hou", "ni", "dun", "jiong", "xuan", "xun", "bu", "you", "xiao",
+       "qiu", "tou", "zhu", "qiu", "di", "di", "tu", "jing", "ti", "dou",
+       "yi", "zhe", "tong", "guang", "wu", "shi", "cheng", "su", "zao", "qun",
+       "feng", "lian", "suo", "hui", "li", "gu", "lai", "ben", "cuo", "zhu",
+       "beng", "huan", "dai", "lu", "you", "zhou", "jin", "yu", "chuo", "kui",
+       "wei", "ti", "yi", "da", "yuan", "luo", "bi", "nuo", "yu", "dang",
+       "sui", "dun", "sui", "yan", "chuan", "chi", "di", "yu", "shi", "zhen",
+       "you", "yun", "e", "bian", "guo", "e", "xia", "huang", "qiu", "dao",
+       "da", "wei", "nan", "yi", "gou", "yao", "chou", "liu", "xun", "ta",
+       "di", "chi", "yuan", "su", "ta", "qian", "ma", "yao", "guan", "zhang",
+       "ao", "shi", "ca", "chi", "su", "zao", "zhe", "dun", "di", "lou",
+       "chi", "cuo", "lin", "zun", "rao", "qian", "xuan", "yu", "wei", "e",
+       "liao", "ju", "shi", "bi", "yao", "mai", "xie", "sui", "huan|hai", "zhan",
+       "teng", "er", "miao", "bian", "bian", "la", "li|chi", "yuan", "yao", "luo",
+       "li", "yi", "ting", "deng", "qi", "yong", "shan", "han", "yu", "mang",
+       "ru", "qiong", "xi", "kuang", "fu", "kang|hang", "bin", "fang", "xing", "na|nei",
+       "xin", "shen", "bang", "yuan", "cun", "huo", "xie|ya|ye|yu|xu", "bang", "wu", "ju",
+       "you", "han", "tai", "qiu", "bi", "pi", "bing", "shao", "bei", "wa",
+       "di", "zou", "ye", "lin", "kuang", "gui", "zhu", "shi", "ku", "yu",
+       "gai|hai", "he", "qie|xi", "zhi", "ji", "xun|huan", "hou", "xing", "jiao", "xi",
+       "gui", "na", "lang", "jia", "kuai", "zheng", "lang", "yun", "yan", "cheng",
+       "dou", "chi", "lv", "fu", "wu", "fu", "gao", "hao", "lang", "jia",
+       "geng", "jun", "ying", "bo", "xi", "bei", "li|zhi", "yun", "bu", "xiao|ao",
+       "qi", "pi", "qing", "guo", "zhou", "tan", "zou", "ping", "lai", "ni",
+       "chen", "you", "bu", "xiang", "dan", "ju", "yong", "qiao", "yi", "du|dou",
+       "yan", "mei", "ruo", "bei", "e", "shu", "juan", "yu", "yun", "hou",
+       "kui", "xiang", "xiang", "sou", "tang", "ming", "xi", "ru", "chu", "zi",
+       "zou", "yi", "wu", "xiang", "yun", "hao", "yong", "bi", "mao", "chao",
+       "fu", "liao", "yin", "zhuan", "hu", "qiao", "yan", "zhang", "man", "qiao",
+       "xu", "deng", "bi", "xun", "bi", "zeng", "wei", "zheng", "mao", "shan",
+       "lin", "po", "dan", "meng", "ye", "cao", "kuai", "feng", "meng", "zou",
+       "kuang", "lian", "zan", "chan", "you", "qi", "yan", "chan", "cuo", "ling",
+       "huan", "xi", "feng", "cuo", "li", "you", "ding", "qiu", "zhuo", "pei",
+       "zhou", "yi", "gan", "yu", "jiu", "yan", "zui", "mao", "dan", "xu",
+       "dou", "zhen", "fen", "yuan", "fu", "yun", "tai", "tian", "qia", "tuo",
+       "cu", "han", "gu", "su", "fa", "chou", "zai", "ming", "lao", "chuo",
+       "chou", "you", "tong", "zhi", "xian", "jiang", "cheng", "yin", "tu", "jiao",
+       "mei", "ku", "suan", "lei", "pu", "zui", "hai", "yan", "shai", "niang",
+       "wei", "lu", "lan", "yan", "tao", "pei", "zhan", "chun", "tan|dan", "zui",
+       "zhui", "cu", "kun", "ti", "xian", "du", "hu", "xu", "xing", "tan",
+       "qiu|chou", "chun", "yun", "fa", "ke", "sou", "mi", "quan", "chou", "cuo",
+       "yun", "yong", "ang", "zha", "hai", "tang", "jiang", "piao", "chan|chen", "yu",
+       "li", "zao", "lao", "yi", "jiang", "bu", "jiao", "xi", "tan", "po|fa",
+       "nong", "yi|shi", "li", "ju", "yan|lian|xian", "yi", "niang", "ru", "xun", "chou",
+       "yan", "ling", "mi", "mi", "niang", "xin", "jiao", "shi", "mi", "yan",
+       "bian", "cai", "shi", "you", "shi", "shi", "li", "zhong|chong", "ye", "liang",
+       "li", "jin", "jin", "ga", "yi", "liao", "dao", "zhao", "ding", "po",
+       "qiu", "he", "fu", "zhen", "zhi", "ba", "luan", "fu", "nai", "diao",
+       "shan", "qiao|jiao", "kou", "chuan", "zi", "fan", "hua|yu", "hua|wu", "han", "gang",
+       "qi", "mang", "ri|ren|jian", "di|dai", "si", "xi", "yi", "chai", "shi|yi", "tu",
+       "xi", "nv", "qian", "qiu", "ri|ren|jian", "pi|zhao", "ye|ya", "jin", "ba", "fang",
+       "chen", "xing", "dou", "yue", "qian", "fu", "bu", "na", "xin", "e",
+       "jue", "dun", "gou", "yin", "qian", "ban", "sa", "ren", "chao", "niu",
+       "fen", "yun", "yi", "qin", "pi", "guo", "hong", "yin", "jun", "diao",
+       "yi", "zhong", "xi", "gai", "ri", "huo", "tai", "kang", "yuan", "lu",
+       "e", "qin", "duo", "zi", "ni", "tu", "shi", "min", "gu", "ke",
+       "ling", "bing", "si", "gu", "bo", "pi", "yu", "si", "zuo", "bu",
+       "you", "dian", "jia", "zhen", "shi", "shi", "tie", "ju", "zuan", "shi",
+       "ta", "xuan", "zhao", "bao", "he", "bi", "sheng", "chu", "shi", "bo",
+       "zhu", "chi", "za", "po", "tong", "qian", "fu", "zhai", "mao", "qian",
+       "fu", "li", "yue", "pi", "yang", "ban", "bo", "jie", "gou", "shu",
+       "zheng", "mu", "xi", "xi", "di", "jia", "mu", "tan", "shen", "yi",
+       "si", "kuang", "ka", "bei", "jian", "tong", "xing", "hong", "jiao", "chi",
+       "er", "ge", "bing", "shi", "mao", "ha", "yin", "jun", "zhou", "chong",
+       "xiang|jiong", "tong", "mo", "lei", "ji", "yu|si", "xu|hui", "ren", "zun", "zhi",
+       "qiong", "shan|shuo", "chi|li", "xian|xi", "xing", "quan", "pi", "tie", "zhu", "hou|xiang",
+       "ming", "kua", "diao|tiao|yao", "xian|kuo|tian|gua", "xian", "xiu", "jun", "cha", "lao", "ji",
+       "pi", "ru", "mi", "yi", "yin", "guang", "an", "diu", "you", "se",
+       "kao", "qian", "luan", "si", "ng", "diao", "han", "rui", "shi|zhi", "keng",
+       "qiu", "xiao", "zhe|nie", "xiu", "zang", "ti", "cuo", "xian|kuo|tian|gua", "hong|gong", "zhong|yong",
+       "tou|tu|dou", "lv", "mei|meng", "lang", "wan|jian", "xin", "yun|jun", "bei", "wu", "su",
+       "yu", "chan", "ting|ding", "bo", "han", "jia", "hong", "juan|jian|cuan", "feng", "chan",
+       "wan", "zhi", "si", "xuan|juan", "hua|wu", "wu", "tiao", "kuang", "zhuo|chuo", "lve",
+       "xing|jing", "qin", "shen", "han", "lve", "ye", "chu", "zeng", "ju", "xian",
+       "e", "mang", "pu", "li", "pan", "rui", "cheng", "gao", "li", "te",
+       "bing", "zhu", "zhen", "tu", "liu", "zui|nie", "ju", "chang", "yuan|wan", "jian",
+       "gang", "diao", "tao", "shang", "lun", "ke", "ling", "pi", "lu", "li",
+       "qing", "pei", "juan", "min", "zui", "peng", "an", "pi", "xian", "ya",
+       "zhui", "lei", "a", "kong", "ta", "kun", "du", "nei", "chui", "zi",
+       "zheng", "ben", "nie", "cong", "chun", "tan", "ding", "qi", "qian", "zhui",
+       "ji", "yu", "jin", "guan", "mao", "chang", "tian", "xi", "lian", "diao",
+       "gu", "cuo", "shu", "zhen", "lu", "meng", "lu", "hua", "biao", "ga",
+       "lai", "ken", "fang", "bu", "nai", "wan", "zan", "hu", "de", "xian",
+       "uu", "huo", "liang", "fa", "men", "kai", "yang", "chi", "lian", "guo",
+       "xian", "du", "tu", "wei", "zong", "fu", "rou", "ji", "e", "jun",
+       "chen", "ti", "zha", "hu", "yang", "duan", "xia", "yu", "keng", "sheng",
+       "huang", "wei", "fu", "zhao", "cha", "qie", "shi", "hong", "kui", "nuo",
+       "mou", "qiao", "qiao", "hou", "tou", "cong", "huan", "ye", "min", "jian",
+       "duan", "jian", "si", "kui", "hu", "xuan", "zhe", "jie", "zhen", "bian",
+       "zhong", "zi", "xiu", "ye", "mei", "pai", "ai", "jie", "qian", "mei",
+       "cuo|cha", "da|ta", "bang", "xia", "lian", "suo|se", "kai", "liu", "yao|zu", "ye|ta|ge",
+       "nou", "weng", "rong", "tang", "suo", "qiang|cheng", "ge|li", "shuo", "chui", "bo",
+       "pan", "da", "bi|pi", "sang", "gang", "zi", "wu", "ying", "huang", "tiao",
+       "liu", "kai", "sun", "sha", "sou", "wan|jian", "gao|hao", "zhen", "zhen", "lang",
+       "yi", "yuan", "tang", "nie", "xi", "jia", "ge", "ma", "juan", "song",
+       "zu", "suo", "xia", "feng", "wen", "na", "lu", "suo", "ou", "zu|chuo",
+       "tuan", "xiu", "guan", "xuan", "lian", "shou|sou", "ao", "man", "mo", "luo",
+       "bi", "wei", "liu", "di", "san|qiao|can", "cong", "yi", "lu|ao", "ao", "keng",
+       "qiang", "cui", "qi", "shang", "tang", "man", "yong", "chan", "feng", "jing",
+       "biao", "shu", "lou", "xiu", "cong", "long", "zan", "jian|zan", "cao", "li",
+       "xia", "xi", "kang", "shuang", "beng", "zhang", "qian", "zheng", "lu", "hua",
+       "ji", "pu", "hui|sui|rui", "qiang", "po", "lin", "se", "xiu", "san|xian|sa", "cheng",
+       "gui", "si", "liu", "nao", "huang", "pie", "sui", "fan", "qiao", "quan",
+       "xi", "tang", "xiang", "jue", "jiao", "zun", "liao", "qi", "lao", "dui",
+       "xin", "zan", "ji", "jian", "zhong", "deng", "ya", "ying", "dui", "jue",
+       "nou", "zan", "pu", "tie", "uu", "cheng", "ding", "shan", "kai", "jian",
+       "fei", "sui", "lu", "juan", "hui", "yu", "lian", "zhuo", "qiao", "jian",
+       "zhuo", "lei", "bi", "tie", "huan", "ye", "duo", "guo", "dang", "ju",
+       "fen", "da", "bei", "yi", "ai", "zong", "xun", "diao", "zhu", "heng",
+       "zhui", "ji", "nie", "he", "huo", "qing", "bin", "ying", "gui", "ning",
+       "xu", "jian", "jian", "qian", "cha", "zhi", "mie", "li", "lei", "ji",
+       "zuan", "kuang", "shang", "peng", "la", "du", "shuo", "chuo", "lv", "biao",
+       "pao", "lu", "xian", "kuan", "long", "e", "lu", "xin", "jian", "lan",
+       "bo", "jian", "yao", "chan", "xiang", "jian", "xi", "guan", "cang", "nie",
+       "lei", "cuan", "qu", "pan", "luo", "zuan", "luan", "zao", "nie", "jue",
+       "tang", "zhu", "lan", "jin", "ga", "yi", "zhen", "ding", "zhao", "po",
+       "liao", "tu", "qian", "chuan", "shan", "sa|xi", "fan", "diao", "men", "nv",
+       "yang", "chai", "xing", "gai", "bu", "tai", "ju", "dun", "chao", "zhong",
+       "na", "bei", "gang", "ban", "qian", "yue|yao", "qin", "jun", "wu", "gou",
+       "kang", "fang", "huo", "dou", "niu", "ba|pa", "yu", "qian", "zheng", "qian",
+       "gu", "bo", "ke", "po", "bu", "bo", "yue", "zuan", "mu", "tan",
+       "jia", "dian|tian", "you", "tie", "bo", "ling", "shuo", "qian|yan", "mao", "bao",
+       "shi", "xuan", "ta|tuo", "bi", "ni", "pi", "duo", "xing", "kao", "lao",
+       "er", "mang", "ya", "you", "cheng", "jia", "ye", "nao", "zhi", "dang|cheng",
+       "tong", "lv", "diao", "yin", "kai", "zha", "zhu", "xian|xi", "ting|ding", "diu",
+       "xian|kuo|tian|gua", "hua", "quan", "sha", "ha|ke", "diao|tiao|yao", "ge", "ming", "zheng", "se",
+       "jiao", "yi", "chan", "chong", "tang", "an", "yin", "ru", "zhu", "lao",
+       "pu", "wu", "lai", "te", "lian", "keng", "xiao", "suo", "li", "zeng",
+       "chu", "guo", "gao", "e", "xiu", "cuo", "lve", "feng", "xin", "liu",
+       "kai", "jian", "rui", "ti", "lang", "qin", "ju", "a", "qiang", "zhe",
+       "nuo", "cuo", "mao", "ben", "qi", "de", "ke", "kun", "chang", "xi",
+       "gu", "luo", "chui", "zhui", "jin", "zhi", "xian", "juan", "huo", "pei",
+       "tan", "ding", "jian", "ju", "meng", "zi", "qie", "ying", "kai", "qiang",
+       "si", "e", "cha", "qiao", "zhong", "duan", "sou", "huang", "huan", "ai",
+       "du", "mei", "lou", "zi", "fei", "mei", "mo", "zhen", "bo", "ge",
+       "nie", "tang", "juan", "nie", "na", "liu", "gao", "bang", "yi", "jia",
+       "bin", "rong", "biao", "tang", "man", "luo", "beng", "yong", "jing", "di",
+       "zu", "xuan", "liu", "xin", "jue", "liao", "pu", "lu", "dui", "lan",
+       "pu", "cuan", "qiang", "deng", "huo", "lei", "huan", "zhuo", "lian", "yi",
+       "cha", "biao", "la", "chan", "xiang", "chang", "chang", "jiu", "ao", "die",
+       "jie", "liao", "mi", "chang|zhang", "men", "ma", "shuan", "shan", "huo|shan", "men",
+       "yan", "bi", "han|bi", "bi", "ci ka Bi lu", "kai", "kang", "beng", "hong", "run",
+       "san", "xian", "xian|jian", "jian", "min", "xia", "lao", "dou", "zha", "nao",
+       "zhan", "peng", "xia|ke", "ling", "bian|guan", "bi", "run", "he", "guan", "ge",
+       "he", "fa", "chu", "hong|xiang", "gui", "min", "se", "kun", "lang", "lv",
+       "ting", "sha", "ju", "yue", "yue", "chan", "qu", "lin", "chang", "sha",
+       "kun", "yan", "wen", "yan", "e|yan", "hun", "yu", "wen", "hong", "bao",
+       "hong|juan|xiang", "qu", "yao", "wen", "ban|pan", "an", "wei", "yin", "kuo", "que",
+       "lan", "du", "quan", "pBi ying|po he deng", "tian", "nie", "ta", "kai", "he", "que",
+       "chuang", "guan", "dou", "qi", "kui", "tang|chang", "guan", "piao", "kan|han", "xi|se|ta",
+       "hui", "chan", "bi", "dang", "huan", "ta", "wen", "ta", "men", "shuan",
+       "shan", "yan", "han|bi", "bi", "wen", "chuang", "run", "wei", "xian", "hong",
+       "jian", "min", "kang", "men", "zha", "nao", "gui", "wen", "ta", "min",
+       "lv", "kai", "fa", "ge", "he", "kun", "jiu", "yue", "lang", "du",
+       "yu", "yan", "chang", "xi", "wen", "hun", "yan", "e", "chan", "lan",
+       "qu", "hui", "kuo", "que", "he", "tian", "ta", "que", "kan|han", "huan",
+       "fu", "fu", "le", "dui", "xin", "qian", "wu", "yi", "tuo", "yin",
+       "yang", "dou", "e", "sheng", "ban", "pei", "keng", "yun", "ruan", "zhi",
+       "pi", "jing", "fang", "yang", "yin", "zhen", "jie", "cheng", "e", "qu",
+       "di", "zu", "zuo", "dian", "lin", "a", "tuo", "tuo", "bei", "bing",
+       "fu", "ji", "lu", "long", "chen", "xing", "duo", "lou", "mo", "jiang",
+       "shu", "duo", "xian", "er", "gui", "yu", "gai", "shan", "jun", "qiao",
+       "xing", "chun", "wu", "bi", "xia", "shan", "sheng", "zhi", "pu", "dou",
+       "yuan", "zhen", "chu", "xian", "dao", "nie", "yun", "xian", "pei", "fei",
+       "zou", "qi", "dui", "lun", "yin", "ju", "chui", "chen", "pi", "ling",
+       "tao", "xian", "lu", "sheng", "xian", "yin", "zhu", "yang", "reng", "xia",
+       "chong", "yan", "yin", "yu|yao|shu", "di", "yu", "long", "wei", "wei", "nie",
+       "dui|zhui", "sui|duo", "an", "huang", "jie", "sui", "yin", "qi|gai|ai", "yan", "hui|duo",
+       "ge", "yun", "wu", "wei|kui", "ai", "xi", "tang", "ji", "zhang", "dao",
+       "ao", "xi", "yin", "sa", "rao", "lin", "tui", "deng", "pi", "sui",
+       "sui", "ao|yu", "xian", "fen", "ni", "er", "ji", "dao", "xi", "yin",
+       "zhi", "hui|duo", "long", "xi", "li|dai", "li|dai", "li|dai", "zhui|cui|wei", "hu|he", "zhi",
+       "sun", "jun|juan", "nan|nuo", "yi", "que|qiao", "yan", "qin", "jian", "xiong", "ya",
+       "ji", "gu", "huan", "zhi", "gou", "jun|juan", "ci", "yong", "ju", "chu",
+       "hu", "za", "luo", "yu", "chou", "diao", "sui", "han", "huo", "shuang",
+       "guan|huan", "chu", "za", "yong", "ji", "gui|xi", "chou", "liu", "li", "nan|nuo",
+       "yu", "za", "chou", "ji", "yu", "yu", "xue", "na", "fou", "se|xi",
+       "mu", "wen", "fen", "pang", "yun", "li", "chi", "yang", "ling", "lei",
+       "an", "bao", "wu|meng", "dian", "dang", "hu", "wu", "diao", "xu", "ji",
+       "mu", "chen", "xiao", "zha", "ting", "zhen", "pei", "mei", "ling", "qi",
+       "zhou", "huo", "sha", "fei", "hong", "zhan", "yin", "ni", "shu", "tun",
+       "lin", "ling", "dong", "ying", "wu", "ling", "shuang", "ling", "xia", "hong",
+       "yin", "mai", "mai", "yun", "liu", "meng", "bin", "wu", "wei", "kuo",
+       "yin", "xi", "yi", "ai", "dan", "teng", "xian", "yu", "lu", "long",
+       "dai", "ji", "pang", "yang", "ba", "pi", "wei", "uu", "xi", "ji",
+       "mai", "meng", "meng", "lei", "li", "huo", "ai", "fei", "dai", "long",
+       "ling", "ai", "feng", "li", "bao", "he", "he", "he", "bing", "qing",
+       "qing", "liang", "tian", "zheng", "jing", "cheng", "qing", "jing", "liang", "dian",
+       "jing", "tian", "fei", "fei", "kao", "mi", "mian", "mian", "pao", "ye",
+       "mian", "hui", "ye", "ge", "ding", "cha", "jian", "ren", "di", "du",
+       "wu", "ren", "qin", "jin", "xue", "niu", "ba", "yin", "sa", "na",
+       "mo", "zu", "da", "ban", "xie", "yao", "tao", "bei", "jie", "hong",
+       "pao", "yang", "bing", "yin", "ge|ta|sa", "tao", "jie|ji", "xie", "an", "an",
+       "hen", "gong", "qia", "da", "qiao", "ting", "man|men", "bian|ying", "sui", "tiao",
+       "qiao|shao", "xuan|juan", "kong", "beng", "ta", "shang|zhang", "bing|pi|bi|bei", "kuo", "ju", "la",
+       "xie|die", "rou", "bang", "eng", "qiu", "qiu", "he", "qiao", "mu|mou", "ju",
+       "jian", "bian", "di", "jian", "wen|yun", "tao", "gou", "ta", "bei", "xie",
+       "pan", "ge", "bi|bing", "kuo", "tang", "lou", "gui", "qiao", "xue", "ji",
+       "jian", "jiang", "chan", "da", "huo", "xian", "qian", "du", "wa", "jian",
+       "lan", "wei", "ren", "fu", "mei|wa", "quan", "ge", "wei", "qiao", "han",
+       "chang", "kuo", "rou", "yun", "she|xie", "wei", "ge", "bai", "tao", "gou",
+       "yun", "gao", "bi", "wei", "sui", "du", "wa", "du", "wei", "ren",
+       "fu", "han", "wei", "yun|wen", "tao", "jiu", "jiu", "xian", "xie", "xian",
+       "ji", "yin", "za", "yun", "shao", "le", "peng", "huang", "ying", "yun",
+       "peng", "an", "yin", "xiang", "hu", "ye", "ding", "qing", "qiu", "xiang",
+       "shun", "han", "xu", "yi", "xu", "e", "song", "kui", "qi", "hang",
+       "yu", "wan", "ban", "dun", "di", "dan", "pan", "po", "ling", "che",
+       "jing", "lei", "he", "qiao", "e", "e", "wei", "jie", "kuo", "shen",
+       "yi", "yi", "ke", "dui", "yu", "ping", "lei", "fu", "jia", "tou",
+       "hui", "kui", "jia", "luo", "ting", "cheng", "ying", "jun", "hu", "han",
+       "geng", "tui", "tui", "bin", "lai", "tui", "zi", "zi", "chui", "ding",
+       "lai", "tan", "han", "qian", "ke", "cui", "jiong", "qin", "yi", "sai",
+       "ti", "e", "e", "yan", "wen", "kan", "yong", "zhuan", "yan", "xian",
+       "xin", "yi", "yuan", "sang", "dian", "dian", "jiang", "kui", "lei", "lao",
+       "piao", "wai", "man", "cu", "yao", "hao", "qiao", "gu", "xun", "yan",
+       "hui", "chan", "ru", "meng", "bin", "xian", "pin", "lu", "lan", "nie",
+       "quan", "ye", "ding", "qing", "han", "xiang", "shun", "xu", "xu", "wan",
+       "gu", "dun", "qi", "ban", "song", "hang", "yu", "lu", "ling", "po",
+       "jing|geng", "jie|xie|jia", "jia", "ting", "he|ge", "ying", "jiong", "ke", "yi", "pin|bin",
+       "hui", "tui", "han", "ying", "ying", "ke", "ti", "yong", "e", "zhuan",
+       "yan", "e", "nie", "man", "dian", "sang", "hao", "lei", "chan|zhan", "ru",
+       "pin", "quan", "feng", "biao|diu", "gua", "fu", "xia", "zhan", "biao", "sa",
+       "ba|fu", "tai", "lie", "gua", "xuan", "xiao", "ju", "biao", "si", "wei",
+       "yang", "yao", "sou", "kai", "sao|sou", "fan", "liu", "xi", "liu|liao", "piao",
+       "piao", "liu", "biao", "biao", "biao", "liao", "biao", "se", "feng", "xiu",
+       "feng", "yang", "zhan", "biao", "sa", "ju", "si", "sou", "yao", "liu",
+       "piao", "biao", "biao", "fei", "fan", "fei", "fei", "shi|si|yi", "shi", "can",
+       "ji", "ding", "si", "tuo", "zhan", "sun", "xiang", "tun", "ren", "yu",
+       "yang|juan", "chi", "yin", "fan", "fan", "sun", "yin", "zhu|tou", "si", "zuo|ze|zha",
+       "bi", "jie", "tao", "bao", "ci", "tie", "si", "bao", "shi", "duo",
+       "hai", "ren", "tian", "jiao", "he", "bing", "yao", "tong", "ci", "xiang",
+       "yang", "juan", "er", "yan", "le", "xi", "can", "bo", "nei", "e",
+       "bu", "jun", "dou", "su", "yu", "shi", "yao", "hun", "guo", "shi",
+       "jian", "chuo", "bing", "xian", "bu", "ye", "dan", "fei", "zhang", "wei",
+       "guan", "e", "nuan", "yun", "hu", "huang", "tie", "hui", "jian", "hou",
+       "ai", "xing", "fen", "wei", "gu", "cha", "song", "tang", "bo", "gao",
+       "xi", "kui", "liu", "sou", "tao", "ye", "wen", "mo", "tang", "man",
+       "bi", "yu", "xiu", "jin", "san", "kui", "zhuan", "shan", "xi", "dan",
+       "yi", "ji", "rao", "cheng", "yong", "tao", "wei", "xiang", "zhan", "fen",
+       "hai", "meng", "yan", "mo", "chan", "xiang", "luo", "zan", "nang", "shi",
+       "ding", "ji", "tuo", "xing", "tun", "xi", "ren", "yu", "chi", "fan",
+       "yin", "jian", "shi", "bao", "si", "duo", "yi", "er", "rao", "xiang",
+       "he", "ge", "jiao", "xi", "bing", "bo", "dou", "e", "yu", "nei",
+       "jun", "guo", "hun", "xian", "guan", "cha", "kui", "gu", "sou", "chan",
+       "ye", "mo", "bo", "liu", "xiu", "jin", "man", "san", "zhuan", "nang",
+       "shou", "kui", "guo", "xiang", "fen", "bo", "ni", "bi", "bo", "tu",
+       "han", "fei", "jian", "an", "ai", "fu", "xian", "yun|wo", "xin", "fen",
+       "pin", "xin", "ma", "yu", "feng|ping", "han", "di", "tuo|duo", "tuo|zhe", "chi",
+       "xun", "zhu", "zhi|shi", "pei", "xin|jin", "ri", "sa", "yun", "wen", "zhi",
+       "dan", "lu", "you", "bo", "bao", "jue|kuai", "tuo|duo", "yi", "qu", "wen",
+       "qu", "jiong", "po", "zhao", "yuan", "peng", "zhou", "ju", "zhu", "nu",
+       "ju", "pi", "zang", "jia", "ling", "zhen", "tai|dai", "fu", "yang", "shi",
+       "bi", "tuo", "tuo", "si", "liu", "ma", "pian", "tao", "zhi", "rong",
+       "teng", "dong", "xun|xuan", "quan", "shen", "jiong", "er", "hai", "bo", "zhu",
+       "yin", "luo", "zhou", "dan", "hai", "liu", "ju", "song", "qin", "mang",
+       "liang|lang", "han", "tu", "xuan", "tui", "jun", "e", "cheng", "xing", "dai",
+       "lu", "zhui", "zhou", "she", "pian", "kun", "tao", "lai", "zong", "ke",
+       "qi", "qi", "yan", "fei", "sao", "yan", "ge", "yao", "wu", "pian",
+       "cong", "pian", "qian", "fei", "huang", "qian", "huo", "yu", "ti", "quan",
+       "xia", "zong", "kui", "rou", "si", "gua", "tuo", "gui", "sou", "qian",
+       "cheng", "zhi", "liu", "peng", "teng", "xi", "cao", "du", "yan", "yuan",
+       "zou", "sao", "shan", "qi", "zhi", "shuang", "lu", "xi", "luo", "zhang",
+       "mo", "ao", "can", "piao", "cong", "qu", "bi", "zhi", "yu", "xu",
+       "hua", "bo", "su", "xiao", "lin", "zhan", "dun", "liu", "tuo", "ceng",
+       "dian", "jiao", "tie", "yan", "luo", "zhan", "jing", "yi", "ye", "tuo",
+       "pin", "zhou", "yan", "long", "lv", "teng", "xiang", "ji", "shuang", "ju",
+       "xi", "huan", "li", "biao", "ma", "yu", "duo", "xun", "chi", "qu",
+       "ri", "bo", "lv", "zang", "shi", "si", "fu", "ju", "zou", "zhu",
+       "tuo", "nu", "jia", "yi", "dai", "xiao", "ma", "yin", "jiao", "hua",
+       "luo", "hai", "pian", "biao", "li", "cheng", "yan", "xing", "qin", "jun",
+       "qi", "qi", "ke", "zhui", "zong", "su", "can", "pian", "zhi", "kui",
+       "sao", "wu", "ao", "liu", "qian", "shan", "piao|biao", "luo", "cong", "chan",
+       "zhou", "ji", "shuang", "xiang", "gu", "wei", "wei", "wei", "yu", "gan",
+       "yi", "ang", "tou", "jie", "bao", "bei|mo", "ci", "ti", "di", "ku",
+       "hai", "qiao|xiao", "hou", "kua", "ge", "tui", "geng", "pian", "bi", "ke",
+       "qia", "ou", "sui", "lou", "bo", "xiao", "bang", "bo|jue", "ci", "kuan",
+       "bin", "mo", "liao", "lou", "xiao", "du", "zang", "sui", "ti", "bin",
+       "kuan", "lu", "gao", "gao", "qiao", "kao", "qiao", "lao", "sao", "biao",
+       "kun", "kun", "di", "fang", "xiu", "ran", "mao", "dan", "kun", "bin",
+       "fa", "tiao", "pi", "zi", "fa", "ran", "ti", "bao", "bi|po", "mao|meng",
+       "fu", "er", "er", "qu", "gong", "xiu", "kuo|yue", "ji", "peng", "zhua",
+       "shao", "sha", "ti", "li", "bin", "zong", "ti", "peng", "song", "zheng",
+       "quan", "zong", "shun", "jian", "duo", "hu", "la", "jiu", "qi", "lian",
+       "zhen", "bin", "peng", "ma", "san", "man", "man", "seng", "xu", "lie",
+       "qian", "qian", "nong", "huan", "kuo", "ning", "bin", "lie", "rang", "dou",
+       "dou", "nao", "hong", "xi", "dou", "kan", "dou", "dou", "jiu", "chang",
+       "yu", "yu", "ge", "yan", "fu", "zeng", "gui", "zong", "liu", "gui",
+       "shang", "yu", "gui", "mei", "ji", "qi", "ga", "kui", "hun", "ba",
+       "bo", "mei", "xu", "yan", "xiao", "liang", "yu", "tui", "qi", "wang",
+       "liang", "wei", "gan", "chi", "piao", "bi", "mo", "ji", "xu", "chou",
+       "yan", "zhan", "yu", "dao", "ren", "ji", "ba", "hong", "tuo", "diao",
+       "ji", "yu", "e", "ji", "sha", "hang", "tun", "mo", "jie", "shen",
+       "ban", "yuan", "pi", "lu", "wen", "hu", "lu", "za", "fang", "fen",
+       "na", "you", "pian", "mo", "he", "xia", "qu", "han", "pi", "ling",
+       "tuo", "ba", "qiu", "ping", "fu", "bi", "ci|ji", "wei", "ju", "diao",
+       "bo|ba", "you", "gun", "pi", "nian", "xing", "tai", "bao", "fu", "zha",
+       "ju", "gu", "shi", "dong", "chou", "ta", "jie", "shu", "hou", "xiang",
+       "er", "an", "wei", "zhao", "zhu", "yin", "lie", "luo|ge", "tong", "yi",
+       "yi", "bing", "wei", "jiao", "ku", "gui|xie|wa|kui", "xian", "ge", "hui", "lao",
+       "fu", "kao", "xiu", "tuo", "jun", "ti", "mian", "shao", "zha", "suo",
+       "qin", "yu", "nei", "zhe", "gun", "geng", "su", "wu", "qiu", "shan",
+       "pu|bu", "huan", "tiao", "li", "sha", "sha", "kao", "meng", "cheng", "li",
+       "zou", "xi", "yong", "shen", "zi", "qi", "qing", "xiang", "nei", "chun",
+       "ji", "diao", "qie", "gu", "zhou", "dong", "lai", "fei", "ni", "yi|si",
+       "kun", "lu", "jiu", "chang", "jing", "lun", "ling", "zou", "li", "meng",
+       "zong", "zhi", "nian", "hu", "yu", "di", "shi", "shen", "huan", "ti",
+       "hou", "xing", "zhu", "la", "zong", "ji", "bian", "bian", "huan", "quan",
+       "zei", "wei", "wei", "yu", "chun", "rou", "die", "huang", "lian", "yan",
+       "qiu", "qiu", "jian", "bi", "e", "yang", "fu", "sai", "jian", "xia",
+       "tuo", "hu", "shi", "ruo", "xuan", "wen", "jian", "hao", "wu", "pang",
+       "sao", "liu", "ma", "shi", "shi", "guan", "zi", "teng", "ta", "yao",
+       "e", "yong", "qian", "qi", "wen", "ruo", "ha ta ha ta", "lian", "ao", "le",
+       "hui", "min", "ji", "tiao", "qu", "jian", "shen", "man", "xi", "qiu",
+       "piao", "ji", "ji", "zhu", "jiang", "xiu", "zhuan", "yong", "zhang", "kang",
+       "xue", "bie", "yu", "qu", "xiang", "bo", "jiao", "xun", "su", "huang",
+       "zun", "shan", "shan", "fan", "gui", "lin", "xun", "yao", "xi", "zeng",
+       "xiang", "fen", "guan", "hou", "kuai", "zei", "sao", "zhan", "gan", "gui",
+       "ying", "li", "chang", "lei", "se", "ai", "ru", "ji", "xu", "hu",
+       "shu", "li", "lie", "le", "mie", "zhen", "xiang", "e", "lu", "guan",
+       "li", "xian", "yu", "dao", "ji", "you", "tun", "lu", "fang", "ba",
+       "he|ge", "ba", "ping", "nian", "lu", "you", "zha", "fu", "bo|ba", "bao",
+       "hou", "pi", "tai", "gui|xie", "jie", "kao", "wei", "er", "tong", "zei",
+       "hou", "kuai", "ji", "jiao", "xian", "zha", "xiang", "xun", "geng", "li",
+       "lian", "jian", "li", "shi", "tiao", "gun", "sha", "huan", "jun", "ji",
+       "yong", "qing", "ling", "qi", "zou", "fei", "kun", "chang", "gu", "ni",
+       "nian", "diao", "jing", "shen", "shi", "zi", "fen", "die", "bi", "chang",
+       "ti", "wen", "wei", "sai|xi", "e", "qiu", "fu", "huang", "quan", "jiang",
+       "bian", "sao", "ao", "qi", "ta", "guan", "yao", "pang", "jian", "le",
+       "biao", "xue", "bie", "man", "min", "yong", "wei", "xi", "gui|jue", "shan",
+       "lin", "zun", "hu", "gan", "li", "zhan|shan", "guan", "niao|diao", "yi", "fu",
+       "li", "jiu", "bu", "yan", "fu", "diao|zhao", "ji", "feng", "ru", "gan|han|yan",
+       "shi", "feng", "ming", "bao", "yuan", "zhi", "hu", "qin", "fu|gui", "ban|fen",
+       "wen", "jian|qian|zhan", "shi", "yu", "fou", "yao", "jue", "jue", "pi", "huan",
+       "zhen", "bao", "yan", "ya", "zheng", "fang", "feng", "wen", "ou", "dai",
+       "jia", "ru", "ling", "mie", "fu", "tuo", "min", "li", "bian", "zhi",
+       "ge", "yuan", "ci", "qu", "xiao", "chi", "dan", "ju", "yao", "gu",
+       "zhong", "yu", "yang", "yu", "ya", "die", "yu", "tian", "ying", "dui",
+       "wu", "er", "gua", "ai", "zhi", "yan", "heng", "xiao", "jia", "lie",
+       "zhu", "yang", "yi", "hong", "lu", "ru", "mou", "ge", "ren", "jiao",
+       "xiu", "zhou", "chi", "luo", "heng", "nian", "e", "luan", "jia", "ji",
+       "tu", "huan", "tuo", "bu", "wu", "juan", "yu", "bo", "jun", "jun",
+       "bi", "xi", "jun", "ju", "tu", "jing", "ti", "e", "e", "kuang",
+       "hu", "wu", "shen", "lai", "zan", "pan", "lu", "pi", "shu", "fu",
+       "an", "zhuo", "peng", "qin", "qian", "bei", "diao", "lu", "que", "jian",
+       "ju", "tu", "ya", "yuan", "qi", "li", "ye", "zhui", "kong", "duo",
+       "kun", "sheng", "qi", "jing", "yi", "yi", "jing", "zi", "lai", "dong",
+       "qi", "chun", "geng", "ju", "qu", "yi", "zun", "ji", "shu", "ying",
+       "chi", "miao", "rou", "an", "qiu", "ti|chi", "hu", "ti|chi", "e", "jie",
+       "mao", "fu|bi", "chun", "tu", "yan", "he|jie", "yuan", "pian|bian", "kun", "mei",
+       "hu", "ying", "chuan|zhi", "wu", "ju", "dong", "cang|qiang", "fang", "he|hu", "ying",
+       "yuan", "xian", "weng", "shi", "he", "chu", "tang", "xia", "ruo", "liu",
+       "ji", "gu|hu", "jian", "sun|xun", "han", "ci", "ci", "yi", "yao", "yan",
+       "ji", "li", "tian", "kou", "ti", "ti", "yi", "tu", "ma", "xiao",
+       "gao", "tian", "chen", "ji", "tuan", "zhe", "ao", "yao", "yi", "ou",
+       "chi", "zhi", "liu", "yong", "lou|lv", "bi", "shuang", "zhuo", "yu", "wu",
+       "jue", "yin", "ti", "si", "jiao", "yi", "hua", "bi", "ying", "su",
+       "huang", "fan", "jiao", "liao", "yan", "gao", "jiu", "xian", "xian", "tu",
+       "mai", "zun", "yu", "ying", "lu", "tuan", "xian", "xue", "yi", "pi",
+       "zhu", "luo", "xi", "yi", "ji", "ze", "yu", "zhan", "ye", "yang",
+       "pi", "ning", "hu", "mi", "ying", "meng", "di", "yue", "yu", "lei",
+       "bu", "lu", "he", "long", "shuang", "yue", "ying", "guan", "qu", "li",
+       "luan", "niao", "jiu", "ji", "yuan", "ming", "shi", "ou", "ya", "cang",
+       "bao", "zhen", "gu", "dong", "lu", "ya", "xiao", "yang", "ling", "chi",
+       "qu", "yuan", "xue", "tuo", "si", "zhi", "er", "gua", "xiu", "heng",
+       "zhou", "ge", "luan", "hong", "wu", "bo", "li", "juan", "hu", "e",
+       "yu", "xian", "ti", "wu", "que", "miao", "an", "kun", "bei", "peng",
+       "qian", "chun", "geng", "yuan", "su", "hu", "he", "e", "gu", "qiu",
+       "ci", "mei", "wu", "yi", "yao", "weng", "liu", "ji", "yi", "jian",
+       "he", "yi", "ying", "zhe", "liu", "liao", "jiao", "jiu", "yu", "lu",
+       "huan", "zhan", "ying", "hu", "meng", "guan", "shuang", "lu", "jin", "ling",
+       "jian", "xian", "cuo", "jian", "jian", "yan", "cuo", "lu", "you", "cu",
+       "ji", "pao|biao", "cu", "pao", "zhu|cu", "jun|qun", "zhu", "jian", "mi", "mi",
+       "yu", "liu", "chen", "jun", "lin", "ni", "qi", "lu", "jiu", "jun",
+       "jing", "li", "xiang", "xian", "jia", "mi", "li", "she", "zhang", "lin",
+       "jing", "qi", "ling", "yan", "cu", "mai", "mai", "he", "chao", "fu",
+       "mian", "mian", "fu", "pao", "qu", "qu", "mou", "fu", "xian", "lai",
+       "qu", "mian", "chi", "feng", "fu", "qu", "mian", "ma", "mo|me", "mo|me",
+       "hui", "mi", "zou", "nun", "fen", "huang", "huang", "jin", "guang", "tian",
+       "tou", "hong", "hua", "kuang", "hong", "shu", "li", "nian", "chi", "hei",
+       "hei", "yi", "qian", "dan", "xi", "tun", "mo", "mo", "qian", "dai",
+       "chu", "you", "dian", "yi", "xia", "yan", "qu", "mei", "yan", "qing",
+       "yue", "li", "dang", "du", "can", "yan", "yan", "yan", "dan|shen", "an",
+       "zhen|yan", "dai", "can", "yi", "mei", "dan|zhan", "yan", "du", "lu", "zhi",
+       "fen", "fu", "fu", "min|mian|meng", "min|mian|meng", "yuan", "cu", "qu", "chao", "wa",
+       "zhu", "zhi", "meng", "ao", "bie", "tuo", "bi", "yuan", "chao", "tuo",
+       "ding", "mi", "nai", "ding", "zi", "gu", "gu", "dong", "fen", "tao",
+       "yuan", "pi", "chang", "gao", "cao", "yuan", "tang", "teng", "shu", "shu",
+       "fen", "fei", "wen", "ba", "diao", "tuo", "zhong", "qu", "sheng", "shi",
+       "you", "shi", "ting", "wu", "ju", "jing", "hun", "ju", "yan", "tu",
+       "si", "xi", "xian", "yan", "lei", "bi", "yao", "qiu", "han", "wu",
+       "wu", "hou", "xie", "e", "zha", "xiu", "weng", "zha", "nong", "nang",
+       "qi", "zhai", "ji", "zi", "ji", "ji", "qi", "ji", "chi", "chen",
+       "chen", "he", "ya", "yin", "xie", "bao", "ze", "xie", "zi", "chi",
+       "yan", "ju", "tiao", "ling", "ling", "chu", "quan", "xie", "yin", "nie",
+       "jiu", "yao", "chuo", "yun", "yu", "chu", "yi", "ni", "ze", "zou",
+       "qu", "yun", "yan", "yu", "e", "wo", "yi", "ci", "zou", "dian",
+       "chu", "jin", "ya", "chi", "chen", "he", "yin|ken", "ju", "ling", "bao",
+       "tiao", "zi", "yin|ken", "yu", "chuo", "qu", "wo", "long", "pang", "gong|wo",
+       "pang", "yan", "long", "long", "gong", "kan", "da", "ling", "da", "long",
+       "gong", "kan", "gui|jun|qiu", "qiu", "bie", "gui|jun|qiu", "yue", "chui", "he", "jiao",
+       "xie", "yu"
+};
 
 #define DUOYINZI_SEPERATOR '|'
 
 static inline int __media_svc_get_pinyinspell(UChar src, char spell[CHINESE_DUOYINZI_MAX_COUNT][CHINESE_PINYIN_SPELL_MAX_LEN])
 {
        int offset, len, i, j;
-       int count=0;
+       int count = 0;
 
        offset = src - CHINESE_UNICODE_START;
-       media_svc_retvm_if(offset < 0 || offset >= CHINESE_COUNT , MS_MEDIA_ERR_INVALID_PARAMETER, "src is invalid");
+       media_svc_retvm_if(offset < 0 || offset >= CHINESE_COUNT, MS_MEDIA_ERR_INVALID_PARAMETER, "src is invalid");
 
        len = strlen(pinyin_spell_table[offset]);
 
-       for(i=0, j=0; i<=len; i++) {
-               if (pinyin_spell_table[offset][i]== DUOYINZI_SEPERATOR
-                               || pinyin_spell_table[offset][i] == '\0') {
-                       strncpy(spell[count], pinyin_spell_table[offset]+j, i-j);
-                       j=i+1;
+       for (i = 0, j = 0; i <= len; i++) {
+               if (pinyin_spell_table[offset][i] == DUOYINZI_SEPERATOR
+                   || pinyin_spell_table[offset][i] == '\0') {
+                       strncpy(spell[count], pinyin_spell_table[offset] + j, i - j);
+                       j = i + 1;
                        count++;
                }
        }
@@ -2169,8 +2170,7 @@ __media_svc_has_chinese(const UChar *src)
 
        len = u_strlen(src);
 
-       for (i = 0; i < len; i++)
-       {
+       for (i = 0; i < len; i++) {
                if (__media_svc_is_chinese(&src[i]))
                        return true;
        }
@@ -2180,14 +2180,14 @@ __media_svc_has_chinese(const UChar *src)
 
 bool _media_svc_has_chinese(const char *src)
 {
-       UChar   temp[strlen(src)+1];
+       UChar   temp[strlen(src) + 1];
        UErrorCode status = 0;
 
-       media_svc_retvm_if(src==NULL, false, "src is NULL");
+       media_svc_retvm_if(src == NULL, false, "src is NULL");
        media_svc_retvm_if(!*src, false, "*src is NULL");
 
        u_strFromUTF8(temp, array_sizeof(temp), NULL, src, -1, &status);
-       if (U_FAILURE(status)){
+       if (U_FAILURE(status)) {
                media_svc_error("u_strFromUTF8 Failed(%s)", u_errorName(status));
                return false;
        }
@@ -2199,8 +2199,8 @@ bool _media_svc_has_chinese(const char *src)
 
 int _media_svc_convert_chinese_to_pinyin(const char *src, pinyin_name_s **name, int *size)
 {
-       UChar   temp_result[strlen(src)+1];
-       int     count = 0, len=0, total_count=0;
+       UChar   temp_result[strlen(src) + 1];
+       int     count = 0, len = 0, total_count = 0;
        int ret, i, j;
        int multi_pinyin_count = 0;
        UErrorCode status = 0;
@@ -2208,11 +2208,11 @@ int _media_svc_convert_chinese_to_pinyin(const char *src, pinyin_name_s **name,
 
        *size = 0;
 
-       media_svc_retvm_if(src==NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "src is NULL");
+       media_svc_retvm_if(src == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "src is NULL");
        media_svc_retvm_if(!*src, MS_MEDIA_ERR_INVALID_PARAMETER, "*src is NULL");
 
        u_strFromUTF8(temp_result, array_sizeof(temp_result), NULL, src, -1, &status);
-       if (U_FAILURE(status)){
+       if (U_FAILURE(status)) {
                media_svc_error("u_strFromUTF8 Failed(%s)", u_errorName(status));
                return MS_MEDIA_ERR_INTERNAL;
        }
@@ -2224,7 +2224,7 @@ int _media_svc_convert_chinese_to_pinyin(const char *src, pinyin_name_s **name,
        memset(spell, 0x0, len * CHINESE_DUOYINZI_MAX_COUNT * CHINESE_PINYIN_SPELL_MAX_LEN);
 
        for (count = 0; count < len; count++) {
-               if (temp_result[count] == 0xFEFF ||temp_result[count] == 0xFFFE) {//  ||temp_result[count] == 0xFF) {
+               if (temp_result[count] == 0xFEFF || temp_result[count] == 0xFFFE) { /*  ||temp_result[count] == 0xFF) { */
                        media_svc_error("FIND BOM, GO TO THE NEXT CHARACTER");
                        pinyin_spell_count[count] = 1;
                        continue;
@@ -2238,14 +2238,13 @@ int _media_svc_convert_chinese_to_pinyin(const char *src, pinyin_name_s **name,
 
                        pinyin_spell_count[count] = ret;
 
-                       if(total_count==0)
+                       if (total_count == 0)
                                total_count = ret;
                        else
                                total_count *= ret;
                        if (ret > 1)
-                               multi_pinyin_count ++;
-               }
-               else {
+                               multi_pinyin_count++;
+               } else {
                        UChar temp[2];
                        int temp_size;
 
@@ -2253,28 +2252,28 @@ int _media_svc_convert_chinese_to_pinyin(const char *src, pinyin_name_s **name,
                        temp[1] = 0x00;
                        u_strToUTF8(spell[count][0], 10, &temp_size, temp, -1, &status);
                        media_svc_retvm_if(U_FAILURE(status), MS_MEDIA_ERR_INTERNAL, "u_strToUTF8() Failed(%s)", u_errorName(status));
-                       spell[count][0][temp_size]='\0';
+                       spell[count][0][temp_size] = '\0';
                        pinyin_spell_count[count] = 1;
                }
        }
 
        *size = total_count;
        temp_name = calloc(total_count, sizeof(pinyin_name_s));
-       media_svc_retvm_if(temp_name == NULL, MS_MEDIA_ERR_OUT_OF_MEMORY,"calloc Failed()");
+       media_svc_retvm_if(temp_name == NULL, MS_MEDIA_ERR_OUT_OF_MEMORY, "calloc Failed()");
 
        int repeat = 1;
        int name_len[total_count];
        int initial_len[total_count];
        int pinyin_name_len = sizeof(char) * ((len + 2) * CHINESE_PINYIN_SPELL_MAX_LEN);
        int pinyin_initial_len = sizeof(char) * (len * 5 + 1);
-       for(i=0; i < count ; i++) {
-               for(j=0;j<total_count;j++) {
+       for (i = 0; i < count ; i++) {
+               for (j = 0; j < total_count; j++) {
                        if (pinyin_spell_count[i] == 0)
                                continue;
 
-                       int index = (j/repeat) %pinyin_spell_count[i];
+                       int index = (j / repeat) % pinyin_spell_count[i];
 
-                       if (i==0) {
+                       if (i == 0) {
                                name_len[j] = 0;
                                initial_len[j] = 0;
 
@@ -2283,23 +2282,23 @@ int _media_svc_convert_chinese_to_pinyin(const char *src, pinyin_name_s **name,
                        }
 
                        if (spell[i][index][0]) {
-                               //if(temp_name[j].pinyin_name[0])
-                               //      name_len[j] += snprintf(temp_name[j].pinyin_name + name_len[j], pinyin_name_len - name_len[j], " ");
+                               /*if(temp_name[j].pinyin_name[0]) */
+                               /*      name_len[j] += snprintf(temp_name[j].pinyin_name + name_len[j], pinyin_name_len - name_len[j], " "); */
 
                                name_len[j] += snprintf(temp_name[j].pinyin_name + name_len[j], pinyin_name_len - name_len[j],
-                                                               "%s", spell[i][index]);
+                                                       "%s", spell[i][index]);
 
                                int char_len = _media_svc_check_utf8(spell[i][index][0]);
                                if (char_len > 0) {
                                        if (char_len == 1)
                                                initial_len[j] += snprintf(temp_name[j].pinyin_initial + initial_len[j], pinyin_initial_len - initial_len[j],
-                                                                               "%c", spell[i][index][0]);
+                                                                          "%c", spell[i][index][0]);
                                        else {
                                                char temp[10];
                                                snprintf(temp, sizeof(temp), "%s", spell[i][index]);
-                                               temp[char_len] ='\0';
+                                               temp[char_len] = '\0';
                                                initial_len[j] += snprintf(temp_name[j].pinyin_initial + initial_len[j], pinyin_initial_len - initial_len[j],
-                                                                               "%s", temp);
+                                                                          "%s", temp);
                                        }
                                } else {
                                        media_svc_error("_media_svc_check_utf8 failed");
@@ -2321,7 +2320,7 @@ void _media_svc_pinyin_free(pinyin_name_s *pinyinname, int size)
        if (pinyinname == NULL)
                return;
 
-       for (i=0;i<size;i++) {
+       for (i = 0; i < size; i++) {
                free(pinyinname[i].pinyin_initial);
                free(pinyinname[i].pinyin_name);
        }
index 7a177ee..a932062 100755 (executable)
 typedef struct {
        UChar han;
        UChar yi_syllable;
-}han_map;
+} han_map;
 
 #define MAX_BPMF_COUNT 4
 
 typedef struct {
        UChar yi_syllable;
        UChar bopomofo[MAX_BPMF_COUNT + 1];
-}bopomofo_map;
+} bopomofo_map;
 
 static bopomofo_map UNICODES[] = {
-       { 0xA001, { 0x3105, 0x0, 0x0 , 0x0}},                    // B
-       { 0xA002, { 0x3105, 0x3127, 0x0 , 0x0}},                 // B_I
-       { 0xA003, { 0x3105, 0x3127, 0x311D , 0x0}},              // B_I_EH
-       { 0xA004, { 0x3105, 0x3127, 0x3120 , 0x0}},              // B_I_AU
-       { 0xA005, { 0x3105, 0x3127, 0x3122 , 0x0}},              // B_I_AN
-       { 0xA006, { 0x3105, 0x3127, 0x3123 , 0x0}},              // B_I_EN
-       { 0xA007, { 0x3105, 0x3127, 0x3125 , 0x0}},              // B_I_ENG
-       { 0xA008, { 0x3105, 0x3128, 0x0 , 0x0}},                 // B_U
-       { 0xA009, { 0x3105, 0x311A, 0x0 , 0x0}},                 // B_A
-       { 0xA00A, { 0x3105, 0x311B , 0x0, 0x0}},                 // B_O
-       { 0xA00B, { 0x3105, 0x311E, 0x0, 0x0}},                          // B_AI
-       { 0xA00C, { 0x3105, 0x311F, 0x0 , 0x0}},                 // B_EI
-       { 0xA00D, { 0x3105, 0x3120, 0x0 , 0x0}},                 // B_AU
-       { 0xA00E, { 0x3105, 0x3122, 0x0 , 0x0}},                 // B_AN
-       { 0xA00F, { 0x3105, 0x3123, 0x0 , 0x0}},                 // B_EN
-       { 0xA010, { 0x3105, 0x3124 , 0x0, 0x0}},                 // B_ANG
-       { 0xA011, { 0x3105, 0x3125, 0x0 , 0x0}},                 // B_ENG
-       { 0xA012, { 0x3106, 0x0, 0x0 } },                                // P
-       { 0xA013, { 0x3106, 0x3127, 0x0 , 0x0}},                         // P_I
-       { 0xA014, { 0x3106, 0x3127, 0x311D , 0x0}},              // P_I_EH
-       { 0xA015, { 0x3106, 0x3127, 0x3120 , 0x0}},              // P_I_AU
-       { 0xA016, { 0x3106, 0x3127, 0x3122 , 0x0}},              // P_I_AN
-       { 0xA017, { 0x3106, 0x3127, 0x3123 , 0x0}},              // P_I_EN
-       { 0xA018, { 0x3106, 0x3127, 0x3125 , 0x0}},              // P_I_ENG
-       { 0xA019, { 0x3106, 0x3128, 0x0 , 0x0}},                         // P_U
-       { 0xA01A, { 0x3106, 0x311A , 0x0, 0x0}},                                                                                  // P_A
-       { 0xA01B, { 0x3106, 0x311B, 0x0 , 0x0}},                                                                                  // P_O
-       { 0xA01C, { 0x3106, 0x311E, 0x0 , 0x0}},                                                                                        // P_AI
-       { 0xA01D, { 0x3106, 0x311F, 0x0 , 0x0}},                                                                                        // P_EI
-       { 0xA01E, { 0x3106, 0x3120, 0x0 , 0x0}},                                                                                        // P_AU
-       { 0xA01F, { 0x3106, 0x3121 , 0x0, 0x0}},                                                                                        // P_OU
-       { 0xA020, { 0x3106, 0x3122 , 0x0, 0x0}},                                                                                        // P_AN
-       { 0xA021, { 0x3106, 0x3123, 0x0 , 0x0}},                                                                                        // P_EN
-       { 0xA022, { 0x3106, 0x3124, 0x0 , 0x0}},                                                                                        // P_ANG
-       { 0xA023, { 0x3106, 0x3125 , 0x0, 0x0}},                                                                                        // P_ENG
-       { 0xA024, { 0x3107, 0x0, 0x0, 0x0}},                                                                                                    // M
-       { 0xA025, { 0x3107, 0x3127, 0x0 , 0x0}},                                                                                        // M_I
-       { 0xA026, { 0x3107, 0x3127, 0x311D, 0x0}},                                                              // M_I_EH
-       { 0xA027, { 0x3107, 0x3127,0x3120, 0x0}},                                                                 // M_I_AU
-       { 0xA028, { 0x3107, 0x3127,0x3121 , 0x0}},                                                              // M_I_OU
-       { 0xA029, { 0x3107, 0x3127,0x3122 , 0x0}},                                                              // M_I_AN
-       { 0xA02A, { 0x3107, 0x3127,0x3123 , 0x0}},                                                              // M_I_EN
-       { 0xA02B, { 0x3107, 0x3127,0x3124 , 0x0}},                                                              // M_I_ENG
-       { 0xA02C, { 0x3107, 0x3128 , 0x0} },                             // M_U
-       { 0xA02D, { 0x3107, 0x311A, 0x0 , 0x0}},                         // M_A
-       { 0xA02E, { 0x3107, 0x311B, 0x0, 0x0}},                                                   // M_O
-       { 0xA02F, { 0x3107, 0x311C , 0x0, 0x0}},                                                  // M_E
-       { 0xA030, { 0x3107, 0x311E, 0x0 , 0x0}},                                                  // M_AI
-       { 0xA031, { 0x3107, 0x311F , 0x0, 0x0}},                                                  // M_EI
-       { 0xA032, { 0x3107, 0x3120 , 0x0, 0x0}},                                                  // M_AU
-       { 0xA033, { 0x3107, 0x3121, 0x0 , 0x0}},                         // M_OU
-       { 0xA034, { 0x3107, 0x3122, 0x0 , 0x0}},                         // M_AN
-       { 0xA035, { 0x3107, 0x3123 , 0x0, 0x0}},                         // M_EN
-       { 0xA036, { 0x3107, 0x3124, 0x0 , 0x0}},                         // M_ANG
-       { 0xA037, { 0x3107, 0x3125, 0x0 , 0x0}},                         // M_ENG
-       { 0xA038, { 0x3108, 0x0, 0x0 , 0x0}},                                                   // F
-       { 0xA039, { 0x3108, 0x3128 , 0x0, 0x0}},                         // F_U
-       { 0xA03A, { 0x3108, 0x311A, 0x0, 0x0}},                          // F_A
-       { 0xA03B, { 0x3108, 0x311B, 0x0 , 0x0}},                         // F_O
-       { 0xA03C, { 0x3108, 0x311F, 0x0 , 0x0}},                         // F_EI
-       { 0xA03D, { 0x3108, 0x3121, 0x0 , 0x0}},                         // F_OU
-       { 0xA03E, { 0x3108, 0x3122, 0x0 , 0x0}},                         // F_AN
-       { 0xA03F, { 0x3108, 0x3123 , 0x0, 0x0}},                         // F_EN
-       { 0xA040, { 0x3108, 0x3124, 0x0 , 0x0}},                         // F_ANG
-       { 0xA041, { 0x3108, 0x3125 , 0x0, 0x0}},                         // F_ENG
-       { 0xA042, { 0x3109, 0x0, 0x0 , 0x0}},                                                   // D
-       { 0xA043, { 0x3109, 0x3127, 0x0 , 0x0}},                         // D_I
-       { 0xA044, { 0x3109, 0x3127, 0x311A , 0x0}},                      // D_I_A
-       { 0xA045, { 0x3109, 0x3127, 0x311D , 0x0}},                                                     //D_I_EH
-       { 0xA046, { 0x3109, 0x3127, 0x3120 , 0x0}},                                                     //D_I_AU
-       { 0xA047, { 0x3109, 0x3127, 0x3121 , 0x0}},                                                     //D_I_OU
-       { 0xA048, { 0x3109, 0x3127, 0x3122 , 0x0}},                                                     //D_I_AN
-       { 0xA049, { 0x3109, 0x3127, 0x3124 , 0x0}},                                                     //D_I_ENG
-       { 0xA04A, { 0x3109, 0x3128, 0x0, 0x0}},                                                                                 //D_U
-       { 0xA04B, { 0x3109, 0x3128, 0x311B , 0x0}},                                                     //D_U_O
-       { 0xA04C, { 0x3109, 0x3128, 0x311F , 0x0}},                                                     //D_U_EI
-       { 0xA04D, { 0x3109, 0x3128, 0x3122 , 0x0}},                                                     //D_U_AN
-       { 0xA04E, { 0x3109, 0x3128, 0x3123 , 0x0}},                                                     //D_U_EN
-       { 0xA04F, { 0x3109, 0x3128, 0x3125 , 0x0}},                                                     //D_U_ENG
-       { 0xA050, { 0x3109, 0x311A, 0x0 , 0x0}},                                                                                //D_A
-       { 0xA051, { 0x3109, 0x311C , 0x0, 0x0}},                                                                                //D_E
-       { 0xA052, { 0x3109, 0x311E, 0x0 , 0x0}},                                                                                //D_AI
-       { 0xA053, { 0x3109, 0x3120, 0x0 , 0x0}},                                                                                //D_AU
-       { 0xA054, { 0x3109, 0x3121, 0x0 , 0x0}},                                                                                //D_OU
-       { 0xA055, { 0x3109, 0x3122 , 0x0, 0x0}},                                                                                //D_AN
-       { 0xA056, { 0x3109, 0x3124, 0x0 , 0x0}},                                                                                //D_ANG
-       { 0xA057, { 0x3109, 0x3125, 0x0 , 0x0}},                                                                                //D_ENG
-       { 0xA058, { 0x310A, 0x0, 0x0 , 0x0}},                                                                                                   //T
-       { 0xA059, { 0x310A, 0x3127, 0x0 , 0x0}},                                                                                //T_I
-       { 0xA05A, { 0x310A, 0x3127, 0x311D , 0x0}},                                                     //T_I_EH
-       { 0xA05B, { 0x310A, 0x3127, 0x3120 , 0x0}},                                                     //T_I_AU
-       { 0xA05C, { 0x310A, 0x3127, 0x3122 , 0x0}},                                                     //T_I_AN
-       { 0xA05D, { 0x310A, 0x3127, 0x3125 , 0x0}},                                                     //T_I_ENG
-       { 0xA05E, { 0x310A, 0x3128, 0x0 , 0x0}},                                                                                //T_U
-       { 0xA05F, { 0x310A, 0x3128, 0x311B , 0x0}},                                                     //T_U_O
-       { 0xA060, { 0x310A, 0x3128, 0x311F , 0x0}},                                                     //T_U_EI
-       { 0xA061, { 0x310A, 0x3128, 0x3122 , 0x0}},                                                     //T_U_AN
-       { 0xA062, { 0x310A, 0x3128, 0x3123 , 0x0}},                                                     //T_U_EN
-       { 0xA063, { 0x310A, 0x3127, 0x3125 , 0x0}},                                                     //T_U_ENG
-       { 0xA064, { 0x310A, 0x311A, 0x0 , 0x0}},                                                                                //T_A
-       { 0xA065, { 0x310A, 0x311C, 0x0 , 0x0}},                                                                                //T_E
-       { 0xA066, { 0x310A, 0x311E, 0x0 , 0x0}},                                                                                //T_AI
-       { 0xA067, { 0x310A, 0x3120, 0x0 , 0x0}},                                                                                //T_AU
-       { 0xA068, { 0x310A, 0x3121, 0x0 , 0x0}},                                                                                //T_OU
-       { 0xA069, { 0x310A, 0x3122 , 0x0, 0x0}},                                                                                //T_AN
-       { 0xA06A, { 0x310A, 0x3124, 0x0 , 0x0}},                                                                                //T_ANG
-       { 0xA06B, { 0x310A, 0x3125 , 0x0, 0x0}},                                                                                //T_ENG
-       { 0xA06C, { 0x310B, 0x0, 0x0 , 0x0}},                                                                                                   //N
-       { 0xA06D, { 0x310B, 0x3127, 0x0 , 0x0}},                                                                                //N_I
-       { 0xA06E, { 0x310B, 0x3127, 0x311D , 0x0}},                                                     //N_I_EH
-       { 0xA06F, { 0x310B, 0x3127, 0x3120 , 0x0}},                                                     //N_I_AU
-       { 0xA070, { 0x310B, 0x3127, 0x3121 , 0x0}},                                                     //N_I_OU
-       { 0xA071, { 0x310B, 0x3127, 0x3122 , 0x0}},                                                     //N_I_AN
-       { 0xA072, { 0x310B, 0x3127, 0x3123 , 0x0}},                                                     //N_I_EN
-       { 0xA073, { 0x310B, 0x3127, 0x3124 , 0x0}},                                                     //N_I_ANG
-       { 0xA074, { 0x310B, 0x3127, 0x3125 , 0x0}},                                                     //N_I_ENG
-       { 0xA075, { 0x310B, 0x3128, 0x0 , 0x0}},                                                                                //N_U
-       { 0xA076, { 0x310B, 0x3128, 0x311B , 0x0}},                                                     //N_U_O
-       { 0xA077, { 0x310B, 0x3128, 0x3122 , 0x0}},                                                     //N_U_AN
-       { 0xA078, { 0x310B, 0x3128, 0x3125 , 0x0}},                                                     //N_U_ENG
-       { 0xA079, { 0x310B, 0x3129 , 0x0, 0x0}},                                                                                //N_IU
-       { 0xA07A, { 0x310B, 0x3129, 0x311D , 0x0}},                                                     //N_IU_EH
-       { 0xA07B, { 0x310B, 0x311A , 0x0, 0x0}},                                                                                //N_A
-       { 0xA07C, { 0x310B, 0x311C , 0x0, 0x0}},                                                                                //N_E
-       { 0xA07D, { 0x310B, 0x311E , 0x0, 0x0}},                                                                                //N_AI
-       { 0xA07E, { 0x310B, 0x311F , 0x0, 0x0}},                                                                                //N_EI
-       { 0xA07F, { 0x310B, 0x3120 , 0x0, 0x0}},                                                                                //N_AU
-       { 0xA080, { 0x310B, 0x3121 , 0x0, 0x0}},                                                                                //N_OU
-       { 0xA081, { 0x310B, 0x3122 , 0x0, 0x0}},                                                                                //N_AN
-       { 0xA082, { 0x310B, 0x3123 , 0x0, 0x0}},                                                                                //N_EN
-       { 0xA083, { 0x310B, 0x3124 , 0x0, 0x0}},                                                                                //N_ANG
-       { 0xA084, { 0x310B, 0x3125 , 0x0, 0x0}},                                                                                //N_ENG
-       { 0xA085, { 0x310C, 0x0 , 0x0, 0x0}},                                                                                                   //L
-       { 0xA086, { 0x310C, 0x3127 , 0x0, 0x0}},                                                                                //L_I
-       { 0xA087, { 0x310C, 0x3127, 0x311D , 0x0}},                                                     //L_I_EH
-       { 0xA088, { 0x310C, 0x3127, 0x3120 , 0x0}},                                                     //L_I_AU
-       { 0xA089, { 0x310C, 0x3127, 0x3121 , 0x0}},                                                     //L_I_OU
-       { 0xA08A, { 0x310C, 0x3127, 0x3122 , 0x0}},                                                     //L_I_AN
-       { 0xA08B, { 0x310C, 0x3127, 0x3123 , 0x0}},                                                     //L_I_EN
-       { 0xA08C, { 0x310C, 0x3127, 0x3124 , 0x0}},                                                     //L_I_ANG
-       { 0xA08D, { 0x310C, 0x3127, 0x3125 , 0x0}},                                                     //L_I_ENG
-       { 0xA08E, { 0x310C, 0x3128, 0x0 , 0x0}},                                                                                //L_U
-       { 0xA08F, { 0x310C, 0x3128, 0x311B , 0x0}},                                                     //L_U_O
-       { 0xA090, { 0x310C, 0x3128, 0x3122 , 0x0}},                                                     //L_U_AN
-       { 0xA091, { 0x310C, 0x3128, 0x3123 , 0x0}},                                                     //L_U_EN
-       { 0xA092, { 0x310C, 0x3128, 0x3125 , 0x0}},                                                     //L_U_ENG
-       { 0xA093, { 0x310C, 0x3129, 0x0, 0x0}},                                                                                  // L_IU
-       { 0xA094, { 0x310C, 0x3129, 0x311D, 0x0}},                                                        // L_IU_EH
-       { 0xA095, { 0x310C, 0x311A , 0x0, 0x0}},                                                                                 // L_A
-       { 0xA096, { 0x310C, 0x311C , 0x0, 0x0}},                                                                                 // L_E
-       { 0xA097, { 0x310C, 0x311E , 0x0, 0x0}},                                                                                 // L_AI
-       { 0xA098, { 0x310C,0x311F , 0x0, 0x0}},                                                                                  // L_EI
-       { 0xA099, { 0x310C, 0x3120 , 0x0, 0x0}},                                                                                 // L_AU
-       { 0xA09A, { 0x310C, 0x3121 , 0x0, 0x0}},                                                                                // L_OU
-       { 0xA09B, { 0x310C, 0x3122, 0x0, 0x0}},                                                                                  // L_AN
-       { 0xA09C, { 0x310C, 0x3124 , 0x0, 0x0}},                                                                                 // L_ANG
-       { 0xA09D, { 0x310C, 0x3125 , 0x0, 0x0}},                                                                                 // L_ENG
-       { 0xA09E, { 0x310D, 0x0, 0x0, 0x0}},                                                                                                     // G
-       { 0xA09F, { 0x310D, 0x3128, 0x0, 0x0}},                                                                                  // G_U
-       { 0xA0A0, { 0x310D, 0x3128, 0x311A , 0x0}},                                                                                      // G_U_A
-       { 0xA0A1, { 0x310D, 0x3128, 0x311B , 0x0}},                                                                                      // G_U_O
-       { 0xA0A2, { 0x310D, 0x3128, 0x311E, 0x0}},                                                                                      // G_U_AI
-       { 0xA0A3, { 0x310D, 0x3128, 0x311F, 0x0}},                                                                                      // G_U_EI
-       { 0xA0A4, { 0x310D, 0x3128, 0x3122, 0x0}},                                                                                       // G_U_AN
-       { 0xA0A5, { 0x310D, 0x3128, 0x3123 , 0x0}},                                                                               // G_U_EN
-       { 0xA0A6, { 0x310D, 0x3128, 0x3124 , 0x0}},                                                                               // G_U_ANG
-       { 0xA0A7, { 0x310D, 0x3128, 0x3125, 0x0}},                                                                                       // G_U_ENG
-       { 0xA0A8, { 0x310D, 0x311A , 0x0, 0x0}},                                                                                        // G_A
-       { 0xA0A9, { 0x310D, 0x311C , 0x0, 0x0}},                                                                                        // G_E
-       { 0xA0AA, { 0x310D, 0x311E , 0x0, 0x0}},                                                                                        // G_AI
-       { 0xA0AB, { 0x310D, 0x311F , 0x0, 0x0}},                                                                                        // G_EI
-       { 0xA0AC, { 0x310D, 0x3120 , 0x0, 0x0}},                                                                                        // G_AU
-       { 0xA0AD, { 0x310D, 0x311B, 0x3128, 0x0}},                                                                                              // G_OU
-       { 0xA0AE, { 0x310D, 0x3122 , 0x0, 0x0}},                                                                                 // G_AN
-       { 0xA0AF, { 0x310D, 0x3123 , 0x0, 0x0}},                                                                                 // G_EN
-       { 0xA0B0, { 0x310D, 0x3124 , 0x0, 0x0}},                                                                                 // G_ANG
-       { 0xA0B1, { 0x310D, 0x3125 , 0x0, 0x0}},                                                                                // G_ENG
-       { 0xA0B2, { 0x310E , 0x0, 0x0, 0x0}},                                                                                                   // K
-       { 0xA0B3, { 0x310E, 0x3128 , 0x0, 0x0}},                                                                                        // K_U
-       { 0xA0B4, { 0x310E, 0x3128, 0x311A , 0x0}},                                                                                      // K_U_A
-       { 0xA0B5, { 0x310E, 0x3128, 0x311B, 0x0}},                                                                                               // K_U_O
-       { 0xA0B6, { 0x310E, 0x3128, 0x311E , 0x0}},                                                                                      // K_U_AI
-       { 0xA0B7, { 0x310E, 0x3128, 0x311F , 0x0}},                                                                                       // K_U_EI
-       { 0xA0B8, { 0x310E, 0x3128, 0x3122 , 0x0}},                                                                                      // K_U_AN
-       { 0xA0B9, { 0x310E, 0x3128, 0x3123 , 0x0}},                                                                                      // K_U_EN
-       { 0xA0BA, { 0x310E, 0x3128, 0x3124 , 0x0}},                                                                                      // K_U_ANG
-       { 0xA0BB, { 0x310E, 0x3128, 0x3125 , 0x0}},                                                                                      // K_U_ENG
-       { 0xA0BC, { 0x310E, 0x311A , 0x0, 0x0}},                                                                                  // K_A
-       { 0xA0BD, { 0x310E, 0x311C , 0x0, 0x0}},                                                                                  // K_E
-       { 0xA0BE, { 0x310E, 0x312F , 0x0, 0x0}},                                                                                        // K_EI
-       { 0xA0BF, { 0x310E, 0x3120 , 0x0, 0x0}},                                                                                        // K_AU
-       { 0xA0C0, { 0x310E, 0x3121 , 0x0, 0x0}},                                                                                        // K_OU
-       { 0xA0C1, { 0x310E, 0x3122 , 0x0, 0x0}},                                                                                        // K_AN
-       { 0xA0C2, { 0x310E, 0x3123 , 0x0, 0x0}},                                                                                        // K_EN
-       { 0xA0C3, { 0x310E, 0x3124 , 0x0, 0x0}},                                                                                        // K_ANG
-       { 0xA0C4, { 0x310E, 0x3125 , 0x0, 0x0}},                                                                                        // K_ENG
-       { 0xA0C5, { 0x310F, 0x0 , 0x0, 0x0}},                                                                                                           //H
-       { 0xA0C6, { 0x310F, 0x3128 , 0x0, 0x0}},                                                                                        //H_U
-       { 0xA0C7, { 0x310F, 0x3128, 0x311A , 0x0}},                                                             //H_U_A
-       { 0xA0C8, { 0x310F, 0x3128, 0x311B , 0x0}},                                                             //H_U_O
-       { 0xA0C9, { 0x310F, 0x3128, 0x311E , 0x0}},                                                             //H_U_AI
-       { 0xA0CA, { 0x310F, 0x3128, 0x311F , 0x0}},                                                             //H_U_EI
-       { 0xA0CB, { 0x310F, 0x3128, 0x3122 , 0x0}},                                                             //H_U_AN
-       { 0xA0CC, { 0x310F, 0x3128, 0x3123 , 0x0}},                                                             //H_U_EN
-       { 0xA0CD, { 0x310F, 0x3128, 0x3124 , 0x0}},                                                             //H_U_ANG
-       { 0xA0CE, { 0x310F, 0x3128, 0x3125 , 0x0}},                                                             //H_U_ENG
-       { 0xA0CF, { 0x310F, 0x311A , 0x0, 0x0}},                                                                                  //H_A
-       { 0xA0D0, { 0x310F, 0x311C , 0x0, 0x0}},                                                                                  //H_E
-       { 0xA0D1, { 0x310F, 0x311E , 0x0, 0x0}},                                                                                  //H_AI
-       { 0xA0D2, { 0x310F, 0x311F , 0x0, 0x0}},                                                                                  //H_EI
-       { 0xA0D3, { 0x310F, 0x3120 , 0x0, 0x0}},                                                                                  //H_AU
-       { 0xA0D4, { 0x310F, 0x3121 , 0x0, 0x0}},                                                                                  //H_OU
-       { 0xA0D5, { 0x310F, 0x3122 , 0x0, 0x0}},                                                                                  //H_AN
-       { 0xA0D6, { 0x310F, 0x3123 , 0x0, 0x0}},                                                                                  //H_EN
-       { 0xA0D7, { 0x310F, 0x3124 , 0x0, 0x0}},                                                                                  //H_ANG
-       { 0xA0D8, { 0x310F, 0x3125 , 0x0, 0x0}},                                                                                  //H_ENG
-       { 0xA0D9, { 0x3110, 0x0 , 0x0, 0x0}},                                                                                                     //J
-       { 0xA0DA, { 0x3110, 0x3127 , 0x0, 0x0}},                                                                                  //J_I
-       { 0xA0DB, { 0x3110, 0x3127, 0x311A , 0x0}},                                                       //J_I_A
-       { 0xA0DC, { 0x3110, 0x3127, 0x311D , 0x0}},                                                       //J_I_EH
-       { 0xA0DD, { 0x3110, 0x3127, 0x3120 , 0x0}},                                                       //J_I_AU
-       { 0xA0DE, { 0x3110, 0x3127, 0x3121 , 0x0}},                                                       //J_I_OU
-       { 0xA0DF, { 0x3110, 0x3127, 0x3122 , 0x0}},                                                       //J_I_AN
-       { 0xA0E0, { 0x3110, 0x3127, 0x3123 , 0x0}},                                                       //J_I_EN
-       { 0xA0E1, { 0x3110, 0x3127, 0x3124 , 0x0}},                                                       //J_I_ANG
-       { 0xA0E2, { 0x3110, 0x3127, 0x3125 , 0x0}},                                                       //J_I_ENG
-       { 0xA0E3, { 0x3110, 0x3129, 0x0 , 0x0}},                                                                                  //J_IU
-       { 0xA0E4, { 0x3110, 0x3129, 0x311D , 0x0}},                                                       //J_IU_EH
-       { 0xA0E5, { 0x3110, 0x3129, 0x3122 , 0x0}},                                                       //J_IU_AN
-       { 0xA0E6, { 0x3110, 0x3129, 0x3123 , 0x0}},                                                       //J_IU_EN
-       { 0xA0E7, { 0x3110, 0x3129, 0x3125 , 0x0}},                                                       //J_IU_ENG
-       { 0xA0E8, { 0x3111, 0x0, 0x0 , 0x0}},                                                                                                     //Q
-       { 0xA0E9, { 0x3111, 0x3127, 0x0 , 0x0}},                                                                                  //Q_I
-       { 0xA0EA, { 0x3111, 0x3127, 0x311A , 0x0}},                                                       //Q_I_A
-       { 0xA0EB, { 0x3111, 0x3127, 0x311D , 0x0}},                                                       //Q_I_EH
-       { 0xA0EC, { 0x3111, 0x3127, 0x3120 , 0x0}},                                                       //Q_I_AU
-       { 0xA0ED, { 0x3111, 0x3127, 0x3121 , 0x0}},                                                       //Q_I_OU
-       { 0xA0EE, { 0x3111, 0x3127, 0x3122 , 0x0}},                                                       //Q_I_AN
-       { 0xA0EF, { 0x3111, 0x3127, 0x3123 , 0x0}},                                                       //Q_I_EN
-       { 0xA0F0, { 0x3111, 0x3127, 0x3124 , 0x0}},                                                       //Q_I_ANG
-       { 0xA0F1, { 0x3111, 0x3127, 0x3125 , 0x0}},                                                       //Q_I_ENG
-       { 0xA0F2, { 0x3111, 0x3129, 0x0 , 0x0}},                                                                                  //Q_IU
-       { 0xA0F3, { 0x3111, 0x3129, 0x311D , 0x0}},                                                       //Q_IU_EH
-       { 0xA0F4, { 0x3111, 0x3129, 0x3122 , 0x0}},                                                       //Q_IU_AN
-       { 0xA0F5, { 0x3111, 0x3129, 0x3123 , 0x0}},                                                       //Q_IU_EN
-       { 0xA0F6, { 0x3111, 0x3129, 0x3125 , 0x0}},                                                       //Q_IU_ENG
-       { 0xA0F7, { 0x3112, 0x0 , 0x0, 0x0}},                                                                                                     //X
-       { 0xA0F8, { 0x3112, 0x3127, 0x0 , 0x0}},                                                                                  //X_I
-       { 0xA0F9, { 0x3112, 0x3127, 0x311A , 0x0}},                                                       //X_I_A
-       { 0xA0FA, { 0x3112, 0x3127, 0x311D , 0x0}},                                                       //X_I_EH
-       { 0xA0FB, { 0x3112, 0x3127, 0x3120 , 0x0}},                                                       //X_I_AU
-       { 0xA0FC, { 0x3112, 0x3127, 0x3121 , 0x0}},                                                       //X_I_OU
-       { 0xA0FD, { 0x3112, 0x3127, 0x3122 , 0x0}},                                                       //X_I_AN
-       { 0xA0FE, { 0x3112, 0x3127, 0x3123 , 0x0}},                                                       //X_I_EN
-       { 0xA0FF, { 0x3112, 0x3127, 0x3124 , 0x0}},                                                       //X_I_ANG
-       { 0xA100, { 0x3112, 0x3127, 0x3125 , 0x0}},                                                       //X_I_ENG
-       { 0xA101, { 0x3112, 0x3129, 0x0 , 0x0}},                                                                                  //X_IU
-       { 0xA102, { 0x3112, 0x3129, 0x311D , 0x0}},                                                       //X_IU_EH
-       { 0xA103, { 0x3112, 0x3129, 0x3122 , 0x0}},                                                       //X_IU_AN
-       { 0xA104, { 0x3112, 0x3129, 0x3123 , 0x0}},                                                       //X_IU_EN
-       { 0xA105, { 0x3112, 0x3129, 0x3125 , 0x0}},                                                       //X_IU_ENG
-       { 0xA106, { 0x3113 , 0x0, 0x0, 0x0}},                                                                                                    //ZH
-       { 0xA107, { 0x3113, 0x3128 , 0x0, 0x0}},                                                                                 //ZH_U
-       { 0xA108, { 0x3113, 0x3128, 0x311A , 0x0}},                                                      //ZH_U_A
-       { 0xA109, { 0x3113, 0x3128, 0x311B , 0x0}},                                                      //ZH_U_O
-       { 0xA10A, { 0x3113, 0x3128, 0x311E , 0x0}},                                                      //ZH_U_AI
-       { 0xA10B, { 0x3113, 0x3128, 0x311F , 0x0}},                                                      //ZH_U_EI
-       { 0xA10C, { 0x3113, 0x3128, 0x3122 , 0x0}},                                                      //ZH_U_AN
-       { 0xA10D, { 0x3113, 0x3128, 0x3123 , 0x0}},                                                      //ZH_U_EN
-       { 0xA10E, { 0x3113, 0x3128, 0x3124 , 0x0}},                                                      //ZH_U_ANG
-       { 0xA10F, { 0x3113, 0x3128, 0x3125 , 0x0}},                                                      //ZH_U_ENG
-       { 0xA110, { 0x3113, 0x311A , 0x0, 0x0}},                                                                                 //ZH_A
-       { 0xA111, { 0x3113, 0x311C , 0x0, 0x0}},                                                                                 //ZH_E
-       { 0xA112, { 0x3113, 0x311E , 0x0, 0x0}},                                                                                 //ZH_AI
-       { 0xA113, { 0x3113, 0x3120 , 0x0, 0x0}},                                                                                 //ZH_AU
-       { 0xA114, { 0x3113, 0x3121 , 0x0, 0x0}},                                                                                 //ZH_OU
-       { 0xA115, { 0x3113, 0x3122 , 0x0, 0x0}},                                                                                 //ZH_AN
-       { 0xA116, { 0x3113, 0x3123 , 0x0, 0x0}},                                                                                 //ZH_EN
-       { 0xA117, { 0x3113, 0x3124 , 0x0, 0x0}},                                                                                 //ZH_ANG
-       { 0xA118, { 0x3113, 0x3125 , 0x0, 0x0}},                                                                                 //ZH_ENG
-       { 0xA119, { 0x3114, 0x0 , 0x0, 0x0}},                                                                                   // CH
-       { 0xA11A, { 0x3114, 0x3128 , 0x0, 0x0}},                                        // CH_U
-       { 0xA11B, { 0x3114, 0x3128, 0x311B , 0x0}},                      // CH_U_O
-       { 0xA11C, { 0x3114, 0x3128, 0x311E , 0x0}},                      // CH_U_AI
-       { 0xA11D, { 0x3114, 0x3128, 0x311F , 0x0}},                      // CH_U_EI
-       { 0xA11E, { 0x3114, 0x3128, 0x3122 , 0x0}},                      // CH_U_AN
-       { 0xA11F, { 0x3114, 0x3128, 0x3123 , 0x0}},                      // CH_U_EN
-       { 0xA120, { 0x3114, 0x3128, 0x3124 , 0x0}},                      // CH_U_ANG
-       { 0xA121, { 0x3114, 0x3128, 0x3125 , 0x0}},                      // CH_U_ENG
-       { 0xA122, { 0x3114, 0x311A , 0x0, 0x0}},                         // CH_A
-       { 0xA123, { 0x3114, 0x311C , 0x0, 0x0}},                         // CH_E
-       { 0xA124, { 0x3114, 0x311E , 0x0, 0x0}},                         // CH_AI
-       { 0xA125, { 0x3114, 0x3120 , 0x0, 0x0}},                         // CH_AU
-       { 0xA126, { 0x3114, 0x3121 , 0x0, 0x0}},                         // CH_OU
-       { 0xA127, { 0x3114, 0x3122 , 0x0, 0x0}},                         // CH_AN
-       { 0xA128, { 0x3114, 0x3123 , 0x0, 0x0}},                         // CH_EN
-       { 0xA129, { 0x3114, 0x3124 , 0x0, 0x0}},                         // CH_ANG
-       { 0xA12A, { 0x3114, 0x3125 , 0x0, 0x0}},                         // CH_ENG
-       { 0xA12B, { 0x3115 , 0x0, 0x0, 0x0}},                                    // SH
-       { 0xA12C, { 0x3115, 0x3128 , 0x0, 0x0}},                         // SH_U
-       { 0xA12D, { 0x3115, 0x3128, 0x311A , 0x0}},                      // SH_U_A
-       { 0xA12E, { 0x3115, 0x3128, 0x311B , 0x0}},                      // SH_U_O
-       { 0xA12F, { 0x3115, 0x3128, 0x311E , 0x0}},                      // SH_U_AI
-       { 0xA130, { 0x3115, 0x3128, 0x311F , 0x0}},                      // SH_U_EI
-       { 0xA131, { 0x3115, 0x3128, 0x3122 , 0x0}},                      // SH_U_AN
-       { 0xA132, { 0x3115, 0x3128, 0x3123 , 0x0}},                      // SH_U_EN
-       { 0xA133, { 0x3115, 0x3128, 0x3124 , 0x0}},                      // SH_U_ANG
-       { 0xA134, { 0x3115, 0x311A , 0x0, 0x0}},                         // SH_A
-       { 0xA135, { 0x3115, 0x311C , 0x0, 0x0}},                         // SH_E
-       { 0xA136, { 0x3115, 0x311E , 0x0, 0x0}},                         // SH_AI
-       { 0xA137, { 0x3115, 0x311F , 0x0, 0x0}},                         // SH_EI
-       { 0xA138, { 0x3115, 0x3120 , 0x0, 0x0}},                         // SH_AU
-       { 0xA139, { 0x3115, 0x3121 , 0x0, 0x0}},                         // SH_OU
-       { 0xA13A, { 0x3115, 0x3122 , 0x0, 0x0}},                         // SH_AN
-       { 0xA13B, { 0x3115, 0x3123 , 0x0, 0x0}},                         // SH_EN
-       { 0xA13C, { 0x3115, 0x3124 , 0x0, 0x0}},                         // SH_ANG
-       { 0xA13D, { 0x3115, 0x3125 , 0x0, 0x0}},                         // SH_ENG
-       { 0xA13E, { 0x3116 , 0x0, 0x0, 0x0}},                                                   // R
-       { 0xA13F, { 0x3116, 0x3128 , 0x0, 0x0}},                         // R_U
-       { 0xA140, { 0x3116, 0x3128, 0x311B , 0x0}},                      // R_U_O
-       { 0xA141, { 0x3116, 0x3128, 0x311F , 0x0}},                      // R_U_EI
-       { 0xA142, { 0x3116, 0x3128, 0x3122 , 0x0}},                      // R_U_AN
-       { 0xA143, { 0x3116, 0x3128, 0x3123 , 0x0}},                      // R_U_EN
-       { 0xA144, { 0x3116, 0x3128, 0x3125 , 0x0}},                      // R_U_ENG
-       { 0xA145, { 0x3116, 0x311C , 0x0, 0x0}},                         // R_E
-       { 0xA146, { 0x3116, 0x3120 , 0x0, 0x0}},                         // R_AU
-       { 0xA147, { 0x3116, 0x3121 , 0x0, 0x0}},                         // R_OU
-       { 0xA148, { 0x3116, 0x3122 , 0x0, 0x0}},                         // R_AN
-       { 0xA149, { 0x3116, 0x3123 , 0x0, 0x0}},                         // R_EN
-       { 0xA14A, { 0x3116, 0x3124 , 0x0, 0x0}},                         // R_ANG
-       { 0xA14B, { 0x3116, 0x3125 , 0x0, 0x0}},                         // R_ENG
-       { 0xA14C, { 0x3117, 0x0 , 0x0, 0x0}},                                                                                             //Z
-       { 0xA14D, { 0x3117, 0x3128 , 0x0, 0x0}},                                                                          //Z_U
-       { 0xA14E, { 0x3117, 0x3128, 0x311B , 0x0}},                                               //Z_U_O
-       { 0xA14F, { 0x3117, 0x3128, 0x311F , 0x0}},                                     //Z_U_EI
-       { 0xA150, { 0x3117, 0x3128, 0x3122 , 0x0}},                                               //Z_U_AN
-       { 0xA151, { 0x3117, 0x3128, 0x3123 , 0x0}},                                                       //Z_U_EN
-       { 0xA152, { 0x3117, 0x3128, 0x3125 , 0x0}},                                               //Z_U_ENG
-       { 0xA153, { 0x3117, 0x311A , 0x0, 0x0}},                                                                          //Z_A
-       { 0xA154, { 0x3117, 0x311C , 0x0, 0x0}},                                                                 //Z_E
-       { 0xA155, { 0x3117, 0x311E , 0x0, 0x0}},                                                                          //Z_AI
-       { 0xA156, { 0x3117, 0x311F , 0x0, 0x0}},                                                                 //Z_EI
-       { 0xA157, { 0x3117, 0x3120 , 0x0, 0x0}},                                                                 //Z_AU
-       { 0xA158, { 0x3117, 0x3121 , 0x0, 0x0}},                                                                                //Z_OU
-       { 0xA159, { 0x3117, 0x3122 , 0x0, 0x0}},                                                                                //Z_AN
-       { 0xA15A, { 0x3117, 0x3123 , 0x0, 0x0}},                                                                                //Z_EN
-       { 0xA15B, { 0x3117, 0x3124 , 0x0, 0x0}},                                                                                //Z_ANG
-       { 0xA15C, { 0x3117, 0x3125 , 0x0, 0x0}},                                                                                //Z_ENG
-       { 0xA15D, { 0x3118, 0x0 , 0x0, 0x0}},                                                                           //C
-       { 0xA15E, { 0x3118, 0x3128 , 0x0, 0x0}},                                                                                //C_U
-       { 0xA15F, { 0x3118, 0x3128, 0x311B , 0x0}},                                                     //C_U_O
-       { 0xA160, { 0x3118, 0x3128, 0x311F , 0x0}},                                                     //C_U_EI
-       { 0xA161, { 0x3118, 0x3128, 0x3122 , 0x0}},                                                     //C_U_AN
-       { 0xA162, { 0x3118, 0x3128, 0x3123 , 0x0}},                                                     //C_U_EN
-       { 0xA163, { 0x3118, 0x3128, 0x3125 , 0x0}},                                                     //C_U_ENG
-       { 0xA164, { 0x3118, 0x311A , 0x0, 0x0}},                                                                                 //C_A
-       { 0xA165, { 0x3118, 0x311C , 0x0, 0x0}},                                                                                 //C_E
-       { 0xA166, { 0x3118, 0x311E , 0x0, 0x0}},                                                                                 //C_AI
-       { 0xA167, { 0x3118, 0x3120 , 0x0, 0x0}},                                                                                 //C_AU
-       { 0xA168, { 0x3118, 0x3121 , 0x0, 0x0}},                                                                                 //C_OU
-       { 0xA169, { 0x3118, 0x3122 , 0x0, 0x0}},                                                                                 //C_AN
-       { 0xA16A, { 0x3118, 0x3123 , 0x0, 0x0}},                                                                                 //C_EN
-       { 0xA16B, { 0x3118, 0x3124 , 0x0, 0x0}},                                                                                //C_ANG
-       { 0xA16C, { 0x3118, 0x3125 , 0x0, 0x0}},                                                                                //C_ENG
-       { 0xA16D, { 0x3119 , 0x0, 0x0, 0x0}},                                           // S
-       { 0xA16E, { 0x3119, 0x3128 , 0x0, 0x0}},                                          // S_U
-       { 0xA16F, { 0x3119, 0x3128, 0x311B , 0x0}},              // S_U_O
-       { 0xA170, { 0x3119, 0x3128, 0x311F , 0x0}},              // S_U_EI
-       { 0xA171, { 0x3119, 0x3128, 0x3122 , 0x0}},              // S_U_AN
-       { 0xA172, { 0x3119, 0x3128, 0x3123 , 0x0}},              // S_U_EN
-       { 0xA173, { 0x3119, 0x3128, 0x3125 , 0x0}},              // S_U_ENG
-       { 0xA174, { 0x3119, 0x311A , 0x0, 0x0}},                 // S_A
-       { 0xA175, { 0x3119, 0x311C , 0x0, 0x0}},                 // S_E
-       { 0xA176, { 0x3119, 0x311E , 0x0, 0x0}},                 // S_AI
-       { 0xA177, { 0x3119, 0x3120 , 0x0, 0x0}},                 // S_AU
-       { 0xA178, { 0x3119, 0x3121 , 0x0, 0x0}},                 // S_OU
-       { 0xA179, { 0x3119, 0x3122 , 0x0, 0x0}},                 // S_AN
-       { 0xA17A, { 0x3119, 0x3123 , 0x0, 0x0}},                 // S_EN
-       { 0xA17B, { 0x3119, 0x3124 , 0x0, 0x0}},                 // S_ANG
-       { 0xA17C, { 0x3119, 0x3125 , 0x0, 0x0}},                 // S_ENG
-       { 0xA17D, { 0x3127, 0x0, 0x0} },                                 // I
-       { 0xA17E, { 0x3127, 0x311A , 0x0, 0x0}},                 // I_A
-       { 0xA17F, { 0x3127, 0x311B , 0x0, 0x0}},                         // I_O
-       { 0xA180, { 0x3127, 0x311D , 0x0, 0x0}},                         // I_EH
-       { 0xA181, { 0x3127, 0x311E , 0x0, 0x0}},                                // I_AI
-       { 0xA182, { 0x3127, 0x3120 , 0x0, 0x0}},                         // I_AU
-       { 0xA183, { 0x3127, 0x3121 , 0x0, 0x0}},                         // I_OU
-       { 0xA184, { 0x3127, 0x3122 , 0x0, 0x0}},                 // I_AN
-       { 0xA185, { 0x3127, 0x3123 , 0x0, 0x0}},                 // I_EN
-       { 0xA186, { 0x3127, 0x3124 , 0x0, 0x0}},                  // I_ANG
-       { 0xA187, { 0x3127, 0x3125 , 0x0, 0x0}},                  // I_ENG
-       { 0xA188, { 0x3128 , 0x0, 0x0, 0x0}},                                                                           // U
-       { 0xA189, { 0x3128, 0x311A , 0x0, 0x0}},                                                        // U_A
-       { 0xA18A, { 0x3128, 0x311B , 0x0, 0x0}},                                                         // U_O
-       { 0xA18B, { 0x3128, 0x311E , 0x0, 0x0}},                                                         // U_AI
-       { 0xA18C, { 0x3128, 0x311F , 0x0, 0x0}},                                                         // U_EI
-       { 0xA18D, { 0x3128, 0x3122 , 0x0, 0x0}},                                                         // U_AN
-       { 0xA18E, { 0x3128, 0x3123 , 0x0, 0x0}},                                                         // U_EN
-       { 0xA18F, { 0x3128, 0x3124 , 0x0, 0x0}},                                                         // U_ANG
-       { 0xA190, { 0x3128, 0x3125 , 0x0, 0x0}},                                                          // U_ENG
-       { 0xA191, { 0x3129, 0x0, 0x0 } },                                                                                 // IU
-       { 0xA192, { 0x3129, 0x311D , 0x0, 0x0}},                                                          // IU_EH
-       { 0xA193, { 0x3129, 0x3122 , 0x0, 0x0}},                                                          // IU_AN
-       { 0xA194, { 0x3129, 0x3123 , 0x0, 0x0}},                                                          // IU_EN
-       { 0xA195, { 0x3129, 0x3125 , 0x0, 0x0}},                                                          // IU_ENG
-       { 0xA196, { 0x311A , 0x0, 0x0, 0x0}},                                                                             // A
-       { 0xA197, { 0x311B , 0x0, 0x0, 0x0}},                                                                             // O
-       { 0xA198, { 0x311C , 0x0, 0x0, 0x0}},                                                                             // E
-       { 0xA199, { 0x311E , 0x0, 0x0, 0x0}},                                                                             // AI
-       { 0xA19A, { 0x311F , 0x0, 0x0, 0x0}},                                                                             // EI
-       { 0xA19B, { 0x3120 , 0x0, 0x0, 0x0}},                                                                             // AU
-       { 0xA19C, { 0x3121 , 0x0, 0x0, 0x0}},                                                                             // OU
-       { 0xA19D, { 0x3122 , 0x0, 0x0, 0x0}},                                                                             // AN
-       { 0xA19E, { 0x3123 , 0x0, 0x0, 0x0}},                                                                             // EN
-       { 0xA19F, { 0x3124 , 0x0, 0x0, 0x0}},                                                                             // ANG
-       { 0xA1A0, { 0x3125 , 0x0, 0x0, 0x0}},                                                                                   // ENG
-       { 0xA1A1, { 0x3126 , 0x0, 0x0, 0x0}},                                                                             // ER
-       { 0xA1A2, { 0x311D , 0x0, 0x0, 0x0}},                                                                             // ER
+       { 0xA001, { 0x3105, 0x0, 0x0, 0x0} },                   /* B */
+       { 0xA002, { 0x3105, 0x3127, 0x0, 0x0} },                /* B_I */
+       { 0xA003, { 0x3105, 0x3127, 0x311D, 0x0} },             /* B_I_EH */
+       { 0xA004, { 0x3105, 0x3127, 0x3120, 0x0} },             /* B_I_AU */
+       { 0xA005, { 0x3105, 0x3127, 0x3122, 0x0} },             /* B_I_AN */
+       { 0xA006, { 0x3105, 0x3127, 0x3123, 0x0} },             /* B_I_EN */
+       { 0xA007, { 0x3105, 0x3127, 0x3125, 0x0} },             /* B_I_ENG */
+       { 0xA008, { 0x3105, 0x3128, 0x0, 0x0} },                /* B_U */
+       { 0xA009, { 0x3105, 0x311A, 0x0, 0x0} },                /* B_A */
+       { 0xA00A, { 0x3105, 0x311B, 0x0, 0x0} },                /* B_O */
+       { 0xA00B, { 0x3105, 0x311E, 0x0, 0x0} },                /* B_AI */
+       { 0xA00C, { 0x3105, 0x311F, 0x0, 0x0} },                /* B_EI */
+       { 0xA00D, { 0x3105, 0x3120, 0x0, 0x0} },                /* B_AU */
+       { 0xA00E, { 0x3105, 0x3122, 0x0, 0x0} },                /* B_AN */
+       { 0xA00F, { 0x3105, 0x3123, 0x0, 0x0} },                /* B_EN */
+       { 0xA010, { 0x3105, 0x3124, 0x0, 0x0} },                /* B_ANG */
+       { 0xA011, { 0x3105, 0x3125, 0x0, 0x0} },                /* B_ENG */
+       { 0xA012, { 0x3106, 0x0, 0x0} },                                /* P */
+       { 0xA013, { 0x3106, 0x3127, 0x0, 0x0} },                /* P_I */
+       { 0xA014, { 0x3106, 0x3127, 0x311D, 0x0} },             /* P_I_EH */
+       { 0xA015, { 0x3106, 0x3127, 0x3120, 0x0} },             /* P_I_AU */
+       { 0xA016, { 0x3106, 0x3127, 0x3122, 0x0} },             /* P_I_AN */
+       { 0xA017, { 0x3106, 0x3127, 0x3123, 0x0} },             /* P_I_EN */
+       { 0xA018, { 0x3106, 0x3127, 0x3125, 0x0} },             /* P_I_ENG */
+       { 0xA019, { 0x3106, 0x3128, 0x0, 0x0} },                /* P_U */
+       { 0xA01A, { 0x3106, 0x311A, 0x0, 0x0} },                /* P_A */
+       { 0xA01B, { 0x3106, 0x311B, 0x0, 0x0} },                /* P_O */
+       { 0xA01C, { 0x3106, 0x311E, 0x0, 0x0} },                /* P_AI */
+       { 0xA01D, { 0x3106, 0x311F, 0x0, 0x0} },                /* P_EI */
+       { 0xA01E, { 0x3106, 0x3120, 0x0, 0x0} },                /* P_AU */
+       { 0xA01F, { 0x3106, 0x3121, 0x0, 0x0} },                /* P_OU */
+       { 0xA020, { 0x3106, 0x3122, 0x0, 0x0} },                /* P_AN */
+       { 0xA021, { 0x3106, 0x3123, 0x0, 0x0} },                /* P_EN */
+       { 0xA022, { 0x3106, 0x3124, 0x0, 0x0} },                /* P_ANG */
+       { 0xA023, { 0x3106, 0x3125, 0x0, 0x0} },                /* P_ENG */
+       { 0xA024, { 0x3107, 0x0, 0x0, 0x0} },                   /* M */
+       { 0xA025, { 0x3107, 0x3127, 0x0, 0x0} },                /* M_I */
+       { 0xA026, { 0x3107, 0x3127, 0x311D, 0x0} },             /* M_I_EH */
+       { 0xA027, { 0x3107, 0x3127, 0x3120, 0x0} },             /* M_I_AU */
+       { 0xA028, { 0x3107, 0x3127, 0x3121, 0x0} },             /* M_I_OU */
+       { 0xA029, { 0x3107, 0x3127, 0x3122, 0x0} },             /* M_I_AN */
+       { 0xA02A, { 0x3107, 0x3127, 0x3123, 0x0} },             /* M_I_EN */
+       { 0xA02B, { 0x3107, 0x3127, 0x3124, 0x0} },             /* M_I_ENG */
+       { 0xA02C, { 0x3107, 0x3128, 0x0} },                             /* M_U */
+       { 0xA02D, { 0x3107, 0x311A, 0x0, 0x0} },                /* M_A */
+       { 0xA02E, { 0x3107, 0x311B, 0x0, 0x0} },                /* M_O */
+       { 0xA02F, { 0x3107, 0x311C, 0x0, 0x0} },                /* M_E */
+       { 0xA030, { 0x3107, 0x311E, 0x0, 0x0} },                /* M_AI */
+       { 0xA031, { 0x3107, 0x311F, 0x0, 0x0} },                /* M_EI */
+       { 0xA032, { 0x3107, 0x3120, 0x0, 0x0} },                /* M_AU */
+       { 0xA033, { 0x3107, 0x3121, 0x0, 0x0} },                /* M_OU */
+       { 0xA034, { 0x3107, 0x3122, 0x0, 0x0} },                /* M_AN */
+       { 0xA035, { 0x3107, 0x3123, 0x0, 0x0} },                /* M_EN */
+       { 0xA036, { 0x3107, 0x3124, 0x0, 0x0} },                /* M_ANG */
+       { 0xA037, { 0x3107, 0x3125, 0x0, 0x0} },                /* M_ENG */
+       { 0xA038, { 0x3108, 0x0, 0x0, 0x0} },                   /* F */
+       { 0xA039, { 0x3108, 0x3128, 0x0, 0x0} },                /* F_U */
+       { 0xA03A, { 0x3108, 0x311A, 0x0, 0x0} },                /* F_A */
+       { 0xA03B, { 0x3108, 0x311B, 0x0, 0x0} },                /* F_O */
+       { 0xA03C, { 0x3108, 0x311F, 0x0, 0x0} },                /* F_EI */
+       { 0xA03D, { 0x3108, 0x3121, 0x0, 0x0} },                /* F_OU */
+       { 0xA03E, { 0x3108, 0x3122, 0x0, 0x0} },                /* F_AN */
+       { 0xA03F, { 0x3108, 0x3123, 0x0, 0x0} },                /* F_EN */
+       { 0xA040, { 0x3108, 0x3124, 0x0, 0x0} },                /* F_ANG */
+       { 0xA041, { 0x3108, 0x3125, 0x0, 0x0} },                /* F_ENG */
+       { 0xA042, { 0x3109, 0x0, 0x0, 0x0} },                   /* D */
+       { 0xA043, { 0x3109, 0x3127, 0x0, 0x0} },                /* D_I */
+       { 0xA044, { 0x3109, 0x3127, 0x311A, 0x0} },             /* D_I_A */
+       { 0xA045, { 0x3109, 0x3127, 0x311D, 0x0} },             /*D_I_EH */
+       { 0xA046, { 0x3109, 0x3127, 0x3120, 0x0} },             /*D_I_AU */
+       { 0xA047, { 0x3109, 0x3127, 0x3121, 0x0} },             /*D_I_OU */
+       { 0xA048, { 0x3109, 0x3127, 0x3122, 0x0} },             /*D_I_AN */
+       { 0xA049, { 0x3109, 0x3127, 0x3124, 0x0} },             /*D_I_ENG */
+       { 0xA04A, { 0x3109, 0x3128, 0x0, 0x0} },                /*D_U */
+       { 0xA04B, { 0x3109, 0x3128, 0x311B, 0x0} },             /*D_U_O */
+       { 0xA04C, { 0x3109, 0x3128, 0x311F, 0x0} },             /*D_U_EI */
+       { 0xA04D, { 0x3109, 0x3128, 0x3122, 0x0} },             /*D_U_AN */
+       { 0xA04E, { 0x3109, 0x3128, 0x3123, 0x0} },             /*D_U_EN */
+       { 0xA04F, { 0x3109, 0x3128, 0x3125, 0x0} },             /*D_U_ENG */
+       { 0xA050, { 0x3109, 0x311A, 0x0, 0x0} },                /*D_A */
+       { 0xA051, { 0x3109, 0x311C, 0x0, 0x0} },                /*D_E */
+       { 0xA052, { 0x3109, 0x311E, 0x0, 0x0} },                /*D_AI */
+       { 0xA053, { 0x3109, 0x3120, 0x0, 0x0} },                /*D_AU */
+       { 0xA054, { 0x3109, 0x3121, 0x0, 0x0} },                /*D_OU */
+       { 0xA055, { 0x3109, 0x3122, 0x0, 0x0} },                /*D_AN */
+       { 0xA056, { 0x3109, 0x3124, 0x0, 0x0} },                /*D_ANG */
+       { 0xA057, { 0x3109, 0x3125, 0x0, 0x0} },                /*D_ENG */
+       { 0xA058, { 0x310A, 0x0, 0x0, 0x0} },                   /*T */
+       { 0xA059, { 0x310A, 0x3127, 0x0, 0x0} },                /*T_I */
+       { 0xA05A, { 0x310A, 0x3127, 0x311D, 0x0} },             /*T_I_EH */
+       { 0xA05B, { 0x310A, 0x3127, 0x3120, 0x0} },             /*T_I_AU */
+       { 0xA05C, { 0x310A, 0x3127, 0x3122, 0x0} },             /*T_I_AN */
+       { 0xA05D, { 0x310A, 0x3127, 0x3125, 0x0} },             /*T_I_ENG */
+       { 0xA05E, { 0x310A, 0x3128, 0x0, 0x0} },                /*T_U */
+       { 0xA05F, { 0x310A, 0x3128, 0x311B, 0x0} },             /*T_U_O */
+       { 0xA060, { 0x310A, 0x3128, 0x311F, 0x0} },             /*T_U_EI */
+       { 0xA061, { 0x310A, 0x3128, 0x3122, 0x0} },             /*T_U_AN */
+       { 0xA062, { 0x310A, 0x3128, 0x3123, 0x0} },             /*T_U_EN */
+       { 0xA063, { 0x310A, 0x3127, 0x3125, 0x0} },             /*T_U_ENG */
+       { 0xA064, { 0x310A, 0x311A, 0x0, 0x0} },                /*T_A */
+       { 0xA065, { 0x310A, 0x311C, 0x0, 0x0} },                /*T_E */
+       { 0xA066, { 0x310A, 0x311E, 0x0, 0x0} },                /*T_AI */
+       { 0xA067, { 0x310A, 0x3120, 0x0, 0x0} },                /*T_AU */
+       { 0xA068, { 0x310A, 0x3121, 0x0, 0x0} },                /*T_OU */
+       { 0xA069, { 0x310A, 0x3122, 0x0, 0x0} },                /*T_AN */
+       { 0xA06A, { 0x310A, 0x3124, 0x0, 0x0} },                /*T_ANG */
+       { 0xA06B, { 0x310A, 0x3125, 0x0, 0x0} },                /*T_ENG */
+       { 0xA06C, { 0x310B, 0x0, 0x0, 0x0} },                   /*N */
+       { 0xA06D, { 0x310B, 0x3127, 0x0, 0x0} },                /*N_I */
+       { 0xA06E, { 0x310B, 0x3127, 0x311D, 0x0} },             /*N_I_EH */
+       { 0xA06F, { 0x310B, 0x3127, 0x3120, 0x0} },             /*N_I_AU */
+       { 0xA070, { 0x310B, 0x3127, 0x3121, 0x0} },             /*N_I_OU */
+       { 0xA071, { 0x310B, 0x3127, 0x3122, 0x0} },             /*N_I_AN */
+       { 0xA072, { 0x310B, 0x3127, 0x3123, 0x0} },             /*N_I_EN */
+       { 0xA073, { 0x310B, 0x3127, 0x3124, 0x0} },             /*N_I_ANG */
+       { 0xA074, { 0x310B, 0x3127, 0x3125, 0x0} },             /*N_I_ENG */
+       { 0xA075, { 0x310B, 0x3128, 0x0, 0x0} },                /*N_U */
+       { 0xA076, { 0x310B, 0x3128, 0x311B, 0x0} },             /*N_U_O */
+       { 0xA077, { 0x310B, 0x3128, 0x3122, 0x0} },             /*N_U_AN */
+       { 0xA078, { 0x310B, 0x3128, 0x3125, 0x0} },             /*N_U_ENG */
+       { 0xA079, { 0x310B, 0x3129, 0x0, 0x0} },                /*N_IU */
+       { 0xA07A, { 0x310B, 0x3129, 0x311D, 0x0} },             /*N_IU_EH */
+       { 0xA07B, { 0x310B, 0x311A, 0x0, 0x0} },                /*N_A */
+       { 0xA07C, { 0x310B, 0x311C, 0x0, 0x0} },                /*N_E */
+       { 0xA07D, { 0x310B, 0x311E, 0x0, 0x0} },                /*N_AI */
+       { 0xA07E, { 0x310B, 0x311F, 0x0, 0x0} },                /*N_EI */
+       { 0xA07F, { 0x310B, 0x3120, 0x0, 0x0} },                /*N_AU */
+       { 0xA080, { 0x310B, 0x3121, 0x0, 0x0} },                /*N_OU */
+       { 0xA081, { 0x310B, 0x3122, 0x0, 0x0} },                /*N_AN */
+       { 0xA082, { 0x310B, 0x3123, 0x0, 0x0} },                /*N_EN */
+       { 0xA083, { 0x310B, 0x3124, 0x0, 0x0} },                /*N_ANG */
+       { 0xA084, { 0x310B, 0x3125, 0x0, 0x0} },                /*N_ENG */
+       { 0xA085, { 0x310C, 0x0, 0x0, 0x0} },                   /*L */
+       { 0xA086, { 0x310C, 0x3127, 0x0, 0x0} },                /*L_I */
+       { 0xA087, { 0x310C, 0x3127, 0x311D, 0x0} },             /*L_I_EH */
+       { 0xA088, { 0x310C, 0x3127, 0x3120, 0x0} },             /*L_I_AU */
+       { 0xA089, { 0x310C, 0x3127, 0x3121, 0x0} },             /*L_I_OU */
+       { 0xA08A, { 0x310C, 0x3127, 0x3122, 0x0} },             /*L_I_AN */
+       { 0xA08B, { 0x310C, 0x3127, 0x3123, 0x0} },             /*L_I_EN */
+       { 0xA08C, { 0x310C, 0x3127, 0x3124, 0x0} },             /*L_I_ANG */
+       { 0xA08D, { 0x310C, 0x3127, 0x3125, 0x0} },             /*L_I_ENG */
+       { 0xA08E, { 0x310C, 0x3128, 0x0, 0x0} },                /*L_U */
+       { 0xA08F, { 0x310C, 0x3128, 0x311B, 0x0} },             /*L_U_O */
+       { 0xA090, { 0x310C, 0x3128, 0x3122, 0x0} },             /*L_U_AN */
+       { 0xA091, { 0x310C, 0x3128, 0x3123, 0x0} },             /*L_U_EN */
+       { 0xA092, { 0x310C, 0x3128, 0x3125, 0x0} },             /*L_U_ENG */
+       { 0xA093, { 0x310C, 0x3129, 0x0, 0x0} },                /* L_IU */
+       { 0xA094, { 0x310C, 0x3129, 0x311D, 0x0} },             /* L_IU_EH */
+       { 0xA095, { 0x310C, 0x311A, 0x0, 0x0} },                /* L_A */
+       { 0xA096, { 0x310C, 0x311C, 0x0, 0x0} },                /* L_E */
+       { 0xA097, { 0x310C, 0x311E, 0x0, 0x0} },                /* L_AI */
+       { 0xA098, { 0x310C, 0x311F, 0x0, 0x0} },                /* L_EI */
+       { 0xA099, { 0x310C, 0x3120, 0x0, 0x0} },                /* L_AU */
+       { 0xA09A, { 0x310C, 0x3121, 0x0, 0x0} },                /* L_OU */
+       { 0xA09B, { 0x310C, 0x3122, 0x0, 0x0} },                /* L_AN */
+       { 0xA09C, { 0x310C, 0x3124, 0x0, 0x0} },                /* L_ANG */
+       { 0xA09D, { 0x310C, 0x3125, 0x0, 0x0} },                /* L_ENG */
+       { 0xA09E, { 0x310D, 0x0, 0x0, 0x0} },                   /* G */
+       { 0xA09F, { 0x310D, 0x3128, 0x0, 0x0} },                /* G_U */
+       { 0xA0A0, { 0x310D, 0x3128, 0x311A, 0x0} },             /* G_U_A */
+       { 0xA0A1, { 0x310D, 0x3128, 0x311B, 0x0} },             /* G_U_O */
+       { 0xA0A2, { 0x310D, 0x3128, 0x311E, 0x0} },             /* G_U_AI */
+       { 0xA0A3, { 0x310D, 0x3128, 0x311F, 0x0} },             /* G_U_EI */
+       { 0xA0A4, { 0x310D, 0x3128, 0x3122, 0x0} },             /* G_U_AN */
+       { 0xA0A5, { 0x310D, 0x3128, 0x3123, 0x0} },             /* G_U_EN */
+       { 0xA0A6, { 0x310D, 0x3128, 0x3124, 0x0} },             /* G_U_ANG */
+       { 0xA0A7, { 0x310D, 0x3128, 0x3125, 0x0} },             /* G_U_ENG */
+       { 0xA0A8, { 0x310D, 0x311A, 0x0, 0x0} },                /* G_A */
+       { 0xA0A9, { 0x310D, 0x311C, 0x0, 0x0} },                /* G_E */
+       { 0xA0AA, { 0x310D, 0x311E, 0x0, 0x0} },                /* G_AI */
+       { 0xA0AB, { 0x310D, 0x311F, 0x0, 0x0} },                /* G_EI */
+       { 0xA0AC, { 0x310D, 0x3120, 0x0, 0x0} },                /* G_AU */
+       { 0xA0AD, { 0x310D, 0x311B, 0x3128, 0x0} },             /* G_OU */
+       { 0xA0AE, { 0x310D, 0x3122, 0x0, 0x0} },                /* G_AN */
+       { 0xA0AF, { 0x310D, 0x3123, 0x0, 0x0} },                /* G_EN */
+       { 0xA0B0, { 0x310D, 0x3124, 0x0, 0x0} },                /* G_ANG */
+       { 0xA0B1, { 0x310D, 0x3125, 0x0, 0x0} },                /* G_ENG */
+       { 0xA0B2, { 0x310E, 0x0, 0x0, 0x0} },                   /* K */
+       { 0xA0B3, { 0x310E, 0x3128, 0x0, 0x0} },                /* K_U */
+       { 0xA0B4, { 0x310E, 0x3128, 0x311A, 0x0} },             /* K_U_A */
+       { 0xA0B5, { 0x310E, 0x3128, 0x311B, 0x0} },             /* K_U_O */
+       { 0xA0B6, { 0x310E, 0x3128, 0x311E, 0x0} },             /* K_U_AI */
+       { 0xA0B7, { 0x310E, 0x3128, 0x311F, 0x0} },             /* K_U_EI */
+       { 0xA0B8, { 0x310E, 0x3128, 0x3122, 0x0} },             /* K_U_AN */
+       { 0xA0B9, { 0x310E, 0x3128, 0x3123, 0x0} },             /* K_U_EN */
+       { 0xA0BA, { 0x310E, 0x3128, 0x3124, 0x0} },             /* K_U_ANG */
+       { 0xA0BB, { 0x310E, 0x3128, 0x3125, 0x0} },             /* K_U_ENG */
+       { 0xA0BC, { 0x310E, 0x311A, 0x0, 0x0} },                /* K_A */
+       { 0xA0BD, { 0x310E, 0x311C, 0x0, 0x0} },                /* K_E */
+       { 0xA0BE, { 0x310E, 0x312F, 0x0, 0x0} },                /* K_EI */
+       { 0xA0BF, { 0x310E, 0x3120, 0x0, 0x0} },                /* K_AU */
+       { 0xA0C0, { 0x310E, 0x3121, 0x0, 0x0} },                /* K_OU */
+       { 0xA0C1, { 0x310E, 0x3122, 0x0, 0x0} },                /* K_AN */
+       { 0xA0C2, { 0x310E, 0x3123, 0x0, 0x0} },                /* K_EN */
+       { 0xA0C3, { 0x310E, 0x3124, 0x0, 0x0} },                /* K_ANG */
+       { 0xA0C4, { 0x310E, 0x3125, 0x0, 0x0} },                /* K_ENG */
+       { 0xA0C5, { 0x310F, 0x0, 0x0, 0x0} },                   /*H */
+       { 0xA0C6, { 0x310F, 0x3128, 0x0, 0x0} },                /*H_U */
+       { 0xA0C7, { 0x310F, 0x3128, 0x311A, 0x0} },             /*H_U_A */
+       { 0xA0C8, { 0x310F, 0x3128, 0x311B, 0x0} },             /*H_U_O */
+       { 0xA0C9, { 0x310F, 0x3128, 0x311E, 0x0} },             /*H_U_AI */
+       { 0xA0CA, { 0x310F, 0x3128, 0x311F, 0x0} },             /*H_U_EI */
+       { 0xA0CB, { 0x310F, 0x3128, 0x3122, 0x0} },             /*H_U_AN */
+       { 0xA0CC, { 0x310F, 0x3128, 0x3123, 0x0} },             /*H_U_EN */
+       { 0xA0CD, { 0x310F, 0x3128, 0x3124, 0x0} },             /*H_U_ANG */
+       { 0xA0CE, { 0x310F, 0x3128, 0x3125, 0x0} },             /*H_U_ENG */
+       { 0xA0CF, { 0x310F, 0x311A, 0x0, 0x0} },                /*H_A */
+       { 0xA0D0, { 0x310F, 0x311C, 0x0, 0x0} },                /*H_E */
+       { 0xA0D1, { 0x310F, 0x311E, 0x0, 0x0} },                /*H_AI */
+       { 0xA0D2, { 0x310F, 0x311F, 0x0, 0x0} },                /*H_EI */
+       { 0xA0D3, { 0x310F, 0x3120, 0x0, 0x0} },                /*H_AU */
+       { 0xA0D4, { 0x310F, 0x3121, 0x0, 0x0} },                /*H_OU */
+       { 0xA0D5, { 0x310F, 0x3122, 0x0, 0x0} },                /*H_AN */
+       { 0xA0D6, { 0x310F, 0x3123, 0x0, 0x0} },                /*H_EN */
+       { 0xA0D7, { 0x310F, 0x3124, 0x0, 0x0} },                /*H_ANG */
+       { 0xA0D8, { 0x310F, 0x3125, 0x0, 0x0} },                /*H_ENG */
+       { 0xA0D9, { 0x3110, 0x0, 0x0, 0x0} },                   /*J */
+       { 0xA0DA, { 0x3110, 0x3127, 0x0, 0x0} },                /*J_I */
+       { 0xA0DB, { 0x3110, 0x3127, 0x311A, 0x0} },             /*J_I_A */
+       { 0xA0DC, { 0x3110, 0x3127, 0x311D, 0x0} },             /*J_I_EH */
+       { 0xA0DD, { 0x3110, 0x3127, 0x3120, 0x0} },             /*J_I_AU */
+       { 0xA0DE, { 0x3110, 0x3127, 0x3121, 0x0} },             /*J_I_OU */
+       { 0xA0DF, { 0x3110, 0x3127, 0x3122, 0x0} },             /*J_I_AN */
+       { 0xA0E0, { 0x3110, 0x3127, 0x3123, 0x0} },             /*J_I_EN */
+       { 0xA0E1, { 0x3110, 0x3127, 0x3124, 0x0} },             /*J_I_ANG */
+       { 0xA0E2, { 0x3110, 0x3127, 0x3125, 0x0} },             /*J_I_ENG */
+       { 0xA0E3, { 0x3110, 0x3129, 0x0, 0x0} },                /*J_IU */
+       { 0xA0E4, { 0x3110, 0x3129, 0x311D, 0x0} },             /*J_IU_EH */
+       { 0xA0E5, { 0x3110, 0x3129, 0x3122, 0x0} },             /*J_IU_AN */
+       { 0xA0E6, { 0x3110, 0x3129, 0x3123, 0x0} },             /*J_IU_EN */
+       { 0xA0E7, { 0x3110, 0x3129, 0x3125, 0x0} },             /*J_IU_ENG */
+       { 0xA0E8, { 0x3111, 0x0, 0x0, 0x0} },                   /*Q */
+       { 0xA0E9, { 0x3111, 0x3127, 0x0, 0x0} },                /*Q_I */
+       { 0xA0EA, { 0x3111, 0x3127, 0x311A, 0x0} },             /*Q_I_A */
+       { 0xA0EB, { 0x3111, 0x3127, 0x311D, 0x0} },             /*Q_I_EH */
+       { 0xA0EC, { 0x3111, 0x3127, 0x3120, 0x0} },             /*Q_I_AU */
+       { 0xA0ED, { 0x3111, 0x3127, 0x3121, 0x0} },             /*Q_I_OU */
+       { 0xA0EE, { 0x3111, 0x3127, 0x3122, 0x0} },             /*Q_I_AN */
+       { 0xA0EF, { 0x3111, 0x3127, 0x3123, 0x0} },             /*Q_I_EN */
+       { 0xA0F0, { 0x3111, 0x3127, 0x3124, 0x0} },             /*Q_I_ANG */
+       { 0xA0F1, { 0x3111, 0x3127, 0x3125, 0x0} },             /*Q_I_ENG */
+       { 0xA0F2, { 0x3111, 0x3129, 0x0, 0x0} },                /*Q_IU */
+       { 0xA0F3, { 0x3111, 0x3129, 0x311D, 0x0} },             /*Q_IU_EH */
+       { 0xA0F4, { 0x3111, 0x3129, 0x3122, 0x0} },             /*Q_IU_AN */
+       { 0xA0F5, { 0x3111, 0x3129, 0x3123, 0x0} },             /*Q_IU_EN */
+       { 0xA0F6, { 0x3111, 0x3129, 0x3125, 0x0} },             /*Q_IU_ENG */
+       { 0xA0F7, { 0x3112, 0x0, 0x0, 0x0} },                   /*X */
+       { 0xA0F8, { 0x3112, 0x3127, 0x0, 0x0} },                /*X_I */
+       { 0xA0F9, { 0x3112, 0x3127, 0x311A, 0x0} },             /*X_I_A */
+       { 0xA0FA, { 0x3112, 0x3127, 0x311D, 0x0} },             /*X_I_EH */
+       { 0xA0FB, { 0x3112, 0x3127, 0x3120, 0x0} },             /*X_I_AU */
+       { 0xA0FC, { 0x3112, 0x3127, 0x3121, 0x0} },             /*X_I_OU */
+       { 0xA0FD, { 0x3112, 0x3127, 0x3122, 0x0} },             /*X_I_AN */
+       { 0xA0FE, { 0x3112, 0x3127, 0x3123, 0x0} },             /*X_I_EN */
+       { 0xA0FF, { 0x3112, 0x3127, 0x3124, 0x0} },             /*X_I_ANG */
+       { 0xA100, { 0x3112, 0x3127, 0x3125, 0x0} },             /*X_I_ENG */
+       { 0xA101, { 0x3112, 0x3129, 0x0, 0x0} },                /*X_IU */
+       { 0xA102, { 0x3112, 0x3129, 0x311D, 0x0} },             /*X_IU_EH */
+       { 0xA103, { 0x3112, 0x3129, 0x3122, 0x0} },             /*X_IU_AN */
+       { 0xA104, { 0x3112, 0x3129, 0x3123, 0x0} },             /*X_IU_EN */
+       { 0xA105, { 0x3112, 0x3129, 0x3125, 0x0} },             /*X_IU_ENG */
+       { 0xA106, { 0x3113, 0x0, 0x0, 0x0} },                   /*ZH */
+       { 0xA107, { 0x3113, 0x3128, 0x0, 0x0} },                /*ZH_U */
+       { 0xA108, { 0x3113, 0x3128, 0x311A, 0x0} },             /*ZH_U_A */
+       { 0xA109, { 0x3113, 0x3128, 0x311B, 0x0} },             /*ZH_U_O */
+       { 0xA10A, { 0x3113, 0x3128, 0x311E, 0x0} },             /*ZH_U_AI */
+       { 0xA10B, { 0x3113, 0x3128, 0x311F, 0x0} },             /*ZH_U_EI */
+       { 0xA10C, { 0x3113, 0x3128, 0x3122, 0x0} },             /*ZH_U_AN */
+       { 0xA10D, { 0x3113, 0x3128, 0x3123, 0x0} },             /*ZH_U_EN */
+       { 0xA10E, { 0x3113, 0x3128, 0x3124, 0x0} },             /*ZH_U_ANG */
+       { 0xA10F, { 0x3113, 0x3128, 0x3125, 0x0} },             /*ZH_U_ENG */
+       { 0xA110, { 0x3113, 0x311A, 0x0, 0x0} },                /*ZH_A */
+       { 0xA111, { 0x3113, 0x311C, 0x0, 0x0} },                /*ZH_E */
+       { 0xA112, { 0x3113, 0x311E, 0x0, 0x0} },                /*ZH_AI */
+       { 0xA113, { 0x3113, 0x3120, 0x0, 0x0} },                /*ZH_AU */
+       { 0xA114, { 0x3113, 0x3121, 0x0, 0x0} },                /*ZH_OU */
+       { 0xA115, { 0x3113, 0x3122, 0x0, 0x0} },                /*ZH_AN */
+       { 0xA116, { 0x3113, 0x3123, 0x0, 0x0} },                /*ZH_EN */
+       { 0xA117, { 0x3113, 0x3124, 0x0, 0x0} },                /*ZH_ANG */
+       { 0xA118, { 0x3113, 0x3125, 0x0, 0x0} },                /*ZH_ENG */
+       { 0xA119, { 0x3114, 0x0, 0x0, 0x0} },                   /* CH */
+       { 0xA11A, { 0x3114, 0x3128, 0x0, 0x0} },                /* CH_U */
+       { 0xA11B, { 0x3114, 0x3128, 0x311B, 0x0} },             /* CH_U_O */
+       { 0xA11C, { 0x3114, 0x3128, 0x311E, 0x0} },             /* CH_U_AI */
+       { 0xA11D, { 0x3114, 0x3128, 0x311F, 0x0} },             /* CH_U_EI */
+       { 0xA11E, { 0x3114, 0x3128, 0x3122, 0x0} },             /* CH_U_AN */
+       { 0xA11F, { 0x3114, 0x3128, 0x3123, 0x0} },             /* CH_U_EN */
+       { 0xA120, { 0x3114, 0x3128, 0x3124, 0x0} },             /* CH_U_ANG */
+       { 0xA121, { 0x3114, 0x3128, 0x3125, 0x0} },             /* CH_U_ENG */
+       { 0xA122, { 0x3114, 0x311A, 0x0, 0x0} },                /* CH_A */
+       { 0xA123, { 0x3114, 0x311C, 0x0, 0x0} },                /* CH_E */
+       { 0xA124, { 0x3114, 0x311E, 0x0, 0x0} },                /* CH_AI */
+       { 0xA125, { 0x3114, 0x3120, 0x0, 0x0} },                /* CH_AU */
+       { 0xA126, { 0x3114, 0x3121, 0x0, 0x0} },                /* CH_OU */
+       { 0xA127, { 0x3114, 0x3122, 0x0, 0x0} },                /* CH_AN */
+       { 0xA128, { 0x3114, 0x3123, 0x0, 0x0} },                /* CH_EN */
+       { 0xA129, { 0x3114, 0x3124, 0x0, 0x0} },                /* CH_ANG */
+       { 0xA12A, { 0x3114, 0x3125, 0x0, 0x0} },                /* CH_ENG */
+       { 0xA12B, { 0x3115, 0x0, 0x0, 0x0} },                   /* SH */
+       { 0xA12C, { 0x3115, 0x3128, 0x0, 0x0} },                /* SH_U */
+       { 0xA12D, { 0x3115, 0x3128, 0x311A, 0x0} },             /* SH_U_A */
+       { 0xA12E, { 0x3115, 0x3128, 0x311B, 0x0} },             /* SH_U_O */
+       { 0xA12F, { 0x3115, 0x3128, 0x311E, 0x0} },             /* SH_U_AI */
+       { 0xA130, { 0x3115, 0x3128, 0x311F, 0x0} },             /* SH_U_EI */
+       { 0xA131, { 0x3115, 0x3128, 0x3122, 0x0} },             /* SH_U_AN */
+       { 0xA132, { 0x3115, 0x3128, 0x3123, 0x0} },             /* SH_U_EN */
+       { 0xA133, { 0x3115, 0x3128, 0x3124, 0x0} },             /* SH_U_ANG */
+       { 0xA134, { 0x3115, 0x311A, 0x0, 0x0} },                /* SH_A */
+       { 0xA135, { 0x3115, 0x311C, 0x0, 0x0} },                /* SH_E */
+       { 0xA136, { 0x3115, 0x311E, 0x0, 0x0} },                /* SH_AI */
+       { 0xA137, { 0x3115, 0x311F, 0x0, 0x0} },                /* SH_EI */
+       { 0xA138, { 0x3115, 0x3120, 0x0, 0x0} },                /* SH_AU */
+       { 0xA139, { 0x3115, 0x3121, 0x0, 0x0} },                /* SH_OU */
+       { 0xA13A, { 0x3115, 0x3122, 0x0, 0x0} },                /* SH_AN */
+       { 0xA13B, { 0x3115, 0x3123, 0x0, 0x0} },                /* SH_EN */
+       { 0xA13C, { 0x3115, 0x3124, 0x0, 0x0} },                /* SH_ANG */
+       { 0xA13D, { 0x3115, 0x3125, 0x0, 0x0} },                /* SH_ENG */
+       { 0xA13E, { 0x3116, 0x0, 0x0, 0x0} },                   /* R */
+       { 0xA13F, { 0x3116, 0x3128, 0x0, 0x0} },                /* R_U */
+       { 0xA140, { 0x3116, 0x3128, 0x311B, 0x0} },             /* R_U_O */
+       { 0xA141, { 0x3116, 0x3128, 0x311F, 0x0} },             /* R_U_EI */
+       { 0xA142, { 0x3116, 0x3128, 0x3122, 0x0} },             /* R_U_AN */
+       { 0xA143, { 0x3116, 0x3128, 0x3123, 0x0} },             /* R_U_EN */
+       { 0xA144, { 0x3116, 0x3128, 0x3125, 0x0} },             /* R_U_ENG */
+       { 0xA145, { 0x3116, 0x311C, 0x0, 0x0} },                /* R_E */
+       { 0xA146, { 0x3116, 0x3120, 0x0, 0x0} },                /* R_AU */
+       { 0xA147, { 0x3116, 0x3121, 0x0, 0x0} },                /* R_OU */
+       { 0xA148, { 0x3116, 0x3122, 0x0, 0x0} },                /* R_AN */
+       { 0xA149, { 0x3116, 0x3123, 0x0, 0x0} },                /* R_EN */
+       { 0xA14A, { 0x3116, 0x3124, 0x0, 0x0} },                /* R_ANG */
+       { 0xA14B, { 0x3116, 0x3125, 0x0, 0x0} },                /* R_ENG */
+       { 0xA14C, { 0x3117, 0x0, 0x0, 0x0} },                   /*Z */
+       { 0xA14D, { 0x3117, 0x3128, 0x0, 0x0} },                /*Z_U */
+       { 0xA14E, { 0x3117, 0x3128, 0x311B, 0x0} },             /*Z_U_O */
+       { 0xA14F, { 0x3117, 0x3128, 0x311F, 0x0} },             /*Z_U_EI */
+       { 0xA150, { 0x3117, 0x3128, 0x3122, 0x0} },             /*Z_U_AN */
+       { 0xA151, { 0x3117, 0x3128, 0x3123, 0x0} },             /*Z_U_EN */
+       { 0xA152, { 0x3117, 0x3128, 0x3125, 0x0} },             /*Z_U_ENG */
+       { 0xA153, { 0x3117, 0x311A, 0x0, 0x0} },                /*Z_A */
+       { 0xA154, { 0x3117, 0x311C, 0x0, 0x0} },                /*Z_E */
+       { 0xA155, { 0x3117, 0x311E, 0x0, 0x0} },                /*Z_AI */
+       { 0xA156, { 0x3117, 0x311F, 0x0, 0x0} },                /*Z_EI */
+       { 0xA157, { 0x3117, 0x3120, 0x0, 0x0} },                /*Z_AU */
+       { 0xA158, { 0x3117, 0x3121, 0x0, 0x0} },                /*Z_OU */
+       { 0xA159, { 0x3117, 0x3122, 0x0, 0x0} },                /*Z_AN */
+       { 0xA15A, { 0x3117, 0x3123, 0x0, 0x0} },                /*Z_EN */
+       { 0xA15B, { 0x3117, 0x3124, 0x0, 0x0} },                /*Z_ANG */
+       { 0xA15C, { 0x3117, 0x3125, 0x0, 0x0} },                /*Z_ENG */
+       { 0xA15D, { 0x3118, 0x0, 0x0, 0x0} },                   /*C */
+       { 0xA15E, { 0x3118, 0x3128, 0x0, 0x0} },                /*C_U */
+       { 0xA15F, { 0x3118, 0x3128, 0x311B, 0x0} },             /*C_U_O */
+       { 0xA160, { 0x3118, 0x3128, 0x311F, 0x0} },             /*C_U_EI */
+       { 0xA161, { 0x3118, 0x3128, 0x3122, 0x0} },             /*C_U_AN */
+       { 0xA162, { 0x3118, 0x3128, 0x3123, 0x0} },             /*C_U_EN */
+       { 0xA163, { 0x3118, 0x3128, 0x3125, 0x0} },             /*C_U_ENG */
+       { 0xA164, { 0x3118, 0x311A, 0x0, 0x0} },                /*C_A */
+       { 0xA165, { 0x3118, 0x311C, 0x0, 0x0} },                /*C_E */
+       { 0xA166, { 0x3118, 0x311E, 0x0, 0x0} },                /*C_AI */
+       { 0xA167, { 0x3118, 0x3120, 0x0, 0x0} },                /*C_AU */
+       { 0xA168, { 0x3118, 0x3121, 0x0, 0x0} },                /*C_OU */
+       { 0xA169, { 0x3118, 0x3122, 0x0, 0x0} },                /*C_AN */
+       { 0xA16A, { 0x3118, 0x3123, 0x0, 0x0} },                /*C_EN */
+       { 0xA16B, { 0x3118, 0x3124, 0x0, 0x0} },                /*C_ANG */
+       { 0xA16C, { 0x3118, 0x3125, 0x0, 0x0} },                /*C_ENG */
+       { 0xA16D, { 0x3119, 0x0, 0x0, 0x0} },                   /* S */
+       { 0xA16E, { 0x3119, 0x3128, 0x0, 0x0} },                /* S_U */
+       { 0xA16F, { 0x3119, 0x3128, 0x311B, 0x0} },             /* S_U_O */
+       { 0xA170, { 0x3119, 0x3128, 0x311F, 0x0} },             /* S_U_EI */
+       { 0xA171, { 0x3119, 0x3128, 0x3122, 0x0} },             /* S_U_AN */
+       { 0xA172, { 0x3119, 0x3128, 0x3123, 0x0} },             /* S_U_EN */
+       { 0xA173, { 0x3119, 0x3128, 0x3125, 0x0} },             /* S_U_ENG */
+       { 0xA174, { 0x3119, 0x311A, 0x0, 0x0} },                /* S_A */
+       { 0xA175, { 0x3119, 0x311C, 0x0, 0x0} },                /* S_E */
+       { 0xA176, { 0x3119, 0x311E, 0x0, 0x0} },                /* S_AI */
+       { 0xA177, { 0x3119, 0x3120, 0x0, 0x0} },                /* S_AU */
+       { 0xA178, { 0x3119, 0x3121, 0x0, 0x0} },                /* S_OU */
+       { 0xA179, { 0x3119, 0x3122, 0x0, 0x0} },                /* S_AN */
+       { 0xA17A, { 0x3119, 0x3123, 0x0, 0x0} },                /* S_EN */
+       { 0xA17B, { 0x3119, 0x3124, 0x0, 0x0} },                /* S_ANG */
+       { 0xA17C, { 0x3119, 0x3125, 0x0, 0x0} },                /* S_ENG */
+       { 0xA17D, { 0x3127, 0x0, 0x0} },                                /* I */
+       { 0xA17E, { 0x3127, 0x311A, 0x0, 0x0} },                /* I_A */
+       { 0xA17F, { 0x3127, 0x311B, 0x0, 0x0} },                /* I_O */
+       { 0xA180, { 0x3127, 0x311D, 0x0, 0x0} },                /* I_EH */
+       { 0xA181, { 0x3127, 0x311E, 0x0, 0x0} },                /* I_AI */
+       { 0xA182, { 0x3127, 0x3120, 0x0, 0x0} },                /* I_AU */
+       { 0xA183, { 0x3127, 0x3121, 0x0, 0x0} },                /* I_OU */
+       { 0xA184, { 0x3127, 0x3122, 0x0, 0x0} },                /* I_AN */
+       { 0xA185, { 0x3127, 0x3123, 0x0, 0x0} },                /* I_EN */
+       { 0xA186, { 0x3127, 0x3124, 0x0, 0x0} },                /* I_ANG */
+       { 0xA187, { 0x3127, 0x3125, 0x0, 0x0} },                /* I_ENG */
+       { 0xA188, { 0x3128, 0x0, 0x0, 0x0} },                   /* U */
+       { 0xA189, { 0x3128, 0x311A, 0x0, 0x0} },                /* U_A */
+       { 0xA18A, { 0x3128, 0x311B, 0x0, 0x0} },                /* U_O */
+       { 0xA18B, { 0x3128, 0x311E, 0x0, 0x0} },                /* U_AI */
+       { 0xA18C, { 0x3128, 0x311F, 0x0, 0x0} },                /* U_EI */
+       { 0xA18D, { 0x3128, 0x3122, 0x0, 0x0} },                /* U_AN */
+       { 0xA18E, { 0x3128, 0x3123, 0x0, 0x0} },                /* U_EN */
+       { 0xA18F, { 0x3128, 0x3124, 0x0, 0x0} },                /* U_ANG */
+       { 0xA190, { 0x3128, 0x3125, 0x0, 0x0} },                /* U_ENG */
+       { 0xA191, { 0x3129, 0x0, 0x0 } },                               /* IU */
+       { 0xA192, { 0x3129, 0x311D, 0x0, 0x0} },                /* IU_EH */
+       { 0xA193, { 0x3129, 0x3122, 0x0, 0x0} },                /* IU_AN */
+       { 0xA194, { 0x3129, 0x3123, 0x0, 0x0} },                /* IU_EN */
+       { 0xA195, { 0x3129, 0x3125, 0x0, 0x0} },                /* IU_ENG */
+       { 0xA196, { 0x311A, 0x0, 0x0, 0x0} },                   /* A */
+       { 0xA197, { 0x311B, 0x0, 0x0, 0x0} },                   /* O */
+       { 0xA198, { 0x311C, 0x0, 0x0, 0x0} },                   /* E */
+       { 0xA199, { 0x311E, 0x0, 0x0, 0x0} },                   /* AI */
+       { 0xA19A, { 0x311F, 0x0, 0x0, 0x0} },                   /* EI */
+       { 0xA19B, { 0x3120, 0x0, 0x0, 0x0} },                   /* AU */
+       { 0xA19C, { 0x3121, 0x0, 0x0, 0x0} },                   /* OU */
+       { 0xA19D, { 0x3122, 0x0, 0x0, 0x0} },                   /* AN */
+       { 0xA19E, { 0x3123, 0x0, 0x0, 0x0} },                   /* EN */
+       { 0xA19F, { 0x3124, 0x0, 0x0, 0x0} },                   /* ANG */
+       { 0xA1A0, { 0x3125, 0x0, 0x0, 0x0} },                   /* ENG */
+       { 0xA1A1, { 0x3126, 0x0, 0x0, 0x0} },                   /* ER */
+       { 0xA1A2, { 0x311D, 0x0, 0x0, 0x0} },                   /* ER */
 };
 
 #define  ALP_ORDER_BOPOMOFO_LETTER_B   0xA001
@@ -13998,49 +13998,50 @@ static  int MAP_10_BEGIN = 0x95b6;
 static  int MAP_END = 0x9fa4;
 
 static han_map BPMF_TO_BPMF_MAP[] = {
-       { 0x3105,  ALP_ORDER_BOPOMOFO_LETTER_B}, // 0xA001
-       { 0x3106,  ALP_ORDER_BOPOMOFO_LETTER_P}, // 0xA012
-       { 0x3107,  ALP_ORDER_BOPOMOFO_LETTER_M}, // 0xA024
-       { 0x3108,  ALP_ORDER_BOPOMOFO_LETTER_F}, // 0xA038
-       { 0x3109,  ALP_ORDER_BOPOMOFO_LETTER_D}, // 0xA042
-       { 0x310A,  ALP_ORDER_BOPOMOFO_LETTER_T}, // 0xA058
-       { 0x310B,  ALP_ORDER_BOPOMOFO_LETTER_N}, // 0xA06C
-       { 0x310C,  ALP_ORDER_BOPOMOFO_LETTER_L}, // 0xA085
-       { 0x310D,  ALP_ORDER_BOPOMOFO_LETTER_G}, // 0xA09E
-       { 0x310E,  ALP_ORDER_BOPOMOFO_LETTER_K}, // 0xA0B2
-       { 0x310F,  ALP_ORDER_BOPOMOFO_LETTER_H}, // 0xA0C5
-       { 0x3110,  ALP_ORDER_BOPOMOFO_LETTER_J}, // 0xA0D9
-       { 0x3111,  ALP_ORDER_BOPOMOFO_LETTER_Q}, // 0xA0E8
-       { 0x3112,  ALP_ORDER_BOPOMOFO_LETTER_X}, // 0xA0F7
-       { 0x3113,  ALP_ORDER_BOPOMOFO_LETTER_ZH}, // 0xA106
-       { 0x3114,  ALP_ORDER_BOPOMOFO_LETTER_CH}, // 0xA119
-       { 0x3115,  ALP_ORDER_BOPOMOFO_LETTER_SH}, // 0xA12B
-       { 0x3116,  ALP_ORDER_BOPOMOFO_LETTER_R}, // 0xA13E
-       { 0x3117,  ALP_ORDER_BOPOMOFO_LETTER_Z}, // 0xA14C
-       { 0x3118,  ALP_ORDER_BOPOMOFO_LETTER_C}, // 0xA15D
-       { 0x3119,  ALP_ORDER_BOPOMOFO_LETTER_S}, // 0xA16D
-       { 0x311A,  ALP_ORDER_BOPOMOFO_LETTER_A}, // 0xA196
-       { 0x311B,  ALP_ORDER_BOPOMOFO_LETTER_O}, // 0xA197
-       { 0x311C,  ALP_ORDER_BOPOMOFO_LETTER_E}, // 0xA198
-       { 0x311D,  ALP_ORDER_BOPOMOFO_LETTER_EH}, // 0xA1
-       { 0x311E,  ALP_ORDER_BOPOMOFO_LETTER_AI}, // 0xA199
-       { 0x311F,  ALP_ORDER_BOPOMOFO_LETTER_EI}, // 0xA19A
-       { 0x3120,  ALP_ORDER_BOPOMOFO_LETTER_AU}, // 0xA19B
-       { 0x3121,  ALP_ORDER_BOPOMOFO_LETTER_OU}, // 0xA19C
-       { 0x3122,  ALP_ORDER_BOPOMOFO_LETTER_AN}, // 0xA19D
-       { 0x3123,  ALP_ORDER_BOPOMOFO_LETTER_EN}, // 0xA19E
-       { 0x3124,  ALP_ORDER_BOPOMOFO_LETTER_ANG}, // 0xA19F
-       { 0x3125,  ALP_ORDER_BOPOMOFO_LETTER_ENG}, // 0xA1A0
-       { 0x3126,  ALP_ORDER_BOPOMOFO_LETTER_ER}, // 0xA1A1
-       { 0x3127,  ALP_ORDER_BOPOMOFO_LETTER_I}, // 0xA17D
-       { 0x3128,  ALP_ORDER_BOPOMOFO_LETTER_U}, // 0xA188
-       { 0x3129,  ALP_ORDER_BOPOMOFO_LETTER_IU}, // 0xA191
+       { 0x3105,  ALP_ORDER_BOPOMOFO_LETTER_B}, /* 0xA001 */
+       { 0x3106,  ALP_ORDER_BOPOMOFO_LETTER_P}, /* 0xA012 */
+       { 0x3107,  ALP_ORDER_BOPOMOFO_LETTER_M}, /* 0xA024 */
+       { 0x3108,  ALP_ORDER_BOPOMOFO_LETTER_F}, /* 0xA038 */
+       { 0x3109,  ALP_ORDER_BOPOMOFO_LETTER_D}, /* 0xA042 */
+       { 0x310A,  ALP_ORDER_BOPOMOFO_LETTER_T}, /* 0xA058 */
+       { 0x310B,  ALP_ORDER_BOPOMOFO_LETTER_N}, /* 0xA06C */
+       { 0x310C,  ALP_ORDER_BOPOMOFO_LETTER_L}, /* 0xA085 */
+       { 0x310D,  ALP_ORDER_BOPOMOFO_LETTER_G}, /* 0xA09E */
+       { 0x310E,  ALP_ORDER_BOPOMOFO_LETTER_K}, /* 0xA0B2 */
+       { 0x310F,  ALP_ORDER_BOPOMOFO_LETTER_H}, /* 0xA0C5 */
+       { 0x3110,  ALP_ORDER_BOPOMOFO_LETTER_J}, /* 0xA0D9 */
+       { 0x3111,  ALP_ORDER_BOPOMOFO_LETTER_Q}, /* 0xA0E8 */
+       { 0x3112,  ALP_ORDER_BOPOMOFO_LETTER_X}, /* 0xA0F7 */
+       { 0x3113,  ALP_ORDER_BOPOMOFO_LETTER_ZH}, /* 0xA106 */
+       { 0x3114,  ALP_ORDER_BOPOMOFO_LETTER_CH}, /* 0xA119 */
+       { 0x3115,  ALP_ORDER_BOPOMOFO_LETTER_SH}, /* 0xA12B */
+       { 0x3116,  ALP_ORDER_BOPOMOFO_LETTER_R}, /* 0xA13E */
+       { 0x3117,  ALP_ORDER_BOPOMOFO_LETTER_Z}, /* 0xA14C */
+       { 0x3118,  ALP_ORDER_BOPOMOFO_LETTER_C}, /* 0xA15D */
+       { 0x3119,  ALP_ORDER_BOPOMOFO_LETTER_S}, /* 0xA16D */
+       { 0x311A,  ALP_ORDER_BOPOMOFO_LETTER_A}, /* 0xA196 */
+       { 0x311B,  ALP_ORDER_BOPOMOFO_LETTER_O}, /* 0xA197 */
+       { 0x311C,  ALP_ORDER_BOPOMOFO_LETTER_E}, /* 0xA198 */
+       { 0x311D,  ALP_ORDER_BOPOMOFO_LETTER_EH}, /* 0xA1 */
+       { 0x311E,  ALP_ORDER_BOPOMOFO_LETTER_AI}, /* 0xA199 */
+       { 0x311F,  ALP_ORDER_BOPOMOFO_LETTER_EI}, /* 0xA19A */
+       { 0x3120,  ALP_ORDER_BOPOMOFO_LETTER_AU}, /* 0xA19B */
+       { 0x3121,  ALP_ORDER_BOPOMOFO_LETTER_OU}, /* 0xA19C */
+       { 0x3122,  ALP_ORDER_BOPOMOFO_LETTER_AN}, /* 0xA19D */
+       { 0x3123,  ALP_ORDER_BOPOMOFO_LETTER_EN}, /* 0xA19E */
+       { 0x3124,  ALP_ORDER_BOPOMOFO_LETTER_ANG}, /* 0xA19F */
+       { 0x3125,  ALP_ORDER_BOPOMOFO_LETTER_ENG}, /* 0xA1A0 */
+       { 0x3126,  ALP_ORDER_BOPOMOFO_LETTER_ER}, /* 0xA1A1 */
+       { 0x3127,  ALP_ORDER_BOPOMOFO_LETTER_I}, /* 0xA17D */
+       { 0x3128,  ALP_ORDER_BOPOMOFO_LETTER_U}, /* 0xA188 */
+       { 0x3129,  ALP_ORDER_BOPOMOFO_LETTER_IU}, /* 0xA191 */
 };
 
 
-// Chinese -> Yi -> Bopomofo
+/* Chinese->Yi->Bopomofo */
 
-static UChar* __media_svc_bopomofo_find(bopomofo_map *table, int size, UChar src) {
+static UChar *__media_svc_bopomofo_find(bopomofo_map *table, int size, UChar src)
+{
        int lowerBound = 0;
        int upperBound = size - 1;
        int curIn;
@@ -14048,7 +14049,7 @@ static UChar* __media_svc_bopomofo_find(bopomofo_map *table, int size, UChar src
        while (true) {
                curIn = (lowerBound + upperBound) / 2;
                if (table[curIn].yi_syllable == src) {
-                       return (UChar*)table[curIn].bopomofo;
+                       return (UChar *)table[curIn].bopomofo;
                } else if (lowerBound > upperBound) {
                        return NULL;
                } else {
@@ -14062,7 +14063,8 @@ static UChar* __media_svc_bopomofo_find(bopomofo_map *table, int size, UChar src
        return NULL;
 }
 
-static UChar __media_svc_yi_syllable_find(han_map *table, int size, UChar src) {
+static UChar __media_svc_yi_syllable_find(han_map *table, int size, UChar src)
+{
        int lowerBound = 0;
        int upperBound = size - 1;
        int curIn;
@@ -14071,11 +14073,9 @@ static UChar __media_svc_yi_syllable_find(han_map *table, int size, UChar src) {
                curIn = (lowerBound + upperBound) / 2;
                if (table[curIn].han == src) {
                        return table[curIn].yi_syllable;
-               }
-               else if (lowerBound > upperBound) {
+               } else if (lowerBound > upperBound) {
                        return -1;
-               }
-               else {
+               } else {
                        if (table[curIn].han < src)
                                lowerBound = curIn + 1;
                        else
@@ -14116,21 +14116,19 @@ static void __media_svc_get_bopomofo(UChar src, UChar dest[], int *len)
                }
 
                UChar *temp = __media_svc_bopomofo_find(UNICODES, array_sizeof(UNICODES), code);
-               if(temp) {
-                       int i=0;
-                       int j=0;
-                       while(temp[i] != 0x0 && i < 3)
+               if (temp) {
+                       int i = 0;
+                       int j = 0;
+                       while (temp[i] != 0x0 && i < 3)
                                dest[j++] = temp[i++];
                        *len = j;
-               }
-               else {
+               } else {
                        dest[0] = src;
                        dest[1] = 0x0;
                        *len = 1;
                }
                return;
-       }
-       else {
+       } else {
                dest[0] = src;
                dest[1] = 0x0;
                *len = 1;
@@ -14165,11 +14163,9 @@ static const UChar *__media_svc_get_bpmf(const UChar src)
                else {
                        return NULL;
                }
-       }
-       else if (src >= 0x3105 && src <= 0x3129) {
+       } else if (src >= 0x3105 && src <= 0x3129) {
                code = __media_svc_yi_syllable_find(BPMF_TO_BPMF_MAP, array_sizeof(BPMF_TO_BPMF_MAP), src);
-       }
-       else
+       } else
                return NULL;
 
        return __media_svc_bopomofo_find(UNICODES, array_sizeof(UNICODES), code);
@@ -14199,7 +14195,7 @@ int _media_svc_get_bopomofo(const char *src, char **dest)
        status = U_ZERO_ERROR;
        tmp_result = calloc(1, sizeof(UChar) * (size + 1));
        u_strFromUTF8(tmp_result, size + 1, NULL, src, -1, &status);
-       if (U_FAILURE(status)){
+       if (U_FAILURE(status)) {
                media_svc_error("u_strFromUTF8 Failed(%s)", u_errorName(status));
                ret = MS_MEDIA_ERR_INTERNAL;
                goto DATA_FREE;
@@ -14210,7 +14206,7 @@ int _media_svc_get_bopomofo(const char *src, char **dest)
        for (i = 0; i < size; i++) {
                char *tmp = NULL;
                int tmp_size = 0;
-               UChar *bopomofo = calloc(1, sizeof(UChar)*4);
+               UChar *bopomofo = calloc(1, sizeof(UChar) * 4);
                if (bopomofo == NULL) {
                        media_svc_error("u_strToUTF8 to allocate memory Failed");
                        ret = MS_MEDIA_ERR_OUT_OF_MEMORY;
@@ -14227,9 +14223,8 @@ int _media_svc_get_bopomofo(const char *src, char **dest)
                }
 
                status = U_ZERO_ERROR;
-               tmp = calloc(1, sizeof(char)*(tmp_size+1));
-               if (tmp == NULL)
-               {
+               tmp = calloc(1, sizeof(char) * (tmp_size + 1));
+               if (tmp == NULL) {
                        media_svc_error("u_strToUTF8 to allocate memory Failed");
                        ret = MS_MEDIA_ERR_OUT_OF_MEMORY;
                        free(bopomofo);
@@ -14269,9 +14264,9 @@ int _media_svc_convert_chinese_to_bpmf(const char *src, media_svc_bpmf_name_s **
        UErrorCode status = U_ZERO_ERROR;
        int32_t size = 0;
 
-       char bpmf_name[MAX_BPMF_NAME_LENGTH*3+1];
-       char bpmf_initial_name[MAX_BPMF_NAME_LENGTH*3+1];
-       char single_bpmf[MAX_BPMF_COUNT*3 + 1];
+       char bpmf_name[MAX_BPMF_NAME_LENGTH * 3 + 1];
+       char bpmf_initial_name[MAX_BPMF_NAME_LENGTH * 3 + 1];
+       char single_bpmf[MAX_BPMF_COUNT * 3 + 1];
 
        *dest = NULL;
 
@@ -14282,13 +14277,13 @@ int _media_svc_convert_chinese_to_bpmf(const char *src, media_svc_bpmf_name_s **
        }
 
        temp_string = calloc(1, sizeof(UChar) * (size + 1));
-       if (temp_string == NULL){
+       if (temp_string == NULL) {
                media_svc_error("u_strFromUTF8 Failed");
                return MS_MEDIA_ERR_OUT_OF_MEMORY;
        }
        status = U_ZERO_ERROR;
        u_strFromUTF8(temp_string, size + 1, NULL, src, -1, &status);
-       if (U_FAILURE(status)){
+       if (U_FAILURE(status)) {
                media_svc_error("u_strFromUTF8 Failed(%s)", u_errorName(status));
                free(temp_string);
                return MS_MEDIA_ERR_INTERNAL;
@@ -14298,48 +14293,46 @@ int _media_svc_convert_chinese_to_bpmf(const char *src, media_svc_bpmf_name_s **
        int total_len = 0;
        int total_initial_len = 0;
 
-       for (i = 0; i < size; i++){
+       for (i = 0; i < size; i++) {
                int len = 0;
                const UChar *bpmf = __media_svc_get_bpmf(temp_string[i]);
 
                if (bpmf) {
-                       u_strToUTF8(single_bpmf, MAX_BPMF_COUNT*3 + 1, &len, bpmf, -1, &status);
+                       u_strToUTF8(single_bpmf, MAX_BPMF_COUNT * 3 + 1, &len, bpmf, -1, &status);
 
-                       // total
-                       if (total_len < MAX_BPMF_NAME_LENGTH*3) {
+                       /* total */
+                       if (total_len < MAX_BPMF_NAME_LENGTH * 3) {
                                if (total_len > 0)
-                                       total_len += snprintf(bpmf_name + total_len, MAX_BPMF_NAME_LENGTH*3+1 - total_len, " %s", single_bpmf);
+                                       total_len += snprintf(bpmf_name + total_len, MAX_BPMF_NAME_LENGTH * 3 + 1 - total_len, " %s", single_bpmf);
                                else
-                                       total_len += snprintf(bpmf_name + total_len, MAX_BPMF_NAME_LENGTH*3+1 - total_len, "%s", single_bpmf);
+                                       total_len += snprintf(bpmf_name + total_len, MAX_BPMF_NAME_LENGTH * 3 + 1 - total_len, "%s", single_bpmf);
                        }
 
-                       // initial
-                       if (total_initial_len < MAX_BPMF_NAME_LENGTH*3) {
-                               single_bpmf[3]='\0';
-                               total_initial_len += snprintf(bpmf_initial_name + total_initial_len, MAX_BPMF_NAME_LENGTH*3+1 - total_initial_len, "%s", single_bpmf);
+                       /* initial */
+                       if (total_initial_len < MAX_BPMF_NAME_LENGTH * 3) {
+                               single_bpmf[3] = '\0';
+                               total_initial_len += snprintf(bpmf_initial_name + total_initial_len, MAX_BPMF_NAME_LENGTH * 3 + 1 - total_initial_len, "%s", single_bpmf);
                        }
-               }
-               else {
-                        if ((temp_string[i] >= 0x30 && temp_string[i] <= 0x39) ||          // 0~9
-                    (temp_string[i] >= 0x41 && temp_string[i] <= 0x5a) ||      // A~Z
-                    (temp_string[i] >= 0x61 && temp_string[i] <= 0x7a)) {      // a~z
+               } else {
+                       if ((temp_string[i] >= 0x30 && temp_string[i] <= 0x39) ||          /* 0~9 */
+                           (temp_string[i] >= 0x41 && temp_string[i] <= 0x5a) ||      /* A~Z */
+                           (temp_string[i] >= 0x61 && temp_string[i] <= 0x7a)) {      /* a~z */
 
-                single_bpmf[0] = temp_string[i]&0xff;
-                single_bpmf[1] = '\0';
+                               single_bpmf[0] = temp_string[i] & 0xff;
+                               single_bpmf[1] = '\0';
 
-                               if (total_len < MAX_BPMF_NAME_LENGTH*3)
-                                       total_len += snprintf(bpmf_name + total_len, MAX_BPMF_NAME_LENGTH*3+1 - total_len, "%s", single_bpmf);
+                               if (total_len < MAX_BPMF_NAME_LENGTH * 3)
+                                       total_len += snprintf(bpmf_name + total_len, MAX_BPMF_NAME_LENGTH * 3 + 1 - total_len, "%s", single_bpmf);
 
-                               if (total_initial_len < MAX_BPMF_NAME_LENGTH*3)
-                                       total_initial_len += snprintf(bpmf_initial_name + total_initial_len, MAX_BPMF_NAME_LENGTH*3+1 - total_initial_len, "%s", single_bpmf);
-            }
+                               if (total_initial_len < MAX_BPMF_NAME_LENGTH * 3)
+                                       total_initial_len += snprintf(bpmf_initial_name + total_initial_len, MAX_BPMF_NAME_LENGTH * 3 + 1 - total_initial_len, "%s", single_bpmf);
+                       }
                }
        }
 
        if (total_len > 0) {
                media_svc_bpmf_name_s *bpmf = calloc(1, sizeof(media_svc_bpmf_name_s));
-               if (bpmf == NULL)
-               {
+               if (bpmf == NULL) {
                        free(temp_string);
                        return MS_MEDIA_ERR_OUT_OF_MEMORY;
                }
@@ -14357,62 +14350,62 @@ int _media_svc_convert_chinese_to_bpmf(const char *src, media_svc_bpmf_name_s **
 char _media_svc_bpmf_get_fuzzy_number(const char *src)
 {
        char fuzzy_number = '*';
-       switch(src[2]) {
-               case 0x85:      // \u3105 : u3105, e3 84  85 - 1
-               case 0x86:      // \u3106 : u3106, e3 84  86 - 1
-               case 0x87:      // \u3107 : u3107, e3 84  87 - 1
-               case 0x88:      // \u3108 : u3108, e3 84  88 - 1
+       switch (src[2]) {
+               case 0x85:      /* \u3105 : u3105, e3 84  85 - 1 */
+               case 0x86:      /* \u3106 : u3106, e3 84  86 - 1 */
+               case 0x87:      /* \u3107 : u3107, e3 84  87 - 1 */
+               case 0x88:      /* \u3108 : u3108, e3 84  88 - 1 */
                        fuzzy_number = '1';
                        break;
-               case 0x89:      //  \u3109: u3109, e3 84  89 - 2
-               case 0x8a:      //  \u310a: u310a, e3 84  8a - 2
-               case 0x8b:      //  \u310b: u310b, e3 84  8b - 2
-               case 0x8c:      //  \u310c: u310c, e3 84  8c - 2
+               case 0x89:      /*  \u3109: u3109, e3 84  89 - 2 */
+               case 0x8a:      /*  \u310a: u310a, e3 84  8a - 2 */
+               case 0x8b:      /*  \u310b: u310b, e3 84  8b - 2 */
+               case 0x8c:      /*  \u310c: u310c, e3 84  8c - 2 */
                        fuzzy_number = '2';
                        break;
-               case 0x8d:      //  \u310d: u310d, e3 84  8d - 3
-               case 0x8e:      //  \u310e: u310e, e3 84  8e - 3
-               case 0x8f:      //  \u310f: u310f, e3 84  8f - 3
+               case 0x8d:      /*  \u310d: u310d, e3 84  8d - 3 */
+               case 0x8e:      /*  \u310e: u310e, e3 84  8e - 3 */
+               case 0x8f:      /*  \u310f: u310f, e3 84  8f - 3 */
                        fuzzy_number = '3';
                        break;
-               case 0x90:      //  \u3110: u3110, e3 84  90 - 4
-               case 0x91:      //  \u3111: u3111, e3 84  91 - 4
-               case 0x92:      //  \u3112: u3112, e3 84  92 - 4
+               case 0x90:      /*  \u3110: u3110, e3 84  90 - 4 */
+               case 0x91:      /*  \u3111: u3111, e3 84  91 - 4 */
+               case 0x92:      /*  \u3112: u3112, e3 84  92 - 4 */
                        fuzzy_number = '4';
                        break;
-               case 0x93:      //  \u3113: u3113, e3 84  93 - 5
-               case 0x94:      //  \u3114: u3114, e3 84  94 - 5
-               case 0x95:      //  \u3115: u3115, e3 84  95 - 5
-               case 0x96:      //  \u3116: u3116, e3 84  96 - 5
+               case 0x93:      /*  \u3113: u3113, e3 84  93 - 5 */
+               case 0x94:      /*  \u3114: u3114, e3 84  94 - 5 */
+               case 0x95:      /*  \u3115: u3115, e3 84  95 - 5 */
+               case 0x96:      /*  \u3116: u3116, e3 84  96 - 5 */
                        fuzzy_number = '5';
                        break;
-               case 0x97:      //  \u3117: u3117, e3 84  97 - 6
-               case 0x98:      //  \u3118: u3118, e3 84  98 - 6
-               case 0x99:      //  \u3119: u3119, e3 84  99 - 6
+               case 0x97:      /*  \u3117: u3117, e3 84  97 - 6 */
+               case 0x98:      /*  \u3118: u3118, e3 84  98 - 6 */
+               case 0x99:      /*  \u3119: u3119, e3 84  99 - 6 */
                        fuzzy_number = '6';
                        break;
-               case 0x9a:      //  \u311a: u311a, e3 84  9a - 7
-               case 0x9b:      //  \u311b: u311b, e3 84  9b - 7
-               case 0x9c:      //  \u311c: u311c, e3 84  9c - 7
-               case 0x9d:      //  \u311d: u311d, e3 84  9d - 7
+               case 0x9a:      /*  \u311a: u311a, e3 84  9a - 7 */
+               case 0x9b:      /*  \u311b: u311b, e3 84  9b - 7 */
+               case 0x9c:      /*  \u311c: u311c, e3 84  9c - 7 */
+               case 0x9d:      /*  \u311d: u311d, e3 84  9d - 7 */
                        fuzzy_number = '7';
                        break;
-               case 0x9e:      //  \u311e: u311e, e3 84  9e - 8
-               case 0x9f:      //  \u311f: u311f, e3 84  9f - 8
-               case 0xa0:      //  \u3120: u3120, e3 84  a0 - 8
-               case 0xa1:      //  \u3121: u3121, e3 84  a1 - 8
+               case 0x9e:      /*  \u311e: u311e, e3 84  9e - 8 */
+               case 0x9f:      /*  \u311f: u311f, e3 84  9f - 8 */
+               case 0xa0:      /*  \u3120: u3120, e3 84  a0 - 8 */
+               case 0xa1:      /*  \u3121: u3121, e3 84  a1 - 8 */
                        fuzzy_number = '8';
                        break;
-               case 0xa2:      //  \u3122: u3122, e3 84  a2 - 9
-               case 0xa3:      //  \u3123: u3123, e3 84  a3 - 9
-               case 0xa4:      //  \u3124: u3124, e3 84  a4 - 9
-               case 0xa5:      //  \u3125: u3125, e3 84  a5 - 9
-               case 0xa6:      //  \u3126: u3126, e3 84  a6 - 9
+               case 0xa2:      /*  \u3122: u3122, e3 84  a2 - 9 */
+               case 0xa3:      /*  \u3123: u3123, e3 84  a3 - 9 */
+               case 0xa4:      /*  \u3124: u3124, e3 84  a4 - 9 */
+               case 0xa5:      /*  \u3125: u3125, e3 84  a5 - 9 */
+               case 0xa6:      /*  \u3126: u3126, e3 84  a6 - 9 */
                        fuzzy_number =  '9';
                        break;
-               case 0xa7:      //  \u3127: u3127, e3 84  a7 - 0
-               case 0xa8:      //  \u3128: u3128, e3 84  a8 - 0
-               case 0xa9:      //  \u3129: u3129, e3 84  a9 - 0
+               case 0xa7:      /*  \u3127: u3127, e3 84  a7 - 0 */
+               case 0xa8:      /*  \u3128: u3128, e3 84  a8 - 0 */
+               case 0xa9:      /*  \u3129: u3129, e3 84  a9 - 0 */
                        fuzzy_number =  '0';
                        break;
                default:
index f500681..abefac9 100755 (executable)
@@ -35,7 +35,7 @@ int _media_svc_get_folder_id_by_foldername(sqlite3 *handle, const char *storage_
        sqlite3_stmt *sql_stmt = NULL;
        char *sql = NULL;
 
-       if(STRING_VALID(storage_id))
+       if (STRING_VALID(storage_id))
                sql = sqlite3_mprintf("SELECT folder_uuid FROM '%s' WHERE storage_uuid = '%q' AND path = '%q';", MEDIA_SVC_DB_TABLE_FOLDER, storage_id, folder_name);
        else
                sql = sqlite3_mprintf("SELECT folder_uuid FROM '%s' WHERE path = '%q';", MEDIA_SVC_DB_TABLE_FOLDER, folder_name);
@@ -43,16 +43,15 @@ int _media_svc_get_folder_id_by_foldername(sqlite3 *handle, const char *storage_
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
 
        if (ret != MS_MEDIA_ERR_NONE) {
-               if(ret == MS_MEDIA_ERR_DB_NO_RECORD) {
+               if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
                        media_svc_debug("there is no folder.");
-               }
-               else {
+               } else {
                        media_svc_error("error when _media_svc_get_folder_id_by_foldername. err = [%d]", ret);
                }
                return ret;
        }
 
-       _strncpy_safe(folder_id, (const char *)sqlite3_column_text(sql_stmt, 0), MEDIA_SVC_UUID_SIZE+1);
+       _strncpy_safe(folder_id, (const char *)sqlite3_column_text(sql_stmt, 0), MEDIA_SVC_UUID_SIZE + 1);
 
        SQLITE3_FINALIZE(sql_stmt);
 
@@ -60,18 +59,18 @@ int _media_svc_get_folder_id_by_foldername(sqlite3 *handle, const char *storage_
 }
 
 int _media_svc_append_folder(sqlite3 *handle, const char *storage_id, media_svc_storage_type_e storage_type,
-                                   const char *folder_id, const char *path_name, const char *folder_name, int modified_date, const char *parent_folder_uuid, uid_t uid)
+                             const char *folder_id, const char *path_name, const char *folder_name, int modified_date, const char *parent_folder_uuid, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
 
        /*Update Pinyin If Support Pinyin*/
        char *folder_name_pinyin = NULL;
-       if(_media_svc_check_pinyin_support())
+       if (_media_svc_check_pinyin_support())
                _media_svc_get_pinyin_str(folder_name, &folder_name_pinyin);
 
        char *sql = sqlite3_mprintf("INSERT INTO %s (folder_uuid, path, name, storage_uuid, storage_type, modified_time, name_pinyin, parent_folder_uuid) \
                                                        values (%Q, %Q, %Q, %Q, '%d', '%d', %Q, %Q); ",
-                                                    MEDIA_SVC_DB_TABLE_FOLDER, folder_id, path_name, folder_name, storage_id, storage_type, modified_date, folder_name_pinyin, parent_folder_uuid);
+                                   MEDIA_SVC_DB_TABLE_FOLDER, folder_id, path_name, folder_name, storage_id, storage_type, modified_date, folder_name_pinyin, parent_folder_uuid);
        ret = _media_svc_sql_query(handle, sql, uid);
        sqlite3_free(sql);
 
@@ -89,7 +88,7 @@ int _media_svc_update_folder_modified_time_by_folder_uuid(sqlite3 *handle, const
 
        char *sql = sqlite3_mprintf("UPDATE %s SET modified_time=%d WHERE folder_uuid=%Q;", MEDIA_SVC_DB_TABLE_FOLDER, modified_time, folder_uuid);
 
-       if(!stack_query) {
+       if (!stack_query) {
                ret = _media_svc_sql_query(handle, sql, uid);
                sqlite3_free(sql);
        } else {
@@ -109,71 +108,62 @@ int __media_svc_get_and_append_parent_folder(sqlite3 *handle, const char *storag
        char *folder_uuid = NULL;
        char *folder_name = NULL;
        int folder_modified_date = 0;
-       char parent_folder_uuid[MEDIA_SVC_UUID_SIZE+1] = {0,};
+       char parent_folder_uuid[MEDIA_SVC_UUID_SIZE + 1] = {0, };
        bool folder_search_end = FALSE;
 
        memset(parent_folder_uuid, 0, sizeof(parent_folder_uuid));
 
-       if(strncmp(path, _media_svc_get_path(uid), strlen(_media_svc_get_path(uid))) == 0)
+       if (strncmp(path, _media_svc_get_path(uid), strlen(_media_svc_get_path(uid))) == 0)
                next_pos = strlen(_media_svc_get_path(uid));
        else if (strncmp(path, MEDIA_ROOT_PATH_SDCARD, strlen(MEDIA_ROOT_PATH_SDCARD)) == 0)
                next_pos = strlen(MEDIA_ROOT_PATH_SDCARD);
-       else
-       {
+       else {
                media_svc_error("Invalid Path");
                return MS_MEDIA_ERR_INTERNAL;
        }
 
-       while (!folder_search_end)
-       {
-               next = strstr(path + next_pos , token);
-               if (next != NULL)
-               {
+       while (!folder_search_end) {
+               next = strstr(path + next_pos, token);
+               if (next != NULL) {
                        next_pos = (next - path);
                        dir_path = strndup(path, next_pos);
                        next_pos++;
-               }
-               else
-               {
+               } else {
                        media_svc_error("End Path");
                        dir_path = strndup(path, strlen(path));
                        folder_search_end = TRUE;
                }
 
                ret = _media_svc_get_folder_id_by_foldername(handle, storage_id, dir_path, parent_folder_uuid);
-               if (ret == MS_MEDIA_ERR_DB_NO_RECORD)
-               {
+               if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
                        media_svc_error("NOT EXIST dir path : %s", dir_path);
 
                        folder_uuid = _media_info_generate_uuid();
-                       if(folder_uuid == NULL )
-                       {
-                       media_svc_error("Invalid UUID");
+                       if (folder_uuid == NULL) {
+                               media_svc_error("Invalid UUID");
                                SAFE_FREE(dir_path);
-                       return MS_MEDIA_ERR_INTERNAL;
-               }
+                               return MS_MEDIA_ERR_INTERNAL;
+                       }
 
                        folder_name = g_path_get_basename(dir_path);
                        folder_modified_date = _media_svc_get_file_time(dir_path);
 
                        ret = _media_svc_append_folder(handle, storage_id, storage_type, folder_uuid, dir_path, folder_name, folder_modified_date, parent_folder_uuid, uid);
-               if (ret != MS_MEDIA_ERR_NONE) {
-                       media_svc_error("_media_svc_append_folder is failed");
-               }
+                       if (ret != MS_MEDIA_ERR_NONE) {
+                               media_svc_error("_media_svc_append_folder is failed");
+                       }
 
-                       _strncpy_safe(parent_folder_uuid, folder_uuid, MEDIA_SVC_UUID_SIZE+1);
+                       _strncpy_safe(parent_folder_uuid, folder_uuid, MEDIA_SVC_UUID_SIZE + 1);
 
-               SAFE_FREE(folder_name);
-               }
-               else
-               {
+                       SAFE_FREE(folder_name);
+               } else {
                        media_svc_error("EXIST dir path : %s\n", dir_path);
                }
 
                SAFE_FREE(dir_path);
        }
 
-               _strncpy_safe(folder_id, folder_uuid, MEDIA_SVC_UUID_SIZE+1);
+       _strncpy_safe(folder_id, folder_uuid, MEDIA_SVC_UUID_SIZE + 1);
 
        return MS_MEDIA_ERR_NONE;
 }
@@ -184,8 +174,7 @@ int _media_svc_get_and_append_folder(sqlite3 *handle, const char *storage_id, co
 
        ret = _media_svc_get_folder_id_by_foldername(handle, storage_id, path, folder_id);
 
-       if(ret == MS_MEDIA_ERR_DB_NO_RECORD)
-       {
+       if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
                ret = __media_svc_get_and_append_parent_folder(handle, storage_id, path, storage_type, folder_id, uid);
        }
 
@@ -212,7 +201,7 @@ int _media_svc_update_folder_table(sqlite3 *handle, uid_t uid)
        char *sql = NULL;
 
        sql = sqlite3_mprintf("DELETE FROM %s WHERE folder_uuid IN (SELECT folder_uuid FROM %s WHERE folder_uuid NOT IN (SELECT folder_uuid FROM %s))",
-            MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_MEDIA);
+                             MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_MEDIA);
 
        ret = _media_svc_sql_query(handle, sql, uid);
        sqlite3_free(sql);
@@ -220,7 +209,7 @@ int _media_svc_update_folder_table(sqlite3 *handle, uid_t uid)
        return ret;
 }
 
-static int __media_svc_count_all_folders(sqlite3 *handle, charstart_path, int *count)
+static int __media_svc_count_all_folders(sqlite3 *handle, char *start_path, int *count)
 {
        int ret = MS_MEDIA_ERR_NONE;
        sqlite3_stmt *sql_stmt = NULL;
@@ -245,9 +234,9 @@ int _media_svc_get_all_folders(sqlite3 *handle, char *start_path, char ***folder
        int idx = 0;
        sqlite3_stmt *sql_stmt = NULL;
        char *sql = NULL;
-       int cnt =0;
+       int cnt = 0;
        char **folder_uuid = NULL;
-       int i =0;
+       int i = 0;
 
        ret  = __media_svc_count_all_folders(handle, start_path, &cnt);
        if (ret != MS_MEDIA_ERR_NONE) {
@@ -269,7 +258,7 @@ int _media_svc_get_all_folders(sqlite3 *handle, char *start_path, char ***folder
        *item_num_list = malloc(sizeof(int) * cnt);
        folder_uuid = malloc(sizeof(char *) * cnt);
 
-       if((*folder_list == NULL) || (*modified_time_list == NULL) || (*item_num_list == NULL) ||(folder_uuid == NULL)) {
+       if ((*folder_list == NULL) || (*modified_time_list == NULL) || (*item_num_list == NULL) || (folder_uuid == NULL)) {
                media_svc_error("Out of memory");
                goto ERROR;
        }
@@ -284,25 +273,25 @@ int _media_svc_get_all_folders(sqlite3 *handle, char *start_path, char ***folder
        media_svc_debug("QEURY OK");
 
        while (1) {
-               if(STRING_VALID((char *)sqlite3_column_text(sql_stmt, 0)))
+               if (STRING_VALID((char *)sqlite3_column_text(sql_stmt, 0)))
                        (*folder_list)[idx] = strdup((char *)sqlite3_column_text(sql_stmt, 0));
 
                (*modified_time_list)[idx] = (int)sqlite3_column_int(sql_stmt, 1);
 
                /* get the folder's id */
-               if(STRING_VALID((char *)sqlite3_column_text(sql_stmt, 2)))
+               if (STRING_VALID((char *)sqlite3_column_text(sql_stmt, 2)))
                        folder_uuid[idx] = strdup((char *)sqlite3_column_text(sql_stmt, 2));
 
                idx++;
 
-               if(sqlite3_step(sql_stmt) != SQLITE_ROW)
+               if (sqlite3_step(sql_stmt) != SQLITE_ROW)
                        break;
        }
        SQLITE3_FINALIZE(sql_stmt);
 
        /*get the numbder of item in the folder by using folder's id */
-       for (i = 0; i < idx; i ++) {
-               if(STRING_VALID(folder_uuid[i])) {
+       for (i = 0; i < idx; i++) {
+               if (STRING_VALID(folder_uuid[i])) {
                        sql = sqlite3_mprintf("SELECT COUNT(*) FROM %s WHERE (folder_uuid='%q' AND validity = 1)", MEDIA_SVC_DB_TABLE_MEDIA, folder_uuid[i]);
                        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
                        if (ret != MS_MEDIA_ERR_NONE) {
@@ -313,8 +302,7 @@ int _media_svc_get_all_folders(sqlite3 *handle, char *start_path, char ***folder
                        (*item_num_list)[i] = (int)sqlite3_column_int(sql_stmt, 0);
 
                        SQLITE3_FINALIZE(sql_stmt);
-               } else
-               {
+               } else {
                        media_svc_error("Invalid Folder Id");
                }
        }
@@ -329,7 +317,7 @@ int _media_svc_get_all_folders(sqlite3 *handle, char *start_path, char ***folder
        }
 
        /* free all data */
-       for (i  = 0; i < idx; i ++) {
+       for (i  = 0; i < idx; i++) {
                SAFE_FREE(folder_uuid[i]);
        }
        SAFE_FREE(folder_uuid);
@@ -339,7 +327,7 @@ int _media_svc_get_all_folders(sqlite3 *handle, char *start_path, char ***folder
 ERROR:
 
        /* free all data */
-       for (i  = 0; i < idx; i ++) {
+       for (i  = 0; i < idx; i++) {
                SAFE_FREE((*folder_list)[i]);
                SAFE_FREE(folder_uuid[i]);
        }
@@ -363,16 +351,15 @@ int _media_svc_get_folder_info_by_foldername(sqlite3 *handle, const char *folder
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
 
        if (ret != MS_MEDIA_ERR_NONE) {
-               if(ret == MS_MEDIA_ERR_DB_NO_RECORD) {
+               if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
                        media_svc_debug("there is no folder.");
-               }
-               else {
+               } else {
                        media_svc_error("error when _media_svc_get_folder_id_by_foldername. err = [%d]", ret);
                }
                return ret;
        }
 
-       _strncpy_safe(folder_id, (const char *)sqlite3_column_text(sql_stmt, 0), MEDIA_SVC_UUID_SIZE+1);
+       _strncpy_safe(folder_id, (const char *)sqlite3_column_text(sql_stmt, 0), MEDIA_SVC_UUID_SIZE + 1);
        *modified_time = (int)sqlite3_column_int(sql_stmt, 1);
 
        SQLITE3_FINALIZE(sql_stmt);
index dcccc5b..66111d5 100755 (executable)
 #include "media-svc-db-utils.h"
 #include "media-svc-noti.h"
 
-#define GLOBAL_USER    0 //#define     tzplatform_getenv(TZ_GLOBAL) //TODO
+#define GLOBAL_USER    0 /*#define     tzplatform_getenv(TZ_GLOBAL) //TODO */
 
-typedef struct{
+typedef struct {
        char thumbnail_path[MEDIA_SVC_PATHNAME_SIZE];
-}media_svc_thumbnailpath_s;
+} media_svc_thumbnailpath_s;
 
 static __thread GList *g_media_svc_item_validity_query_list = NULL;
 static __thread GList *g_media_svc_insert_item_query_list = NULL;
@@ -45,17 +45,17 @@ static __thread GList *g_media_svc_update_item_query_list = NULL;
 
 static int __media_svc_count_invalid_records_with_thumbnail(sqlite3 *handle, media_svc_storage_type_e storage_type, int *count);
 static int __media_svc_get_invalid_records_with_thumbnail(sqlite3 *handle, media_svc_storage_type_e storage_type,
-                                                       int count, media_svc_thumbnailpath_s * thumb_path);
+                                                          int count, media_svc_thumbnailpath_s *thumb_path);
 static int __media_svc_count_invalid_folder_records_with_thumbnail(sqlite3 *handle, const char *folder_path, int *count);
 static int __media_svc_get_invalid_folder_records_with_thumbnail(sqlite3 *handle, const char *folder_path,
-                                                       int count, media_svc_thumbnailpath_s * thumb_path);
+                                                                 int count, media_svc_thumbnailpath_s *thumb_path);
 
 static int __media_svc_count_invalid_records_with_thumbnail(sqlite3 *handle, media_svc_storage_type_e storage_type, int *count)
 {
        int ret = MS_MEDIA_ERR_NONE;
        sqlite3_stmt *sql_stmt = NULL;
        char *sql = sqlite3_mprintf("SELECT count(*) FROM %s WHERE validity=0 AND storage_type=%d AND thumbnail_path IS NOT NULL",
-                                       MEDIA_SVC_DB_TABLE_MEDIA, storage_type);
+                                   MEDIA_SVC_DB_TABLE_MEDIA, storage_type);
 
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
 
@@ -73,14 +73,14 @@ static int __media_svc_count_invalid_records_with_thumbnail(sqlite3 *handle, med
 }
 
 static int __media_svc_get_invalid_records_with_thumbnail(sqlite3 *handle, media_svc_storage_type_e storage_type,
-                                                       int count, media_svc_thumbnailpath_s * thumb_path)
+                                                          int count, media_svc_thumbnailpath_s *thumb_path)
 {
        int ret = MS_MEDIA_ERR_NONE;
        sqlite3_stmt *sql_stmt = NULL;
        int idx = 0;
 
        char *sql = sqlite3_mprintf("SELECT thumbnail_path from (select thumbnail_path, validity from %s WHERE storage_type=%d AND thumbnail_path IS NOT NULL GROUP BY thumbnail_path HAVING count() = 1) WHERE validity=0",
-                                       MEDIA_SVC_DB_TABLE_MEDIA, storage_type);
+                                   MEDIA_SVC_DB_TABLE_MEDIA, storage_type);
 
        media_svc_debug("[SQL query] : %s", sql);
 
@@ -92,7 +92,7 @@ static int __media_svc_get_invalid_records_with_thumbnail(sqlite3 *handle, media
 
        while (sqlite3_step(sql_stmt) == SQLITE_ROW) {
                _strncpy_safe(thumb_path[idx].thumbnail_path, (const char *)sqlite3_column_text(sql_stmt, 0), sizeof(thumb_path[idx]));
-               //media_svc_debug("thumb_path[%d]=[%s]", idx, thumb_path[idx].thumbnail_path);
+               /*media_svc_debug("thumb_path[%d]=[%s]", idx, thumb_path[idx].thumbnail_path); */
                idx++;
        }
 
@@ -106,7 +106,7 @@ static int __media_svc_count_invalid_folder_records_with_thumbnail(sqlite3 *hand
        int ret = MS_MEDIA_ERR_NONE;
        sqlite3_stmt *sql_stmt = NULL;
        char *sql = sqlite3_mprintf("SELECT count(*) FROM %s WHERE validity=0 AND path LIKE '%q/%%' AND thumbnail_path IS NOT NULL",
-                                       MEDIA_SVC_DB_TABLE_MEDIA, folder_path);
+                                   MEDIA_SVC_DB_TABLE_MEDIA, folder_path);
 
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
 
@@ -124,14 +124,14 @@ static int __media_svc_count_invalid_folder_records_with_thumbnail(sqlite3 *hand
 }
 
 static int __media_svc_get_invalid_folder_records_with_thumbnail(sqlite3 *handle, const char *folder_path,
-                                                       int count, media_svc_thumbnailpath_s * thumb_path)
+                                                                 int count, media_svc_thumbnailpath_s *thumb_path)
 {
        int ret = MS_MEDIA_ERR_NONE;
        sqlite3_stmt *sql_stmt = NULL;
        int idx = 0;
 
        char *sql = sqlite3_mprintf("SELECT thumbnail_path from (select thumbnail_path, validity from %s WHERE path LIKE '%q/%%' AND thumbnail_path IS NOT NULL GROUP BY thumbnail_path HAVING count() = 1) WHERE validity=0",
-                                       MEDIA_SVC_DB_TABLE_MEDIA, folder_path);
+                                   MEDIA_SVC_DB_TABLE_MEDIA, folder_path);
 
        media_svc_debug("[SQL query] : %s", sql);
 
@@ -169,32 +169,29 @@ int _media_svc_count_record_with_path(sqlite3 *handle, const char *path, int *co
        return MS_MEDIA_ERR_NONE;
 }
 
-char_media_svc_get_thumb_default_path(uid_t uid)
+char *_media_svc_get_thumb_default_path(uid_t uid)
 {
        char *result_psswd = NULL;
        struct group *grpinfo = NULL;
-       if(uid == getuid())
-       {
+       if (uid == getuid()) {
                result_psswd = strdup(MEDIA_SVC_THUMB_DEFAULT_PATH);
                grpinfo = getgrnam("users");
-               if(grpinfo == NULL) {
+               if (grpinfo == NULL) {
                        media_svc_error("getgrnam(users) returns NULL !");
                        return NULL;
                }
-       }
-       else
-       {
+       } else {
                struct passwd *userinfo = getpwuid(uid);
-               if(userinfo == NULL) {
+               if (userinfo == NULL) {
                        media_svc_error("getpwuid(%d) returns NULL !", uid);
                        return NULL;
                }
                grpinfo = getgrnam("users");
-               if(grpinfo == NULL) {
+               if (grpinfo == NULL) {
                        media_svc_error("getgrnam(users) returns NULL !");
                        return NULL;
                }
-               // Compare git_t type and not group name
+               /* Compare git_t type and not group name */
                if (grpinfo->gr_gid != userinfo->pw_gid) {
                        media_svc_error("UID [%d] does not belong to 'users' group!", uid);
                        return NULL;
@@ -210,9 +207,9 @@ int _media_svc_insert_item_with_data(sqlite3 *handle, media_svc_content_info_s *
        int ret = MS_MEDIA_ERR_NONE;
        char *burst_id = NULL;
 
-       char * db_fields = "media_uuid, path, file_name, media_type, mime_type, size, added_time, modified_time, folder_uuid, \
-                                       thumbnail_path, title, album_id, album, artist, album_artist, genre, composer, year, recorded_date, copyright, track_num, description,\
-                                       bitrate, bitpersample, samplerate, channel, duration, longitude, latitude, altitude, exposure_time, fnumber, iso, model, width, height, datetaken, orientation,\
+       char *db_fields = "media_uuid, path, file_name, media_type, mime_type, size, added_time, modified_time, folder_uuid, \
+                                       thumbnail_path, title, album_id, album, artist, album_artist, genre, composer, year, recorded_date, copyright, track_num, description, \
+                                       bitrate, bitpersample, samplerate, channel, duration, longitude, latitude, altitude, exposure_time, fnumber, iso, model, width, height, datetaken, orientation, \
                                        rating, is_drm, storage_type, burst_id, timeline, weather, sync_status, \
                                        file_name_pinyin, title_pinyin, album_pinyin, artist_pinyin, album_artist_pinyin, genre_pinyin, composer_pinyin, copyright_pinyin, description_pinyin, storage_uuid";
 
@@ -239,7 +236,7 @@ int _media_svc_insert_item_with_data(sqlite3 *handle, media_svc_content_info_s *
                int height = 0;
 
                ret = _media_svc_request_thumbnail_with_origin_size(content_info->path, thumb_path, sizeof(thumb_path), &width, &height, uid);
-               if(ret == MS_MEDIA_ERR_NONE) {
+               if (ret == MS_MEDIA_ERR_NONE) {
 
                        ret = __media_svc_malloc_and_strncpy(&(content_info->thumbnail_path), thumb_path);
                        if (ret != MS_MEDIA_ERR_NONE) {
@@ -255,25 +252,24 @@ int _media_svc_insert_item_with_data(sqlite3 *handle, media_svc_content_info_s *
        }
 
        /*Update Pinyin If Support Pinyin*/
-       if(_media_svc_check_pinyin_support())
-       {
-               if(STRING_VALID(content_info->file_name))
+       if (_media_svc_check_pinyin_support()) {
+               if (STRING_VALID(content_info->file_name))
                        _media_svc_get_pinyin_str(content_info->file_name, &content_info->file_name_pinyin);
-               if(STRING_VALID(content_info->media_meta.title))
+               if (STRING_VALID(content_info->media_meta.title))
                        _media_svc_get_pinyin_str(content_info->media_meta.title, &content_info->media_meta.title_pinyin);
-               if(STRING_VALID(content_info->media_meta.album))
+               if (STRING_VALID(content_info->media_meta.album))
                        _media_svc_get_pinyin_str(content_info->media_meta.album, &content_info->media_meta.album_pinyin);
-               if(STRING_VALID(content_info->media_meta.artist))
+               if (STRING_VALID(content_info->media_meta.artist))
                        _media_svc_get_pinyin_str(content_info->media_meta.artist, &content_info->media_meta.artist_pinyin);
-               if(STRING_VALID(content_info->media_meta.album_artist))
+               if (STRING_VALID(content_info->media_meta.album_artist))
                        _media_svc_get_pinyin_str(content_info->media_meta.album_artist, &content_info->media_meta.album_artist_pinyin);
-               if(STRING_VALID(content_info->media_meta.genre))
+               if (STRING_VALID(content_info->media_meta.genre))
                        _media_svc_get_pinyin_str(content_info->media_meta.genre, &content_info->media_meta.genre_pinyin);
-               if(STRING_VALID(content_info->media_meta.composer))
+               if (STRING_VALID(content_info->media_meta.composer))
                        _media_svc_get_pinyin_str(content_info->media_meta.composer, &content_info->media_meta.composer_pinyin);
-               if(STRING_VALID(content_info->media_meta.copyright))
+               if (STRING_VALID(content_info->media_meta.copyright))
                        _media_svc_get_pinyin_str(content_info->media_meta.copyright, &content_info->media_meta.copyright_pinyin);
-               if(STRING_VALID(content_info->media_meta.description))
+               if (STRING_VALID(content_info->media_meta.description))
                        _media_svc_get_pinyin_str(content_info->media_meta.description, &content_info->media_meta.description_pinyin);
        }
 
@@ -282,71 +278,70 @@ int _media_svc_insert_item_with_data(sqlite3 *handle, media_svc_content_info_s *
                                                                                                        %d, %d, %d, %d, %d, %.6f, %.6f, %.6f, %Q, %.6f, %d, %Q, %d, %d, %Q, %d, \
                                                                                                        %d, %d, %d, %Q, %d, %Q, %d, \
                                                                                                        %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q);",
-               content_info->storage_uuid, db_fields,
-               content_info->media_uuid,
-               content_info->path,
-               content_info->file_name,
-               content_info->media_type,
-               content_info->mime_type,
-               content_info->size,
-               content_info->added_time,
-               content_info->modified_time,
-               content_info->folder_uuid,
-               content_info->thumbnail_path,           //
-               content_info->media_meta.title,
-               content_info->album_id,
-               content_info->media_meta.album,
-               content_info->media_meta.artist,
-               content_info->media_meta.album_artist,
-               content_info->media_meta.genre,
-               content_info->media_meta.composer,
-               content_info->media_meta.year,
-               content_info->media_meta.recorded_date,
-               content_info->media_meta.copyright,
-               content_info->media_meta.track_num,
-               content_info->media_meta.description,   //
-               content_info->media_meta.bitrate,
-               content_info->media_meta.bitpersample,
-               content_info->media_meta.samplerate,
-               content_info->media_meta.channel,
-               content_info->media_meta.duration,
-               content_info->media_meta.longitude,
-               content_info->media_meta.latitude,
-               content_info->media_meta.altitude,
-               content_info->media_meta.exposure_time,
-               content_info->media_meta.fnumber,
-               content_info->media_meta.iso,
-               content_info->media_meta.model,
-               content_info->media_meta.width,
-               content_info->media_meta.height,
-               content_info->media_meta.datetaken,
-               content_info->media_meta.orientation,
-               content_info->media_meta.rating,
-               content_info->is_drm,
-               content_info->storage_type,
-               burst_id,
-               content_info->timeline,
-               content_info->media_meta.weather,
-               content_info->sync_status,
-               content_info->file_name_pinyin,
-               content_info->media_meta.title_pinyin,
-               content_info->media_meta.album_pinyin,
-               content_info->media_meta.artist_pinyin,
-               content_info->media_meta.album_artist_pinyin,
-               content_info->media_meta.genre_pinyin,
-               content_info->media_meta.composer_pinyin,
-               content_info->media_meta.copyright_pinyin,
-               content_info->media_meta.description_pinyin,
-               content_info->storage_uuid
-               );
-
-       if (burst_id)
-       {
+                                                               content_info->storage_uuid, db_fields,
+                                                               content_info->media_uuid,
+                                                               content_info->path,
+                                                               content_info->file_name,
+                                                               content_info->media_type,
+                                                               content_info->mime_type,
+                                                               content_info->size,
+                                                               content_info->added_time,
+                                                               content_info->modified_time,
+                                                               content_info->folder_uuid,
+                                                               content_info->thumbnail_path,
+                                                               content_info->media_meta.title,
+                                                               content_info->album_id,
+                                                               content_info->media_meta.album,
+                                                               content_info->media_meta.artist,
+                                                               content_info->media_meta.album_artist,
+                                                               content_info->media_meta.genre,
+                                                               content_info->media_meta.composer,
+                                                               content_info->media_meta.year,
+                                                               content_info->media_meta.recorded_date,
+                                                               content_info->media_meta.copyright,
+                                                               content_info->media_meta.track_num,
+                                                               content_info->media_meta.description,
+                                                               content_info->media_meta.bitrate,
+                                                               content_info->media_meta.bitpersample,
+                                                               content_info->media_meta.samplerate,
+                                                               content_info->media_meta.channel,
+                                                               content_info->media_meta.duration,
+                                                               content_info->media_meta.longitude,
+                                                               content_info->media_meta.latitude,
+                                                               content_info->media_meta.altitude,
+                                                               content_info->media_meta.exposure_time,
+                                                               content_info->media_meta.fnumber,
+                                                               content_info->media_meta.iso,
+                                                               content_info->media_meta.model,
+                                                               content_info->media_meta.width,
+                                                               content_info->media_meta.height,
+                                                               content_info->media_meta.datetaken,
+                                                               content_info->media_meta.orientation,
+                                                               content_info->media_meta.rating,
+                                                               content_info->is_drm,
+                                                               content_info->storage_type,
+                                                               burst_id,
+                                                               content_info->timeline,
+                                                               content_info->media_meta.weather,
+                                                               content_info->sync_status,
+                                                               content_info->file_name_pinyin,
+                                                               content_info->media_meta.title_pinyin,
+                                                               content_info->media_meta.album_pinyin,
+                                                               content_info->media_meta.artist_pinyin,
+                                                               content_info->media_meta.album_artist_pinyin,
+                                                               content_info->media_meta.genre_pinyin,
+                                                               content_info->media_meta.composer_pinyin,
+                                                               content_info->media_meta.copyright_pinyin,
+                                                               content_info->media_meta.description_pinyin,
+                                                               content_info->storage_uuid
+                                  );
+
+       if (burst_id) {
                sqlite3_free(burst_id);
                burst_id = NULL;
        }
 
-       if(!stack_query) {
+       if (!stack_query) {
                ret = _media_svc_sql_query(handle, sql, uid);
                sqlite3_free(sql);
                if (ret != MS_MEDIA_ERR_NONE) {
@@ -371,51 +366,50 @@ int _media_svc_update_meta_with_data(sqlite3 *handle, media_svc_content_info_s *
        sqlite3_free(test_sql);
 
        /*Update Pinyin If Support Pinyin*/
-       if(_media_svc_check_pinyin_support())
-       {
-               if(STRING_VALID(content_info->file_name))
+       if (_media_svc_check_pinyin_support()) {
+               if (STRING_VALID(content_info->file_name))
                        _media_svc_get_pinyin_str(content_info->file_name, &content_info->file_name_pinyin);
-               if(STRING_VALID(content_info->media_meta.title))
+               if (STRING_VALID(content_info->media_meta.title))
                        _media_svc_get_pinyin_str(content_info->media_meta.title, &content_info->media_meta.title_pinyin);
-               if(STRING_VALID(content_info->media_meta.album))
+               if (STRING_VALID(content_info->media_meta.album))
                        _media_svc_get_pinyin_str(content_info->media_meta.album, &content_info->media_meta.album_pinyin);
-               if(STRING_VALID(content_info->media_meta.artist))
+               if (STRING_VALID(content_info->media_meta.artist))
                        _media_svc_get_pinyin_str(content_info->media_meta.artist, &content_info->media_meta.artist_pinyin);
-               if(STRING_VALID(content_info->media_meta.album_artist))
+               if (STRING_VALID(content_info->media_meta.album_artist))
                        _media_svc_get_pinyin_str(content_info->media_meta.album_artist, &content_info->media_meta.album_artist_pinyin);
-               if(STRING_VALID(content_info->media_meta.genre))
+               if (STRING_VALID(content_info->media_meta.genre))
                        _media_svc_get_pinyin_str(content_info->media_meta.genre, &content_info->media_meta.genre_pinyin);
-               if(STRING_VALID(content_info->media_meta.composer))
+               if (STRING_VALID(content_info->media_meta.composer))
                        _media_svc_get_pinyin_str(content_info->media_meta.composer, &content_info->media_meta.composer_pinyin);
-               if(STRING_VALID(content_info->media_meta.copyright))
+               if (STRING_VALID(content_info->media_meta.copyright))
                        _media_svc_get_pinyin_str(content_info->media_meta.copyright, &content_info->media_meta.copyright_pinyin);
-               if(STRING_VALID(content_info->media_meta.description))
+               if (STRING_VALID(content_info->media_meta.description))
                        _media_svc_get_pinyin_str(content_info->media_meta.description, &content_info->media_meta.description_pinyin);
        }
 
        char *sql = sqlite3_mprintf("UPDATE %s SET title=%Q, album=%Q, artist=%Q, album_artist=%Q, genre=%Q, composer=%Q, copyright=%Q, description=%Q, \
                file_name_pinyin=%Q, title_pinyin=%Q, album_pinyin=%Q, artist_pinyin=%Q, album_artist_pinyin=%Q, genre_pinyin=%Q, composer_pinyin=%Q, copyright_pinyin=%Q, description_pinyin=%Q \
                WHERE path=%Q",
-               MEDIA_SVC_DB_TABLE_MEDIA,
-               content_info->media_meta.title,
-               content_info->media_meta.album,
-               content_info->media_meta.artist,
-               content_info->media_meta.album_artist,
-               content_info->media_meta.genre,
-               content_info->media_meta.composer,
-               content_info->media_meta.copyright,
-               content_info->media_meta.description,
-               content_info->file_name_pinyin,
-               content_info->media_meta.title_pinyin,
-               content_info->media_meta.album_pinyin,
-               content_info->media_meta.artist_pinyin,
-               content_info->media_meta.album_artist_pinyin,
-               content_info->media_meta.genre_pinyin,
-               content_info->media_meta.composer_pinyin,
-               content_info->media_meta.copyright_pinyin,
-               content_info->media_meta.description_pinyin,
-               content_info->path
-               );
+                                                               MEDIA_SVC_DB_TABLE_MEDIA,
+                                                               content_info->media_meta.title,
+                                                               content_info->media_meta.album,
+                                                               content_info->media_meta.artist,
+                                                               content_info->media_meta.album_artist,
+                                                               content_info->media_meta.genre,
+                                                               content_info->media_meta.composer,
+                                                               content_info->media_meta.copyright,
+                                                               content_info->media_meta.description,
+                                                               content_info->file_name_pinyin,
+                                                               content_info->media_meta.title_pinyin,
+                                                               content_info->media_meta.album_pinyin,
+                                                               content_info->media_meta.artist_pinyin,
+                                                               content_info->media_meta.album_artist_pinyin,
+                                                               content_info->media_meta.genre_pinyin,
+                                                               content_info->media_meta.composer_pinyin,
+                                                               content_info->media_meta.copyright_pinyin,
+                                                               content_info->media_meta.description_pinyin,
+                                                               content_info->path
+                                  );
 
        media_svc_error("");
        if (sql != NULL) {
@@ -441,25 +435,24 @@ int _media_svc_update_item_with_data(sqlite3 *handle, const char *storage_id, me
        sqlite3_free(test_sql);
 
        /*Update Pinyin If Support Pinyin*/
-       if(_media_svc_check_pinyin_support())
-       {
-               if(STRING_VALID(content_info->file_name))
+       if (_media_svc_check_pinyin_support()) {
+               if (STRING_VALID(content_info->file_name))
                        _media_svc_get_pinyin_str(content_info->file_name, &content_info->file_name_pinyin);
-               if(STRING_VALID(content_info->media_meta.title))
+               if (STRING_VALID(content_info->media_meta.title))
                        _media_svc_get_pinyin_str(content_info->media_meta.title, &content_info->media_meta.title_pinyin);
-               if(STRING_VALID(content_info->media_meta.album))
+               if (STRING_VALID(content_info->media_meta.album))
                        _media_svc_get_pinyin_str(content_info->media_meta.album, &content_info->media_meta.album_pinyin);
-               if(STRING_VALID(content_info->media_meta.artist))
+               if (STRING_VALID(content_info->media_meta.artist))
                        _media_svc_get_pinyin_str(content_info->media_meta.artist, &content_info->media_meta.artist_pinyin);
-               if(STRING_VALID(content_info->media_meta.album_artist))
+               if (STRING_VALID(content_info->media_meta.album_artist))
                        _media_svc_get_pinyin_str(content_info->media_meta.album_artist, &content_info->media_meta.album_artist_pinyin);
-               if(STRING_VALID(content_info->media_meta.genre))
+               if (STRING_VALID(content_info->media_meta.genre))
                        _media_svc_get_pinyin_str(content_info->media_meta.genre, &content_info->media_meta.genre_pinyin);
-               if(STRING_VALID(content_info->media_meta.composer))
+               if (STRING_VALID(content_info->media_meta.composer))
                        _media_svc_get_pinyin_str(content_info->media_meta.composer, &content_info->media_meta.composer_pinyin);
-               if(STRING_VALID(content_info->media_meta.copyright))
+               if (STRING_VALID(content_info->media_meta.copyright))
                        _media_svc_get_pinyin_str(content_info->media_meta.copyright, &content_info->media_meta.copyright_pinyin);
-               if(STRING_VALID(content_info->media_meta.description))
+               if (STRING_VALID(content_info->media_meta.description))
                        _media_svc_get_pinyin_str(content_info->media_meta.description, &content_info->media_meta.description_pinyin);
        }
 
@@ -468,40 +461,40 @@ int _media_svc_update_item_with_data(sqlite3 *handle, const char *storage_id, me
                composer=%Q, year=%Q, recorded_date=%Q, copyright=%Q, track_num=%Q, description=%Q, \
                bitrate=%d, bitpersample=%d, samplerate=%d, channel=%d, duration=%d, longitude=%f, latitude=%f, altitude=%f, exposure_time=%Q, fnumber=%f, iso=%d, model=%Q, width=%d, height=%d, datetaken=%Q, \
                                                                                                        orientation=%d WHERE path=%Q",
-               storage_id,
-               content_info->size,
-               content_info->modified_time,
-               content_info->thumbnail_path,
-               content_info->media_meta.title,
-               content_info->album_id,
-               content_info->media_meta.album,
-               content_info->media_meta.artist,
-               content_info->media_meta.album_artist,
-               content_info->media_meta.genre,
-               content_info->media_meta.composer,
-               content_info->media_meta.year,
-               content_info->media_meta.recorded_date,
-               content_info->media_meta.copyright,
-               content_info->media_meta.track_num,
-               content_info->media_meta.description,
-               content_info->media_meta.bitrate,
-               content_info->media_meta.bitpersample,
-               content_info->media_meta.samplerate,
-               content_info->media_meta.channel,
-               content_info->media_meta.duration,
-               content_info->media_meta.longitude,
-               content_info->media_meta.latitude,
-               content_info->media_meta.altitude,
-               content_info->media_meta.exposure_time,
-               content_info->media_meta.fnumber,
-               content_info->media_meta.iso,
-               content_info->media_meta.model,
-               content_info->media_meta.width,
-               content_info->media_meta.height,
-               content_info->media_meta.datetaken,
-               content_info->media_meta.orientation,
-               content_info->path
-               );
+                                                               storage_id,
+                                                               content_info->size,
+                                                               content_info->modified_time,
+                                                               content_info->thumbnail_path,
+                                                               content_info->media_meta.title,
+                                                               content_info->album_id,
+                                                               content_info->media_meta.album,
+                                                               content_info->media_meta.artist,
+                                                               content_info->media_meta.album_artist,
+                                                               content_info->media_meta.genre,
+                                                               content_info->media_meta.composer,
+                                                               content_info->media_meta.year,
+                                                               content_info->media_meta.recorded_date,
+                                                               content_info->media_meta.copyright,
+                                                               content_info->media_meta.track_num,
+                                                               content_info->media_meta.description,
+                                                               content_info->media_meta.bitrate,
+                                                               content_info->media_meta.bitpersample,
+                                                               content_info->media_meta.samplerate,
+                                                               content_info->media_meta.channel,
+                                                               content_info->media_meta.duration,
+                                                               content_info->media_meta.longitude,
+                                                               content_info->media_meta.latitude,
+                                                               content_info->media_meta.altitude,
+                                                               content_info->media_meta.exposure_time,
+                                                               content_info->media_meta.fnumber,
+                                                               content_info->media_meta.iso,
+                                                               content_info->media_meta.model,
+                                                               content_info->media_meta.width,
+                                                               content_info->media_meta.height,
+                                                               content_info->media_meta.datetaken,
+                                                               content_info->media_meta.orientation,
+                                                               content_info->path
+                                  );
 
        ret = _media_svc_sql_query(handle, sql, uid);
        sqlite3_free(sql);
@@ -518,10 +511,9 @@ int _media_svc_get_thumbnail_path_by_path(sqlite3 *handle, const char *storage_i
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
 
        if (ret != MS_MEDIA_ERR_NONE) {
-               if(ret == MS_MEDIA_ERR_DB_NO_RECORD) {
+               if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
                        media_svc_debug("there is no thumbnail.");
-               }
-               else {
+               } else {
                        media_svc_error("error when _media_svc_get_thumbnail_path_by_path. err = [%d]", ret);
                }
                return ret;
@@ -560,7 +552,7 @@ int _media_svc_delete_item_by_path(sqlite3 *handle, const char *storage_id, cons
        int ret = MS_MEDIA_ERR_NONE;
        char *sql = sqlite3_mprintf("DELETE FROM '%s' WHERE path='%q'", storage_id, path);
 
-       if(!stack_query) {
+       if (!stack_query) {
                ret = _media_svc_sql_query(handle, sql, uid);
                sqlite3_free(sql);
                if (ret != MS_MEDIA_ERR_NONE) {
@@ -599,7 +591,7 @@ int _media_svc_delete_invalid_items(sqlite3 *handle, media_svc_storage_type_e st
        media_svc_debug("invalid count: %d", invalid_count);
 
        if (invalid_count > 0) {
-               thumbpath_record = (media_svc_thumbnailpath_s *)calloc( invalid_count, sizeof(media_svc_thumbnailpath_s));
+               thumbpath_record = (media_svc_thumbnailpath_s *)calloc(invalid_count, sizeof(media_svc_thumbnailpath_s));
                if (thumbpath_record == NULL) {
                        media_svc_error("fail to memory allocation");
                        return MS_MEDIA_ERR_OUT_OF_MEMORY;
@@ -618,7 +610,7 @@ int _media_svc_delete_invalid_items(sqlite3 *handle, media_svc_storage_type_e st
        char *sql = sqlite3_mprintf("DELETE FROM %s WHERE validity = 0 AND storage_type=%d", MEDIA_SVC_DB_TABLE_MEDIA, storage_type);
        ret = _media_svc_sql_query(handle, sql, uid);
        sqlite3_free(sql);
-       if(ret != MS_MEDIA_ERR_NONE) {
+       if (ret != MS_MEDIA_ERR_NONE) {
                SAFE_FREE(thumbpath_record);
                return ret;
        }
@@ -627,7 +619,7 @@ int _media_svc_delete_invalid_items(sqlite3 *handle, media_svc_storage_type_e st
        for (idx = 0; idx < invalid_count; idx++) {
                if ((strlen(thumbpath_record[idx].thumbnail_path) > 0) && (strncmp(thumbpath_record[idx].thumbnail_path, _media_svc_get_thumb_default_path(uid), sizeof(_media_svc_get_thumb_default_path(uid))) != 0)) {
                        ret = _media_svc_remove_file(thumbpath_record[idx].thumbnail_path);
-                       if(ret != MS_MEDIA_ERR_NONE) {
+                       if (ret != MS_MEDIA_ERR_NONE) {
                                media_svc_error("fail to remove thumbnail file.");
                        }
                }
@@ -651,7 +643,7 @@ int _media_svc_delete_invalid_folder_items(sqlite3 *handle, const char *folder_p
        media_svc_debug("invalid count: %d", invalid_count);
 
        if (invalid_count > 0) {
-               thumbpath_record = (media_svc_thumbnailpath_s *)calloc( invalid_count, sizeof(media_svc_thumbnailpath_s));
+               thumbpath_record = (media_svc_thumbnailpath_s *)calloc(invalid_count, sizeof(media_svc_thumbnailpath_s));
                if (thumbpath_record == NULL) {
                        media_svc_error("fail to memory allocation");
                        return MS_MEDIA_ERR_OUT_OF_MEMORY;
@@ -670,7 +662,7 @@ int _media_svc_delete_invalid_folder_items(sqlite3 *handle, const char *folder_p
        char *sql = sqlite3_mprintf("DELETE FROM %s WHERE validity = 0 AND path LIKE '%q/%%'", MEDIA_SVC_DB_TABLE_MEDIA, folder_path);
        ret = _media_svc_sql_query(handle, sql, uid);
        sqlite3_free(sql);
-       if(ret != MS_MEDIA_ERR_NONE) {
+       if (ret != MS_MEDIA_ERR_NONE) {
                SAFE_FREE(thumbpath_record);
                return ret;
        }
@@ -679,7 +671,7 @@ int _media_svc_delete_invalid_folder_items(sqlite3 *handle, const char *folder_p
        for (idx = 0; idx < invalid_count; idx++) {
                if ((strlen(thumbpath_record[idx].thumbnail_path) > 0) && (strncmp(thumbpath_record[idx].thumbnail_path, _media_svc_get_thumb_default_path(uid), sizeof(_media_svc_get_thumb_default_path(uid))) != 0)) {
                        ret = _media_svc_remove_file(thumbpath_record[idx].thumbnail_path);
-                       if(ret != MS_MEDIA_ERR_NONE) {
+                       if (ret != MS_MEDIA_ERR_NONE) {
                                media_svc_error("fail to remove thumbnail file.");
                        }
                }
@@ -696,7 +688,7 @@ int _media_svc_update_item_validity(sqlite3 *handle, const char *path, int valid
 
        char *sql = sqlite3_mprintf("UPDATE %s SET validity=%d WHERE path= '%q'", MEDIA_SVC_DB_TABLE_MEDIA, validity, path);
 
-       if(!stack_query) {
+       if (!stack_query) {
                ret = _media_svc_sql_query(handle, sql, uid);
                sqlite3_free(sql);
        } else {
@@ -741,7 +733,7 @@ int _media_svc_update_folder_item_validity(sqlite3 *handle, const char *folder_p
        sql = sqlite3_mprintf("SELECT folder_uuid FROM %s WHERE path='%q'", MEDIA_SVC_DB_TABLE_FOLDER, folder_path);
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
        if (ret != MS_MEDIA_ERR_NONE) {
-               if(ret == MS_MEDIA_ERR_DB_NO_RECORD)
+               if (ret == MS_MEDIA_ERR_DB_NO_RECORD)
                        media_svc_debug("folder not exist");
                else
                        media_svc_error("error when get folder_id. err = [%d]", ret);
@@ -749,7 +741,7 @@ int _media_svc_update_folder_item_validity(sqlite3 *handle, const char *folder_p
                return ret;
        }
 
-       _strncpy_safe(folder_uuid, (const char *)sqlite3_column_text(sql_stmt, 0), MEDIA_SVC_UUID_SIZE+1);
+       _strncpy_safe(folder_uuid, (const char *)sqlite3_column_text(sql_stmt, 0), MEDIA_SVC_UUID_SIZE + 1);
        SQLITE3_FINALIZE(sql_stmt);
 
        /*Update folder item validity*/
@@ -774,7 +766,7 @@ int _media_svc_update_recursive_folder_item_validity(sqlite3 *handle, const char
 }
 
 int _media_svc_update_item_by_path(sqlite3 *handle, const char *src_path, media_svc_storage_type_e dest_storage, const char *dest_path,
-                               const char *file_name, int modified_time, const char *folder_uuid, const char *thumb_path, bool stack_query, uid_t uid)
+                                   const char *file_name, int modified_time, const char *folder_uuid, const char *thumb_path, bool stack_query, uid_t uid)
 {
        /* update path, filename, modified_time, folder_uuid, thumbnail_path, */
        /* played_count, last_played_time, last_played_position, favourite, storaget_type*/
@@ -782,21 +774,21 @@ int _media_svc_update_item_by_path(sqlite3 *handle, const char *src_path, media_
        int ret = MS_MEDIA_ERR_NONE;
        char *sql = NULL;
 
-       if(thumb_path != NULL) {
+       if (thumb_path != NULL) {
                sql = sqlite3_mprintf("UPDATE %s SET \
                                        path=%Q, file_name=%Q, modified_time=%d, folder_uuid=%Q, thumbnail_path=%Q, storage_type=%d, \
                                        played_count=0, last_played_time=0, last_played_position=0 \
                                        WHERE path=%Q",
-                                       MEDIA_SVC_DB_TABLE_MEDIA, dest_path, file_name, modified_time, folder_uuid, thumb_path, dest_storage, src_path);
+                                     MEDIA_SVC_DB_TABLE_MEDIA, dest_path, file_name, modified_time, folder_uuid, thumb_path, dest_storage, src_path);
        } else {
                sql = sqlite3_mprintf("UPDATE %s SET \
                                        path=%Q, file_name=%Q, modified_time=%d, folder_uuid=%Q, storage_type=%d, \
                                        played_count=0, last_played_time=0, last_played_position=0 \
                                        WHERE path=%Q",
-                                       MEDIA_SVC_DB_TABLE_MEDIA, dest_path, file_name, modified_time, folder_uuid, dest_storage, src_path);
+                                     MEDIA_SVC_DB_TABLE_MEDIA, dest_path, file_name, modified_time, folder_uuid, dest_storage, src_path);
        }
 
-       if(!stack_query) {
+       if (!stack_query) {
                ret = _media_svc_sql_query(handle, sql, uid);
                sqlite3_free(sql);
        } else {
@@ -814,7 +806,7 @@ int _media_svc_list_query_do(sqlite3 *handle, media_svc_query_type_e query_type,
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
        if (query_type == MEDIA_SVC_QUERY_SET_ITEM_VALIDITY)
-               ret = _media_svc_sql_query_list(handle, &g_media_svc_item_validity_query_list,uid);
+               ret = _media_svc_sql_query_list(handle, &g_media_svc_item_validity_query_list, uid);
        else if (query_type == MEDIA_SVC_QUERY_MOVE_ITEM)
                ret = _media_svc_sql_query_list(handle, &g_media_svc_move_item_query_list, uid);
        else if (query_type == MEDIA_SVC_QUERY_INSERT_ITEM)
@@ -824,14 +816,14 @@ int _media_svc_list_query_do(sqlite3 *handle, media_svc_query_type_e query_type,
 
        if (ret != MS_MEDIA_ERR_NONE) {
                media_svc_error("_media_svc_list_query_do failed. start rollback");
-               _media_svc_sql_rollback_trans(handle,uid);
+               _media_svc_sql_rollback_trans(handle, uid);
                return ret;
        }
 
        ret = _media_svc_sql_end_trans(handle, uid);
        if (ret != MS_MEDIA_ERR_NONE) {
                media_svc_error("mb_svc_sqlite3_commit_trans failed.. Now start to rollback");
-               _media_svc_sql_rollback_trans(handle,uid);
+               _media_svc_sql_rollback_trans(handle, uid);
                return ret;
        }
 
@@ -900,18 +892,18 @@ int _media_svc_get_noti_info(sqlite3 *handle,  const char *storage_id, const cha
        }
 
        if (update_item == MS_MEDIA_ITEM_FILE) {
-               if(STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 0)))
+               if (STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 0)))
                        (*item)->media_uuid = strdup((const char *)sqlite3_column_text(sql_stmt, 0));
 
                (*item)->media_type = sqlite3_column_int(sql_stmt, 1);
 
-               if(STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 2)))
+               if (STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 2)))
                        (*item)->mime_type = strdup((const char *)sqlite3_column_text(sql_stmt, 2));
        } else if (update_item == MS_MEDIA_ITEM_DIRECTORY) {
                if (is_root_dir) {
-                               (*item)->media_uuid = NULL;
+                       (*item)->media_uuid = NULL;
                } else {
-                       if(STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 0)))
+                       if (STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 0)))
                                (*item)->media_uuid = strdup((const char *)sqlite3_column_text(sql_stmt, 0));
                }
        }
@@ -926,7 +918,7 @@ int _media_svc_count_invalid_folder_items(sqlite3 *handle, const char *folder_pa
        int ret = MS_MEDIA_ERR_NONE;
        sqlite3_stmt *sql_stmt = NULL;
        char *sql = sqlite3_mprintf("SELECT count(*) FROM %s WHERE validity=0 AND path LIKE '%q/%%'",
-                                       MEDIA_SVC_DB_TABLE_MEDIA, folder_path);
+                                   MEDIA_SVC_DB_TABLE_MEDIA, folder_path);
 
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
 
@@ -967,7 +959,7 @@ int _media_svc_get_fileinfo_by_path(sqlite3 *handle, const char *path, time_t *m
        int ret = MS_MEDIA_ERR_NONE;
        sqlite3_stmt *sql_stmt = NULL;
        char *sql = sqlite3_mprintf("SELECT modified_time, size FROM %s WHERE path='%q'",
-                                       MEDIA_SVC_DB_TABLE_MEDIA, path);
+                                   MEDIA_SVC_DB_TABLE_MEDIA, path);
 
        ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
 
index 5537f0b..405406c 100755 (executable)
@@ -32,21 +32,15 @@ static int __media_svc_publish_noti_by_item(media_svc_noti_item *noti_item)
 {
        int ret = MS_MEDIA_ERR_NONE;
 
-       if (noti_item && noti_item->path)
-       {
+       if (noti_item && noti_item->path) {
                ret = media_db_update_send(noti_item->pid, noti_item->update_item, noti_item->update_type, noti_item->path, noti_item->media_uuid, noti_item->media_type, noti_item->mime_type);
-               if(ret != MS_MEDIA_ERR_NONE)
-               {
+               if (ret != MS_MEDIA_ERR_NONE) {
                        media_svc_error("media_db_update_send failed : %d [%s]", ret, noti_item->path);
                        ret = MS_MEDIA_ERR_SEND_NOTI_FAIL;
-               }
-               else
-               {
+               } else {
                        media_svc_debug("media_db_update_send success");
                }
-       }
-       else
-       {
+       } else {
                media_svc_debug("invalid path");
                ret = MS_MEDIA_ERR_INVALID_PARAMETER;
        }
@@ -55,30 +49,24 @@ static int __media_svc_publish_noti_by_item(media_svc_noti_item *noti_item)
 }
 
 int _media_svc_publish_noti(media_item_type_e update_item,
-                                                       media_item_update_type_e update_type,
-                                                       const char *path,
-                                                       media_type_e media_type,
-                                                       const char *uuid,
-                                                       const char *mime_type
-)
+                            media_item_update_type_e update_type,
+                            const char *path,
+                            media_type_e media_type,
+                            const char *uuid,
+                            const char *mime_type
+                           )
 {
        int ret = MS_MEDIA_ERR_NONE;
 
-       if(STRING_VALID(path))
-       {
+       if (STRING_VALID(path)) {
                ret = media_db_update_send(getpid(), update_item, update_type, (char *)path, (char *)uuid, media_type, (char *)mime_type);
-               if(ret != MS_MEDIA_ERR_NONE)
-               {
+               if (ret != MS_MEDIA_ERR_NONE) {
                        media_svc_error("Send noti failed : %d [%s]", ret, path);
                        ret = MS_MEDIA_ERR_SEND_NOTI_FAIL;
-               }
-               else
-               {
+               } else {
                        media_svc_debug("Send noti success [%d][%d]", update_item, update_type);
                }
-       }
-       else
-       {
+       } else {
                media_svc_debug("invalid path");
                ret = MS_MEDIA_ERR_INVALID_PARAMETER;
        }
@@ -110,7 +98,7 @@ int _media_svc_insert_item_to_noti_list(media_svc_content_info_s *content_info,
 
        if (noti_list && content_info) {
                noti_list[cnt].pid = g_noti_from_pid;
-               noti_list[cnt].update_item = MS_MEDIA_ITEM_INSERT; // INSERT
+               noti_list[cnt].update_item = MS_MEDIA_ITEM_INSERT; /* INSERT */
                noti_list[cnt].update_type = MS_MEDIA_ITEM_FILE;
                noti_list[cnt].media_type = content_info->media_type;
                if (content_info->media_uuid)
index 7be2dfa..c4f6d65 100755 (executable)
@@ -41,10 +41,9 @@ int _media_svc_init_storage(sqlite3 *handle, uid_t uid)
        storage_cnt = sqlite3_column_int(sql_stmt, 0);
        SQLITE3_FINALIZE(sql_stmt);
 
-       if(storage_cnt == 0)
-       {
+       if (storage_cnt == 0) {
                sql = sqlite3_mprintf("INSERT INTO %s (storage_uuid, storage_name, storage_path, storage_type) VALUES ('%s', '%s', '%s', 0);",
-                       MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_MEDIA, _media_svc_get_path(uid));
+                                     MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_MEDIA, _media_svc_get_path(uid));
 
                ret = _media_svc_sql_query(handle, sql, uid);
                sqlite3_free(sql);
@@ -58,7 +57,7 @@ int _media_svc_append_storage(sqlite3 *handle, const char *storage_id, const cha
 {
        int ret = MS_MEDIA_ERR_NONE;
        char *sql = sqlite3_mprintf("INSERT INTO %s (storage_uuid, storage_name, storage_path, storage_account, storage_type) values (%Q, %Q, %Q, %Q, %d); ",
-                                                        MEDIA_SVC_DB_TABLE_STORAGE, storage_id, storage_name, storage_path, storage_account, storage_type);
+                                   MEDIA_SVC_DB_TABLE_STORAGE, storage_id, storage_name, storage_path, storage_account, storage_type);
 
        ret = _media_svc_sql_query(handle, sql, uid);
        sqlite3_free(sql);
index 77fefea..a7a54a8 100755 (executable)
@@ -50,7 +50,7 @@
 #include "media-svc-localize_tw.h"
 
 #define MEDIA_SVC_FILE_EXT_LEN_MAX                             6                       /**<  Maximum file ext lenth*/
-#define GLOBAL_USER    0 //#define     tzplatform_getenv(TZ_GLOBAL) //TODO
+#define GLOBAL_USER    0 /*#define     tzplatform_getenv(TZ_GLOBAL) //TODO */
 
 /* Define data structures for media type and mime type */
 #define MEDIA_SVC_CATEGORY_UNKNOWN     0x00000000      /**< Default */
@@ -137,7 +137,7 @@ typedef enum {
        MEDIA_SVC_EXTRACTED_FIELD_ALBUM_ARTIST          = MEDIA_SVC_EXTRACTED_FIELD_NONE << 11,
 } media_svc_extracted_field_e;
 
-static char_media_svc_get_thumb_path(uid_t uid);
+static char *_media_svc_get_thumb_path(uid_t uid);
 
 char *_media_info_generate_uuid(void)
 {
@@ -147,7 +147,7 @@ char *_media_info_generate_uuid(void)
        uuid_generate(uuid_value);
        uuid_unparse(uuid_value, uuid_unparsed);
 
-       //media_svc_debug("UUID : %s", uuid_unparsed);
+       /*media_svc_debug("UUID : %s", uuid_unparsed); */
        return uuid_unparsed;
 }
 
@@ -163,8 +163,8 @@ void _strncpy_safe(char *x_dst, const char *x_src, int max_len)
                return;
        }
 
-    strncpy(x_dst, x_src, max_len-1);
-       x_dst[max_len-1] = '\0';
+       strncpy(x_dst, x_src, max_len - 1);
+       x_dst[max_len - 1] = '\0';
 }
 
 int __media_svc_malloc_and_strncpy(char **dst, const char *src)
@@ -221,40 +221,32 @@ static int __media_svc_split_to_double(char *input, double *arr)
        char tmp_arr[255] = {0, };
        int len = 0, idx = 0, arr_idx = 0, str_idx = 0;
 
-       if(!STRING_VALID(input))
-       {
+       if (!STRING_VALID(input)) {
                media_svc_error("Invalid parameter");
                return MS_MEDIA_ERR_INVALID_PARAMETER;
        }
        memset(tmp_arr, 0x0, sizeof(tmp_arr));
 
-       //media_svc_debug("input: [%s]", input);
+       /*media_svc_debug("input: [%s]", input); */
 
        len = strlen(input);
 
-       for (idx = 0; idx < (len+1); idx++)
-       {
-               if(input[idx] == ' ')
-               {
+       for (idx = 0; idx < (len + 1); idx++) {
+               if (input[idx] == ' ') {
                        continue;
-               }
-               else if((input[idx] == ',') || (idx == len))
-               {
+               } else if ((input[idx] == ', ') || (idx == len)) {
                        arr[arr_idx] = atof(tmp_arr);
                        arr_idx++;
                        str_idx = 0;
-                       //media_svc_debug("idx=[%d] arr_idx=[%d] tmp_attr[%s] atof(tmp_arr)=[%f]", idx, arr_idx, tmp_arr, atof(tmp_arr));
+                       /*media_svc_debug("idx=[%d] arr_idx=[%d] tmp_attr[%s] atof(tmp_arr)=[%f]", idx, arr_idx, tmp_arr, atof(tmp_arr)); */
                        memset(tmp_arr, 0x0, sizeof(tmp_arr));
-               }
-               else
-               {
+               } else {
                        tmp_arr[str_idx] = input[idx];
                        str_idx++;
                }
        }
 
-       if(arr_idx != 3)
-       {
+       if (arr_idx != 3) {
                media_svc_error("Error when parsing GPS [%d]", arr_idx);
                return MS_MEDIA_ERR_INTERNAL;
        }
@@ -263,17 +255,17 @@ static int __media_svc_split_to_double(char *input, double *arr)
 }
 
 static int __media_svc_get_exif_info(ExifData *ed,
-                                                                               char *buf,
-                                                                               int *i_value,
-                                                                               double *d_value,
-                                                                               int ifdtype,
-                                                                               long tagtype)
+                                     char *buf,
+                                     int *i_value,
+                                     double *d_value,
+                                     int ifdtype,
+                                     long tagtype)
 {
        ExifEntry *entry;
        ExifTag tag;
 
        if (ed == NULL) {
-               //media_svc_debug("ExifData is NULL");
+               /*media_svc_debug("ExifData is NULL"); */
                return MS_MEDIA_ERR_INVALID_PARAMETER;
        }
 
@@ -283,8 +275,8 @@ static int __media_svc_get_exif_info(ExifData *ed,
        if (entry) {
                /* Get the contents of the tag in human-readable form */
                if (tag == EXIF_TAG_ORIENTATION ||
-                               tag == EXIF_TAG_PIXEL_X_DIMENSION ||
-                               tag == EXIF_TAG_PIXEL_Y_DIMENSION) {
+                   tag == EXIF_TAG_PIXEL_X_DIMENSION ||
+                   tag == EXIF_TAG_PIXEL_Y_DIMENSION) {
 
                        if (i_value == NULL) {
                                media_svc_error("i_value is NULL");
@@ -293,7 +285,7 @@ static int __media_svc_get_exif_info(ExifData *ed,
 
                        ExifByteOrder mByteOrder = exif_data_get_byte_order(ed);
                        short exif_value = exif_get_short(entry->data, mByteOrder);
-                       //media_svc_debug("%s : %d", exif_tag_get_name_in_ifd(tag,ifd), exif_value);
+                       /*media_svc_debug("%s : %d", exif_tag_get_name_in_ifd(tag, ifd), exif_value); */
                        *i_value = (int)exif_value;
 
                } else if (tag == EXIF_TAG_GPS_LATITUDE || tag == EXIF_TAG_GPS_LONGITUDE || tag == EXIF_TAG_GPS_ALTITUDE) {
@@ -308,7 +300,7 @@ static int __media_svc_get_exif_info(ExifData *ed,
                        exif_entry_get_value(entry, gps_buf, sizeof(gps_buf));
                        gps_buf[strlen(gps_buf)] = '\0';
                        int ret = MS_MEDIA_ERR_NONE;
-                       //media_svc_debug("%s: [%s]", exif_tag_get_name_in_ifd(tag, ifd), gps_buf);
+                       /*media_svc_debug("%s: [%s]", exif_tag_get_name_in_ifd(tag, ifd), gps_buf); */
 
                        double tmp_arr[3] = { 0.0, 0.0, 0.0 };
 
@@ -316,7 +308,7 @@ static int __media_svc_get_exif_info(ExifData *ed,
                        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
                        *d_value = tmp_arr[0] + tmp_arr[1] / 60 + tmp_arr[2] / 3600;
-                       //media_svc_debug("GPS value is [%f], %f, %f, %f", *d_value, tmp_arr[0], tmp_arr[1], tmp_arr[2]);
+                       /*media_svc_debug("GPS value is [%f], %f, %f, %f", *d_value, tmp_arr[0], tmp_arr[1], tmp_arr[2]); */
                } else {
 
                        if (buf == NULL) {
@@ -339,8 +331,7 @@ time_t __media_svc_get_timeline_from_str(const char *timstr)
        time_t rawtime;
        struct tm timeinfo;
 
-       if (!STRING_VALID(timstr))
-       {
+       if (!STRING_VALID(timstr)) {
                media_svc_error("Invalid Parameter");
                return 0;
        }
@@ -350,35 +341,29 @@ time_t __media_svc_get_timeline_from_str(const char *timstr)
        memset(&t, 0x00, sizeof(struct tm));
 
        tzset();
-       time ( &rawtime );
-       localtime_r (&rawtime, &timeinfo);
+       time(&rawtime);
+       localtime_r(&rawtime, &timeinfo);
 
-       if (strptime(timstr, "%Y:%m:%d %H:%M:%S", &t) || strptime(timstr, "%Y-%m-%d %H:%M:%S", &t))
-       {
+       if (strptime(timstr, "%Y:%m:%d %H:%M:%S", &t) || strptime(timstr, "%Y-%m-%d %H:%M:%S", &t)) {
                t.tm_isdst = timeinfo.tm_isdst;
-               if(t.tm_isdst != 0) {
+               if (t.tm_isdst != 0) {
                        media_svc_error("DST %d", t.tm_isdst);
                }
 
                modified_t = mktime(&t);
-               if(modified_t > 0)
-               {
+               if (modified_t > 0) {
                        return modified_t;
-               }
-               else
-               {
+               } else {
                        media_svc_error("Failed to get timeline : [%s] [%d:%d:%d: %d:%d:%d]", timstr, t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec);
                }
-       }
-       else
-       {
+       } else {
                media_svc_error("Failed to get timeline : [%s]", timstr);
        }
 
        return 0;
 }
 
-static int __media_svc_get_content_type_from_mime(const char * path, const char * mimetype, int * category)
+static int __media_svc_get_content_type_from_mime(const char *path, const char *mimetype, int *category)
 {
        int idx = 0;
 
@@ -404,7 +389,7 @@ static int __media_svc_get_content_type_from_mime(const char * path, const char
                        }
                }
 
-               if(strncasecmp(mimetype, "text/x-iMelody", strlen("text/x-iMelody")) == 0) {
+               if (strncasecmp(mimetype, "text/x-iMelody", strlen("text/x-iMelody")) == 0) {
                        *category ^= MEDIA_SVC_CATEGORY_ETC;
                        *category |= MEDIA_SVC_CATEGORY_SOUND;
                }
@@ -423,7 +408,7 @@ static int __media_svc_get_content_type_from_mime(const char * path, const char
                }
 
                /*m3u file is playlist but mime type is "audio/x-mpegurl". but It has to be classified into MS_CATEGORY_ETC since playlist is not a sound track*/
-               if(strncasecmp(mimetype, "audio/x-mpegurl", strlen("audio/x-mpegurl")) == 0) {
+               if (strncasecmp(mimetype, "audio/x-mpegurl", strlen("audio/x-mpegurl")) == 0) {
                        *category ^= MEDIA_SVC_CATEGORY_SOUND;
                        *category |= MEDIA_SVC_CATEGORY_ETC;
                }
@@ -445,7 +430,7 @@ static int __media_svc_get_content_type_from_mime(const char * path, const char
                                                *category |= MEDIA_SVC_CATEGORY_MUSIC;
                                        }
                                }
-                               //even though error occued in mm_file_get_stream_info return MS_MEDIA_ERR_NONE. fail means invalid media content.
+                               /*even though error occued in mm_file_get_stream_info return MS_MEDIA_ERR_NONE. fail means invalid media content. */
                        }
                }
        }
@@ -500,7 +485,7 @@ static bool __media_svc_get_file_ext(const char *file_path, char *file_ext)
 
        for (i = strlen(file_path); i >= 0; i--) {
                if (file_path[i] == '.') {
-                       _strncpy_safe(file_ext, &file_path[i+1], MEDIA_SVC_FILE_EXT_LEN_MAX);
+                       _strncpy_safe(file_ext, &file_path[i + 1], MEDIA_SVC_FILE_EXT_LEN_MAX);
                        return true;
                }
 
@@ -591,7 +576,7 @@ static int _media_svc_save_image(void *image, int size, char *image_path, uid_t
        return MS_MEDIA_ERR_NONE;
 }
 
-static char *_media_svc_get_title_from_filepath (const char *path)
+static char *_media_svc_get_title_from_filepath(const char *path)
 {
        char *filename = NULL;
        char *title = NULL;
@@ -626,7 +611,7 @@ static char *_media_svc_get_title_from_filepath (const char *path)
                return NULL;
        }
 
-       title = g_strndup(filename, new_title_len < MEDIA_SVC_PATHNAME_SIZE ? new_title_len : MEDIA_SVC_PATHNAME_SIZE-1);
+       title = g_strndup(filename, new_title_len < MEDIA_SVC_PATHNAME_SIZE ? new_title_len : MEDIA_SVC_PATHNAME_SIZE - 1);
 
        SAFE_FREE(filename);
 
@@ -635,10 +620,9 @@ static char *_media_svc_get_title_from_filepath (const char *path)
        return title;
 }
 
-int _media_svc_rename_file( const char *old_name, const char *new_name)
+int _media_svc_rename_file(const char *old_name, const char *new_name)
 {
-       if((old_name == NULL) || (new_name == NULL))
-       {
+       if ((old_name == NULL) || (new_name == NULL)) {
                media_svc_error("invalid file name");
                return MS_MEDIA_ERR_INVALID_PARAMETER;
        }
@@ -705,50 +689,48 @@ int _media_svc_remove_all_files_in_dir(const char *dir_path)
        return MS_MEDIA_ERR_NONE;
 }
 
-static int _mkdir(const char *dir, mode_t mode) {
-        char tmp[256];
-        char *p = NULL;
-        size_t len;
-
-        snprintf(tmp, sizeof(tmp),"%s",dir);
-        len = strlen(tmp);
-        if(tmp[len - 1] == '/')
-                tmp[len - 1] = 0;
-        for(p = tmp + 1; *p; p++)
-                if(*p == '/') {
-                        *p = 0;
-                        mkdir(tmp, mode);
-                        *p = '/';
-                }
-        return mkdir(tmp, mode);
+static int _mkdir(const char *dir, mode_t mode)
+{
+       char tmp[256];
+       char *p = NULL;
+       size_t len;
+
+       snprintf(tmp, sizeof(tmp), "%s", dir);
+       len = strlen(tmp);
+       if (tmp[len - 1] == '/')
+               tmp[len - 1] = 0;
+       for (p = tmp + 1; *p; p++)
+               if (*p == '/') {
+                       *p = 0;
+                       mkdir(tmp, mode);
+                       *p = '/';
+               }
+       return mkdir(tmp, mode);
 }
 
-char_media_svc_get_thumb_internal_path(uid_t uid)
+char *_media_svc_get_thumb_internal_path(uid_t uid)
 {
        char *result_psswd = NULL;
        struct group *grpinfo = NULL;
-       if(uid == getuid())
-       {
+       if (uid == getuid()) {
                result_psswd = strdup(MEDIA_SVC_THUMB_INTERNAL_PATH);
                grpinfo = getgrnam("users");
-               if(grpinfo == NULL) {
+               if (grpinfo == NULL) {
                        media_svc_error("getgrnam(users) returns NULL !");
                        return NULL;
                }
-       }
-       else
-       {
+       } else {
                struct passwd *userinfo = getpwuid(uid);
-               if(userinfo == NULL) {
+               if (userinfo == NULL) {
                        media_svc_error("getpwuid(%d) returns NULL !", uid);
                        return NULL;
                }
                grpinfo = getgrnam("users");
-               if(grpinfo == NULL) {
+               if (grpinfo == NULL) {
                        media_svc_error("getgrnam(users) returns NULL !");
                        return NULL;
                }
-               // Compare git_t type and not group name
+               /* Compare git_t type and not group name */
                if (grpinfo->gr_gid != userinfo->pw_gid) {
                        media_svc_error("UID [%d] does not belong to 'users' group!", uid);
                        return NULL;
@@ -756,37 +738,34 @@ char* _media_svc_get_thumb_internal_path(uid_t uid)
                asprintf(&result_psswd, "%s/data/file-manager-service/.thumb/phone", userinfo->pw_dir);
        }
 
-       _mkdir(result_psswd,S_IRWXU | S_IRWXG | S_IRWXO);
+       _mkdir(result_psswd, S_IRWXU | S_IRWXG | S_IRWXO);
 
        return result_psswd;
 }
 
-char_media_svc_get_thumb_external_path(uid_t uid)
+char *_media_svc_get_thumb_external_path(uid_t uid)
 {
        char *result_psswd = NULL;
-       struct group *grpinfo = NULL;   
-       if(uid == getuid())
-       {
+       struct group *grpinfo = NULL;
+       if (uid == getuid()) {
                result_psswd = strdup(MEDIA_SVC_THUMB_EXTERNAL_PATH);
                grpinfo = getgrnam("users");
-               if(grpinfo == NULL) {
+               if (grpinfo == NULL) {
                        media_svc_error("getgrnam(users) returns NULL !");
                        return NULL;
                }
-       }
-       else
-       {
+       } else {
                struct passwd *userinfo = getpwuid(uid);
-               if(userinfo == NULL) {
+               if (userinfo == NULL) {
                        media_svc_error("getpwuid(%d) returns NULL !", uid);
                        return NULL;
                }
                grpinfo = getgrnam("users");
-               if(grpinfo == NULL) {
+               if (grpinfo == NULL) {
                        media_svc_error("getgrnam(users) returns NULL !");
                        return NULL;
                }
-               // Compare git_t type and not group name
+               /* Compare git_t type and not group name */
                if (grpinfo->gr_gid != userinfo->pw_gid) {
                        media_svc_error("UID [%d] does not belong to 'users' group!", uid);
                        return NULL;
@@ -794,12 +773,13 @@ char* _media_svc_get_thumb_external_path(uid_t uid)
                asprintf(&result_psswd, "%s/data/file-manager-service/.thumb/mmc", userinfo->pw_dir);
        }
 
-       _mkdir(result_psswd,S_IRWXU | S_IRWXG | S_IRWXO);
+       _mkdir(result_psswd, S_IRWXU | S_IRWXG | S_IRWXO);
 
        return result_psswd;
 }
 
-static int __media_svc_check_thumb_dir(char *thumb_dir) {
+static int __media_svc_check_thumb_dir(char *thumb_dir)
+{
        int ret = 0;
        DIR *dir = NULL;
 
@@ -835,32 +815,29 @@ ERROR:
        return -1;
 }
 
-static char_media_svc_get_thumb_path(uid_t uid)
+static char *_media_svc_get_thumb_path(uid_t uid)
 {
        char *result_psswd = NULL;
        struct group *grpinfo = NULL;
-       if(uid == getuid())
-       {
+       if (uid == getuid()) {
                result_psswd = strdup(MEDIA_SVC_THUMB_PATH_PREFIX);
                grpinfo = getgrnam("users");
-               if(grpinfo == NULL) {
+               if (grpinfo == NULL) {
                        media_svc_error("getgrnam(users) returns NULL !");
                        return NULL;
                }
-       }
-       else
-       {
+       } else {
                struct passwd *userinfo = getpwuid(uid);
-               if(userinfo == NULL) {
+               if (userinfo == NULL) {
                        media_svc_error("getpwuid(%d) returns NULL !", uid);
                        return NULL;
                }
                grpinfo = getgrnam("users");
-               if(grpinfo == NULL) {
+               if (grpinfo == NULL) {
                        media_svc_error("getgrnam(users) returns NULL !");
                        return NULL;
                }
-               // Compare git_t type and not group name
+               /* Compare git_t type and not group name */
                if (grpinfo->gr_gid != userinfo->pw_gid) {
                        media_svc_error("UID [%d] does not belong to 'users' group!", uid);
                        return NULL;
@@ -868,7 +845,7 @@ static char* _media_svc_get_thumb_path(uid_t uid)
                asprintf(&result_psswd, "%s/data/file-manager-service/.thumb", userinfo->pw_dir);
        }
 
-       _mkdir(result_psswd,S_IRWXU | S_IRWXG | S_IRWXO);
+       _mkdir(result_psswd, S_IRWXU | S_IRWXG | S_IRWXO);
 
        return result_psswd;
 }
@@ -901,15 +878,15 @@ int _media_svc_get_thumbnail_path(media_svc_storage_type_e storage_type, char *t
                return MS_MEDIA_ERR_INTERNAL;
        }
 
-       //media_svc_debug("img format is [%s]", img_format);
+       /*media_svc_debug("img format is [%s]", img_format); */
 
-       if((strstr(img_format, "jpeg") != NULL) ||(strstr(img_format, "jpg") != NULL) ||(strstr(img_format, "JPG") != NULL)) {
+       if ((strstr(img_format, "jpeg") != NULL) || (strstr(img_format, "jpg") != NULL) || (strstr(img_format, "JPG") != NULL)) {
                thumbfile_ext = "jpg";
-       } else if((strstr(img_format, "png") != NULL) ||(strstr(img_format, "PNG") != NULL)) {
+       } else if ((strstr(img_format, "png") != NULL) || (strstr(img_format, "PNG") != NULL)) {
                thumbfile_ext = "png";
-       } else if((strstr(img_format, "gif") != NULL) ||(strstr(img_format, "GIF") != NULL)) {
+       } else if ((strstr(img_format, "gif") != NULL) || (strstr(img_format, "GIF") != NULL)) {
                thumbfile_ext = "gif";
-       } else if((strstr(img_format, "bmp") != NULL) ||(strstr(img_format, "BMP") != NULL)) {
+       } else if ((strstr(img_format, "bmp") != NULL) || (strstr(img_format, "BMP") != NULL)) {
                thumbfile_ext = "bmp";
        } else {
                media_svc_error("Not proper img format");
@@ -918,7 +895,7 @@ int _media_svc_get_thumbnail_path(media_svc_storage_type_e storage_type, char *t
 
        snprintf(savename, sizeof(savename), "%s/.%s-%s.%s", thumb_dir, file_ext, hash, thumbfile_ext);
        _strncpy_safe(thumb_path, savename, MEDIA_SVC_PATHNAME_SIZE);
-       //media_svc_debug("thumb_path is [%s]", thumb_path);
+       /*media_svc_debug("thumb_path is [%s]", thumb_path); */
 
        return MS_MEDIA_ERR_NONE;
 }
@@ -931,19 +908,19 @@ int _media_svc_get_file_time(const char *full_path)
        memset(&statbuf, 0, sizeof(struct stat));
        fd = stat(full_path, &statbuf);
        if (fd == -1) {
-                media_svc_error("stat(%s) fails.", full_path);
-                return MS_MEDIA_ERR_INTERNAL;
-        }
+               media_svc_error("stat(%s) fails.", full_path);
+               return MS_MEDIA_ERR_INTERNAL;
+       }
 
-        return statbuf.st_mtime;
+       return statbuf.st_mtime;
 }
 
 int _media_svc_set_media_info(media_svc_content_info_s *content_info, const char *storage_id, media_svc_storage_type_e storage_type,
-                         const char *path, media_svc_media_type_e *media_type, bool refresh)
+                              const char *path, media_svc_media_type_e *media_type, bool refresh)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       char * media_uuid = NULL;
-       char * file_name = NULL;
+       char *media_uuid = NULL;
+       char *file_name = NULL;
        struct stat st;
        bool drm_type = false;
        char mime_type[256] = {0};
@@ -956,7 +933,7 @@ int _media_svc_set_media_info(media_svc_content_info_s *content_info, const char
                content_info->modified_time = st.st_mtime;
                content_info->timeline = content_info->modified_time;
                content_info->size = st.st_size;
-               //media_svc_debug("Modified time : [%d] Size : [%lld]", content_info->modified_time, content_info->size);
+               /*media_svc_debug("Modified time : [%d] Size : [%lld]", content_info->modified_time, content_info->size); */
        } else {
                media_svc_stderror("stat failed");
        }
@@ -971,7 +948,7 @@ int _media_svc_set_media_info(media_svc_content_info_s *content_info, const char
        title = _media_svc_get_title_from_filepath(content_info->path);
        if (title) {
                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, title);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy error");
                SAFE_FREE(title);
        } else {
@@ -1009,7 +986,7 @@ int _media_svc_set_media_info(media_svc_content_info_s *content_info, const char
        media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, content_info);
 
        /* refresh is TRUE when file modified. so only modified_time and size are changed*/
-       if(refresh) {
+       if (refresh) {
                media_svc_debug("refresh");
                return MS_MEDIA_ERR_NONE;
        }
@@ -1021,7 +998,7 @@ int _media_svc_set_media_info(media_svc_content_info_s *content_info, const char
        time(&content_info->added_time);
 
        media_uuid = _media_info_generate_uuid();
-       if(media_uuid == NULL) {
+       if (media_uuid == NULL) {
                _media_svc_destroy_content_info(content_info);
                return MS_MEDIA_ERR_INTERNAL;
        }
@@ -1058,9 +1035,9 @@ int _media_svc_set_media_info(media_svc_content_info_s *content_info, const char
        content_info->media_type = *media_type;
 
        content_info->played_count = 0;
-       content_info->last_played_time= 0;
-       content_info->last_played_position= 0;
-       content_info->favourate= 0;
+       content_info->last_played_time = 0;
+       content_info->last_played_position = 0;
+       content_info->favourate = 0;
        content_info->media_meta.rating = 0;
 
        return MS_MEDIA_ERR_NONE;
@@ -1150,18 +1127,18 @@ int _media_svc_extract_image_metadata(sqlite3 *handle, media_svc_content_info_s
 
        if (__media_svc_get_exif_info(ed, description_buf, NULL, NULL, EXIF_IFD_0, EXIF_TAG_IMAGE_DESCRIPTION) == MS_MEDIA_ERR_NONE) {
                if (strlen(description_buf) == 0) {
-                       //media_svc_debug("Use 'No description'");
+                       /*media_svc_debug("Use 'No description'"); */
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.description, MEDIA_SVC_TAG_UNKNOWN);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                } else {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.description, description_buf);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                }
        } else {
                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.description, MEDIA_SVC_TAG_UNKNOWN);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy error");
        }
 
@@ -1169,20 +1146,20 @@ int _media_svc_extract_image_metadata(sqlite3 *handle, media_svc_content_info_s
 
        if (!has_datetaken && __media_svc_get_exif_info(ed, buf, NULL, NULL, EXIF_IFD_0, EXIF_TAG_DATE_TIME_ORIGINAL) == MS_MEDIA_ERR_NONE) {
                if (strlen(buf) == 0) {
-                       //media_svc_debug("time  is NULL");
+                       /*media_svc_debug("time  is NULL"); */
                } else {
 #if 0
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.datetaken, buf);
 #else
                        ret = __media_svc_malloc_and_strncpy_with_size(&content_info->media_meta.datetaken, buf, datetaken_size);
 #endif
-                       if(ret != MS_MEDIA_ERR_NONE) {
+                       if (ret != MS_MEDIA_ERR_NONE) {
                                media_svc_error("strcpy error");
                        } else {
                                has_datetaken = TRUE;
                                /* This is same as recorded_date */
                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.recorded_date, buf);
-                               if(ret != MS_MEDIA_ERR_NONE)
+                               if (ret != MS_MEDIA_ERR_NONE)
                                        media_svc_error("strcpy error");
                        }
                }
@@ -1192,20 +1169,20 @@ int _media_svc_extract_image_metadata(sqlite3 *handle, media_svc_content_info_s
 
        if (!has_datetaken && __media_svc_get_exif_info(ed, buf, NULL, NULL, EXIF_IFD_0, EXIF_TAG_DATE_TIME) == MS_MEDIA_ERR_NONE) {
                if (strlen(buf) == 0) {
-                       //media_svc_debug("time  is NULL");
+                       /*media_svc_debug("time  is NULL"); */
                } else {
 #if 0
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.datetaken, buf);
 #else
                        ret = __media_svc_malloc_and_strncpy_with_size(&content_info->media_meta.datetaken, buf, datetaken_size);
 #endif
-                       if(ret != MS_MEDIA_ERR_NONE) {
+                       if (ret != MS_MEDIA_ERR_NONE) {
                                media_svc_error("strcpy error");
                        } else {
                                has_datetaken = TRUE;
                                /* This is same as recorded_date */
                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.recorded_date, buf);
-                               if(ret != MS_MEDIA_ERR_NONE)
+                               if (ret != MS_MEDIA_ERR_NONE)
                                        media_svc_error("strcpy error");
                        }
                }
@@ -1226,7 +1203,7 @@ int _media_svc_extract_image_metadata(sqlite3 *handle, media_svc_content_info_s
                        media_svc_error("exposure_time_buf is NULL");
                } else {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.exposure_time, exposure_time_buf);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                }
        }
@@ -1259,7 +1236,7 @@ int _media_svc_extract_image_metadata(sqlite3 *handle, media_svc_content_info_s
                        media_svc_error("model_buf is NULL");
                } else {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.model, model_buf);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                }
        }
@@ -1321,44 +1298,44 @@ int _media_svc_extract_music_metadata_for_update(sqlite3 *handle, media_svc_cont
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_ALBUM, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_ALBUM)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.album, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
 
-                       //media_svc_debug("album[%d] : %s", size, content_info->media_meta.album);
+                       /*media_svc_debug("album[%d] : %s", size, content_info->media_meta.album); */
                } else {
                        SAFE_FREE(err_attr_name);
-                       //media_svc_debug("album - unknown");
+                       /*media_svc_debug("album - unknown"); */
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_ARTIST, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_ARTIST)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.artist, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
-                       //media_svc_debug("artist[%d] : %s", size, content_info->media_meta.artist);
+                       /*media_svc_debug("artist[%d] : %s", size, content_info->media_meta.artist); */
                } else {
                        SAFE_FREE(err_attr_name);
-                       //media_svc_debug("artist - unknown");
+                       /*media_svc_debug("artist - unknown"); */
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_ALBUM_ARTIST, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_ALBUM_ARTIST)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.album_artist, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
-                       //media_svc_debug("album_artist[%d] : %s", size, content_info->media_meta.album_artist);
+                       /*media_svc_debug("album_artist[%d] : %s", size, content_info->media_meta.album_artist); */
                } else {
                        SAFE_FREE(err_attr_name);
-                       //media_svc_debug("album_artist - unknown");
+                       /*media_svc_debug("album_artist - unknown"); */
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_GENRE, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_GENRE)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.genre, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
 
-                       //media_svc_debug("genre : %s", content_info->media_meta.genre);
+                       /*media_svc_debug("genre : %s", content_info->media_meta.genre); */
                        /* If genre is Ringtone, it's categorized as sound. But this logic is commented */
                        /*
                        if ((strcasecmp("Ringtone", p) == 0) | (strcasecmp("Alert tone", p) == 0)) {
@@ -1367,42 +1344,40 @@ int _media_svc_extract_music_metadata_for_update(sqlite3 *handle, media_svc_cont
                        */
                } else {
                        SAFE_FREE(err_attr_name);
-                       //media_svc_debug("genre - unknown");
+                       /*media_svc_debug("genre - unknown"); */
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_TITLE, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_TITLE)) && (mmf_error == MM_ERROR_NONE) && (size > 0)/* &&   (!isspace(*p))*/) {
-                       if(!isspace(*p)) {
+                       if (!isspace(*p)) {
                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, p);
-                               if(ret != MS_MEDIA_ERR_NONE)
+                               if (ret != MS_MEDIA_ERR_NONE)
                                        media_svc_error("strcpy error");
 
                                extracted_field |= MEDIA_SVC_EXTRACTED_FIELD_TITLE;
-                       }
-                       else {
+                       } else {
                                int idx = 0;
 
-                               for(idx = 0; idx < size; idx++) {
-                                       if(isspace(*p)) {
+                               for (idx = 0; idx < size; idx++) {
+                                       if (isspace(*p)) {
                                                media_svc_debug("SPACE [%s]", p);
                                                p++;
                                                continue;
                                        } else {
                                                media_svc_debug("Not SPACE [%s]", p);
                                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, p);
-                                               if(ret != MS_MEDIA_ERR_NONE)
+                                               if (ret != MS_MEDIA_ERR_NONE)
                                                        media_svc_error("strcpy error");
                                                break;
                                        }
                                }
 
-                               if(idx == size)
-                               {
+                               if (idx == size) {
                                        media_svc_debug("Can't extract title. All string is space");
                                        title = _media_svc_get_title_from_filepath(content_info->path);
                                        if (title) {
                                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, title);
-                                               if(ret != MS_MEDIA_ERR_NONE)
+                                               if (ret != MS_MEDIA_ERR_NONE)
                                                        media_svc_error("strcpy error");
                                                SAFE_FREE(title);
                                        } else {
@@ -1415,7 +1390,7 @@ int _media_svc_extract_music_metadata_for_update(sqlite3 *handle, media_svc_cont
                        title = _media_svc_get_title_from_filepath(content_info->path);
                        if (title) {
                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, title);
-                               if(ret != MS_MEDIA_ERR_NONE)
+                               if (ret != MS_MEDIA_ERR_NONE)
                                        media_svc_error("strcpy error");
                                SAFE_FREE(title);
                        } else {
@@ -1426,9 +1401,9 @@ int _media_svc_extract_music_metadata_for_update(sqlite3 *handle, media_svc_cont
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_DESCRIPTION, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_DESC)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.description, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
-                       //media_svc_debug("desc : %s", content_info->media_meta.description);
+                       /*media_svc_debug("desc : %s", content_info->media_meta.description); */
                } else {
                        SAFE_FREE(err_attr_name);
                }
@@ -1436,24 +1411,24 @@ int _media_svc_extract_music_metadata_for_update(sqlite3 *handle, media_svc_cont
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_AUTHOR, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_AUTHOR)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.composer, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                        extracted_field |= MEDIA_SVC_EXTRACTED_FIELD_AUTHOR;
-                       //media_svc_debug("extract composer from content : %s", content_info->media_meta.composer);
+                       /*media_svc_debug("extract composer from content : %s", content_info->media_meta.composer); */
                } else {
-                       //media_svc_debug("composer - unknown");
+                       /*media_svc_debug("composer - unknown"); */
                        SAFE_FREE(err_attr_name);
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_COPYRIGHT, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_COPYRIGHT)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.copyright, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                        extracted_field |= MEDIA_SVC_EXTRACTED_FIELD_AUTHOR;
-                       //media_svc_debug("extract copyright from content : %s", content_info->media_meta.copyright);
+                       /*media_svc_debug("extract copyright from content : %s", content_info->media_meta.copyright); */
                } else {
-                       //media_svc_debug("copyright - unknown");
+                       /*media_svc_debug("copyright - unknown"); */
                        SAFE_FREE(err_attr_name);
                }
 
@@ -1469,7 +1444,7 @@ int _media_svc_extract_music_metadata_for_update(sqlite3 *handle, media_svc_cont
                title = _media_svc_get_title_from_filepath(content_info->path);
                if (title) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, title);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                        SAFE_FREE(title);
                } else {
@@ -1507,44 +1482,44 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_ALBUM, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_ALBUM)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.album, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
 
-                       //media_svc_debug("album[%d] : %s", size, content_info->media_meta.album);
+                       /*media_svc_debug("album[%d] : %s", size, content_info->media_meta.album); */
                } else {
                        SAFE_FREE(err_attr_name);
-                       //media_svc_debug("album - unknown");
+                       /*media_svc_debug("album - unknown"); */
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_ARTIST, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_ARTIST)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.artist, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
-                       //media_svc_debug("artist[%d] : %s", size, content_info->media_meta.artist);
+                       /*media_svc_debug("artist[%d] : %s", size, content_info->media_meta.artist); */
                } else {
                        SAFE_FREE(err_attr_name);
-                       //media_svc_debug("artist - unknown");
+                       /*media_svc_debug("artist - unknown"); */
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_ALBUM_ARTIST, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_ALBUM_ARTIST)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.album_artist, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
-                       //media_svc_debug("album_artist[%d] : %s", size, content_info->media_meta.album_artist);
+                       /*media_svc_debug("album_artist[%d] : %s", size, content_info->media_meta.album_artist); */
                } else {
                        SAFE_FREE(err_attr_name);
-                       //media_svc_debug("album_artist - unknown");
+                       /*media_svc_debug("album_artist - unknown"); */
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_GENRE, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_GENRE)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.genre, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
 
-                       //media_svc_debug("genre : %s", content_info->media_meta.genre);
+                       /*media_svc_debug("genre : %s", content_info->media_meta.genre); */
                        /* If genre is Ringtone, it's categorized as sound. But this logic is commented */
                        /*
                        if ((strcasecmp("Ringtone", p) == 0) | (strcasecmp("Alert tone", p) == 0)) {
@@ -1553,42 +1528,40 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                        */
                } else {
                        SAFE_FREE(err_attr_name);
-                       //media_svc_debug("genre - unknown");
+                       /*media_svc_debug("genre - unknown"); */
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_TITLE, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_TITLE)) && (mmf_error == MM_ERROR_NONE) && (size > 0)/* &&   (!isspace(*p))*/) {
-                       if(!isspace(*p)) {
+                       if (!isspace(*p)) {
                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, p);
-                               if(ret != MS_MEDIA_ERR_NONE)
+                               if (ret != MS_MEDIA_ERR_NONE)
                                        media_svc_error("strcpy error");
 
                                extracted_field |= MEDIA_SVC_EXTRACTED_FIELD_TITLE;
-                       }
-                       else {
+                       } else {
                                int idx = 0;
 
-                               for(idx = 0; idx < size; idx++) {
-                                       if(isspace(*p)) {
+                               for (idx = 0; idx < size; idx++) {
+                                       if (isspace(*p)) {
                                                media_svc_debug("SPACE [%s]", p);
                                                p++;
                                                continue;
                                        } else {
                                                media_svc_debug("Not SPACE [%s]", p);
                                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, p);
-                                               if(ret != MS_MEDIA_ERR_NONE)
+                                               if (ret != MS_MEDIA_ERR_NONE)
                                                        media_svc_error("strcpy error");
                                                break;
                                        }
                                }
 
-                               if(idx == size)
-                               {
+                               if (idx == size) {
                                        media_svc_debug("Can't extract title. All string is space");
                                        title = _media_svc_get_title_from_filepath(content_info->path);
                                        if (title) {
                                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, title);
-                                               if(ret != MS_MEDIA_ERR_NONE)
+                                               if (ret != MS_MEDIA_ERR_NONE)
                                                        media_svc_error("strcpy error");
                                                SAFE_FREE(title);
                                        } else {
@@ -1601,7 +1574,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                        title = _media_svc_get_title_from_filepath(content_info->path);
                        if (title) {
                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, title);
-                               if(ret != MS_MEDIA_ERR_NONE)
+                               if (ret != MS_MEDIA_ERR_NONE)
                                        media_svc_error("strcpy error");
                                SAFE_FREE(title);
                        } else {
@@ -1612,16 +1585,16 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_DESCRIPTION, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_DESC)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.description, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
-                       //media_svc_debug("desc : %s", content_info->media_meta.description);
+                       /*media_svc_debug("desc : %s", content_info->media_meta.description); */
                } else {
                        SAFE_FREE(err_attr_name);
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_RECDATE, &p, &size, NULL);
                if ((mmf_error == MM_ERROR_NONE) && (size > 0)) {
-                       if(media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO) {
+                       if (media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO) {
                                /*Creation time format is 2013-01-01 00:00:00. change it to 2013:01:01 00:00:00 like exif time format*/
                                char time_info[64] = {0, };
                                char p_value[64] = {0, };
@@ -1629,10 +1602,10 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                memset(time_info, 0x00, sizeof(time_info));
                                memset(p_value, 0x00, sizeof(p_value));
                                strncpy(p_value, p, size);
-                               for(idx =0; idx < size; idx++) {
-                                       if(p_value[idx] == '-') {
+                               for (idx = 0; idx < size; idx++) {
+                                       if (p_value[idx] == '-') {
                                                time_info[idx] = ':';
-                                       } else if(p_value[idx] != '\0') {
+                                       } else if (p_value[idx] != '\0') {
                                                time_info[idx] = p_value[idx];
                                        } else {
                                                media_svc_error("strcpy error");
@@ -1644,7 +1617,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.recorded_date, p);
                        }
 
-                       if(ret != MS_MEDIA_ERR_NONE) {
+                       if (ret != MS_MEDIA_ERR_NONE) {
                                media_svc_error("strcpy error");
                        } else {
                                /* This is same as datetaken */
@@ -1654,7 +1627,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                int datetaken_size = 19;
                                ret = __media_svc_malloc_and_strncpy_with_size(&content_info->media_meta.datetaken, content_info->media_meta.recorded_date, datetaken_size);
 #endif
-                               if(ret != MS_MEDIA_ERR_NONE)
+                               if (ret != MS_MEDIA_ERR_NONE)
                                        media_svc_error("strcpy error");
 
                                content_info->timeline = __media_svc_get_timeline_from_str(content_info->media_meta.recorded_date);
@@ -1664,7 +1637,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                        media_svc_debug("Timeline : %ld", content_info->timeline);
                                }
                        }
-                       //media_svc_debug("Recorded date : %s", content_info->media_meta.recorded_date);
+                       /*media_svc_debug("Recorded date : %s", content_info->media_meta.recorded_date); */
                } else {
                        SAFE_FREE(err_attr_name);
                }
@@ -1672,31 +1645,31 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_AUTHOR, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_AUTHOR)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.composer, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                        extracted_field |= MEDIA_SVC_EXTRACTED_FIELD_AUTHOR;
-                       //media_svc_debug("extract composer from content : %s", content_info->media_meta.composer);
+                       /*media_svc_debug("extract composer from content : %s", content_info->media_meta.composer); */
                } else {
-                       //media_svc_debug("composer - unknown");
+                       /*media_svc_debug("composer - unknown"); */
                        SAFE_FREE(err_attr_name);
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_COPYRIGHT, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_COPYRIGHT)) && (mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.copyright, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                        extracted_field |= MEDIA_SVC_EXTRACTED_FIELD_AUTHOR;
-                       //media_svc_debug("extract copyright from content : %s", content_info->media_meta.copyright);
+                       /*media_svc_debug("extract copyright from content : %s", content_info->media_meta.copyright); */
                } else {
-                       //media_svc_debug("copyright - unknown");
+                       /*media_svc_debug("copyright - unknown"); */
                        SAFE_FREE(err_attr_name);
                }
 
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_TRACK_NUM, &p, &size, NULL);
                if ((mmf_error == MM_ERROR_NONE) && (size > 0)) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.track_num, p);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                } else {
                        SAFE_FREE(err_attr_name);
@@ -1705,9 +1678,9 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_DATE, &p, &size, NULL);
                if ((!(extracted_field & MEDIA_SVC_EXTRACTED_FIELD_YEAR)) && (mmf_error == MM_ERROR_NONE) && (size == 4)) {
                        int year = 0;
-                       if((p != NULL) && (sscanf( p, "%d", &year))) {
+                       if ((p != NULL) && (sscanf(p, "%d", &year))) {
                                ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.year, p);
-                               if(ret != MS_MEDIA_ERR_NONE)
+                               if (ret != MS_MEDIA_ERR_NONE)
                                        media_svc_error("strcpy error");
                        } else {
                                media_svc_debug("Wrong Year Information [%s]", p);
@@ -1741,8 +1714,8 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                        content_info->album_id = album_id;
                        append_album = FALSE;
 
-                       if((!strncmp(content_info->media_meta.album, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))) ||
-                               (!strncmp(content_info->media_meta.artist, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN)))) {
+                       if ((!strncmp(content_info->media_meta.album, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))) ||
+                           (!strncmp(content_info->media_meta.artist, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN)))) {
 
                                media_svc_debug("Unknown album or artist already exists. Extract thumbnail for Unknown.");
                                extract_thumbnail = TRUE;
@@ -1760,7 +1733,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                media_svc_error("fail to get tag artwork - err(%x)", mmf_error);
                                SAFE_FREE(err_attr_name);
                        } else {
-                               //media_svc_debug("artwork size1 [%d]", size);
+                               /*media_svc_debug("artwork size1 [%d]", size); */
                        }
 
                        mmf_error = mm_file_get_attrs(tag, &err_attr_name, MM_FILE_TAG_ARTWORK_SIZE, &size, NULL);
@@ -1768,7 +1741,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                media_svc_error("fail to get artwork size - err(%x)", mmf_error);
                                SAFE_FREE(err_attr_name);
                        } else {
-                               //media_svc_debug("artwork size2 [%d]", size);
+                               /*media_svc_debug("artwork size2 [%d]", size); */
                        }
                        if (image != NULL && size > 0) {
                                int ret = MS_MEDIA_ERR_NONE;
@@ -1785,24 +1758,22 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                        SAFE_FREE(err_attr_name);
                                }
 
-                               if(strlen(thumb_path) > 0)
-                               {
+                               if (strlen(thumb_path) > 0) {
                                        ret = _media_svc_save_image(image, size, thumb_path, uid);
                                        if (ret != MS_MEDIA_ERR_NONE) {
                                                media_svc_error("Fail to Save Thumbnail Image");
-                                       }
-                                       else {
+                                       } else {
                                                ret = __media_svc_malloc_and_strncpy(&content_info->thumbnail_path, thumb_path);
-                                               if(ret != MS_MEDIA_ERR_NONE)
+                                               if (ret != MS_MEDIA_ERR_NONE)
                                                        media_svc_error("strcpy error");
                                        }
                                }
                        }
                }
 
-               if(append_album == TRUE) {
-                       if((strncmp(content_info->media_meta.album, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))) &&
-                               (strncmp(content_info->media_meta.artist, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))))
+               if (append_album == TRUE) {
+                       if ((strncmp(content_info->media_meta.album, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))) &&
+                           (strncmp(content_info->media_meta.artist, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))))
                                ret = _media_svc_append_album(handle, content_info->media_meta.album, content_info->media_meta.artist, content_info->thumbnail_path, &album_id, uid);
                        else
                                ret = _media_svc_append_album(handle, content_info->media_meta.album, content_info->media_meta.artist, NULL, &album_id, uid);
@@ -1810,7 +1781,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                        content_info->album_id = album_id;
                }
 
-               if(media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO) {
+               if (media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO) {
                        double longitude = 0.0;
                        double latitude = 0.0;
                        double altitude = 0.0;
@@ -1841,7 +1812,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                title = _media_svc_get_title_from_filepath(content_info->path);
                if (title) {
                        ret = __media_svc_malloc_and_strncpy(&content_info->media_meta.title, title);
-                       if(ret != MS_MEDIA_ERR_NONE)
+                       if (ret != MS_MEDIA_ERR_NONE)
                                media_svc_error("strcpy error");
                        SAFE_FREE(title);
                } else {
@@ -1865,18 +1836,18 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                        SAFE_FREE(err_attr_name);
                        media_svc_debug("fail to get duration attr - err(%x)", mmf_error);
                } else {
-                       //media_svc_debug("duration : %d", content_info->media_meta.duration);
+                       /*media_svc_debug("duration : %d", content_info->media_meta.duration); */
                }
 
                /*Sound/Music attribute*/
-               if((media_type == MEDIA_SVC_MEDIA_TYPE_SOUND) || (media_type == MEDIA_SVC_MEDIA_TYPE_MUSIC)) {
+               if ((media_type == MEDIA_SVC_MEDIA_TYPE_SOUND) || (media_type == MEDIA_SVC_MEDIA_TYPE_MUSIC)) {
 
                        mmf_error = mm_file_get_attrs(content, &err_attr_name, MM_FILE_CONTENT_AUDIO_BITRATE, &content_info->media_meta.bitrate, NULL);
                        if (mmf_error != MM_ERROR_NONE) {
                                SAFE_FREE(err_attr_name);
                                media_svc_debug("fail to get audio bitrate attr - err(%x)", mmf_error);
                        } else {
-                               //media_svc_debug("bit rate : %d", content_info->media_meta.bitrate);
+                               /*media_svc_debug("bit rate : %d", content_info->media_meta.bitrate); */
                        }
 
                        mmf_error = mm_file_get_attrs(content, &err_attr_name, MM_FILE_CONTENT_AUDIO_SAMPLERATE, &content_info->media_meta.samplerate, NULL);
@@ -1884,7 +1855,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                SAFE_FREE(err_attr_name);
                                media_svc_debug("fail to get sample rate attr - err(%x)", mmf_error);
                        } else {
-                               //media_svc_debug("sample rate : %d", content_info->media_meta.samplerate);
+                               /*media_svc_debug("sample rate : %d", content_info->media_meta.samplerate); */
                        }
 
                        mmf_error = mm_file_get_attrs(content, &err_attr_name, MM_FILE_CONTENT_AUDIO_CHANNELS, &content_info->media_meta.channel, NULL);
@@ -1892,7 +1863,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                SAFE_FREE(err_attr_name);
                                media_svc_debug("fail to get audio channels attr - err(%x)", mmf_error);
                        } else {
-                               //media_svc_debug("channel : %d", content_info->media_meta.channel);
+                               /*media_svc_debug("channel : %d", content_info->media_meta.channel); */
                        }
 
                        mmf_error = mm_file_get_attrs(content, &err_attr_name, MM_FILE_CONTENT_AUDIO_BITPERSAMPLE, &content_info->media_meta.bitpersample, NULL);
@@ -1902,7 +1873,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                        } else {
                                media_svc_debug("bitpersample : %d", content_info->media_meta.bitpersample);
                        }
-               }else if(media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)      {       /*Video attribute*/
+               } else if (media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)    {       /*Video attribute*/
                        int audio_bitrate = 0;
                        int video_bitrate = 0;
 
@@ -1911,7 +1882,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                SAFE_FREE(err_attr_name);
                                media_svc_debug("fail to get audio bitrate attr - err(%x)", mmf_error);
                        } else {
-                               //media_svc_debug("audio bit rate : %d", audio_bitrate);
+                               /*media_svc_debug("audio bit rate : %d", audio_bitrate); */
                        }
 
                        mmf_error = mm_file_get_attrs(content, &err_attr_name, MM_FILE_CONTENT_VIDEO_BITRATE, &video_bitrate, NULL);
@@ -1919,7 +1890,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                SAFE_FREE(err_attr_name);
                                media_svc_debug("fail to get audio bitrate attr - err(%x)", mmf_error);
                        } else {
-                               //media_svc_debug("video bit rate : %d", video_bitrate);
+                               /*media_svc_debug("video bit rate : %d", video_bitrate); */
                        }
 
                        content_info->media_meta.bitrate = audio_bitrate + video_bitrate;
@@ -1929,7 +1900,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                SAFE_FREE(err_attr_name);
                                media_svc_debug("fail to get video width attr - err(%x)", mmf_error);
                        } else {
-                               //media_svc_debug("width : %d", content_info->media_meta.width);
+                               /*media_svc_debug("width : %d", content_info->media_meta.width); */
                        }
 
                        mmf_error = mm_file_get_attrs(content, &err_attr_name, MM_FILE_CONTENT_VIDEO_HEIGHT, &content_info->media_meta.height, NULL);
@@ -1937,7 +1908,7 @@ int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s
                                SAFE_FREE(err_attr_name);
                                media_svc_debug("fail to get video height attr - err(%x)", mmf_error);
                        } else {
-                               //media_svc_debug("height : %d", content_info->media_meta.height);
+                               /*media_svc_debug("height : %d", content_info->media_meta.height); */
                        }
 
                } else {
@@ -2003,24 +1974,16 @@ void _media_svc_destroy_content_info(media_svc_content_info_s *content_info)
 
 int _media_svc_get_store_type_by_path(const char *path, media_svc_storage_type_e *storage_type, uid_t uid)
 {
-       if(STRING_VALID(path))
-       {
-               if(strncmp(path, _media_svc_get_path(uid), strlen(_media_svc_get_path(uid))) == 0)
-               {
+       if (STRING_VALID(path)) {
+               if (strncmp(path, _media_svc_get_path(uid), strlen(_media_svc_get_path(uid))) == 0) {
                        *storage_type = MEDIA_SVC_STORAGE_INTERNAL;
-               }
-               else if(strncmp (path, MEDIA_ROOT_PATH_SDCARD, strlen(MEDIA_ROOT_PATH_SDCARD)) == 0)
-               {
+               } else if (strncmp(path, MEDIA_ROOT_PATH_SDCARD, strlen(MEDIA_ROOT_PATH_SDCARD)) == 0) {
                        *storage_type = MEDIA_SVC_STORAGE_EXTERNAL;
-               }
-               else
-               {
+               } else {
                        media_svc_error("Invalid Path");
                        return MS_MEDIA_ERR_INVALID_PARAMETER;
                }
-       }
-       else
-       {
+       } else {
                media_svc_error("INVALID parameter");
                return MS_MEDIA_ERR_INVALID_PARAMETER;
        }
@@ -2030,34 +1993,35 @@ int _media_svc_get_store_type_by_path(const char *path, media_svc_storage_type_e
 
 char *_media_svc_replace_path(char *s, const char *olds, const char *news)
 {
-  char *result, *sr;
-  size_t i, count = 0;
-  size_t oldlen = strlen(olds); if (oldlen < 1) return s;
-  size_t newlen = strlen(news);
-
-  if (newlen != oldlen) {
-    for (i = 0; s[i] != '\0';) {
-      if (memcmp(&s[i], olds, oldlen) == 0) count++, i += oldlen;
-      else i++;
-    }   
-  } else i = strlen(s);
-
-
-  result = (char *) calloc(1, i + 1 + count * (newlen - oldlen));
-  if (result == NULL) return NULL;
-
-  sr = result;
-  while (*s) {
-    if (memcmp(s, olds, oldlen) == 0) {
-      memcpy(sr, news, newlen);
-      sr += newlen;
-      s  += oldlen;
-    } else *sr++ = *s++;
-  }
-
-  *sr = '\0';
-
-  return result;
+       char *result, *sr;
+       size_t i, count = 0;
+       size_t oldlen = strlen(olds);
+       if (oldlen < 1) return s;
+       size_t newlen = strlen(news);
+
+       if (newlen != oldlen) {
+               for (i = 0; s[i] != '\0';) {
+                       if (memcmp(&s[i], olds, oldlen) == 0) count++, i += oldlen;
+                       else i++;
+               }
+       } else i = strlen(s);
+
+
+       result = (char *) calloc(1, i + 1 + count * (newlen - oldlen));
+       if (result == NULL) return NULL;
+
+       sr = result;
+       while (*s) {
+               if (memcmp(s, olds, oldlen) == 0) {
+                       memcpy(sr, news, newlen);
+                       sr += newlen;
+                       s  += oldlen;
+               } else *sr++ = *s++;
+       }
+
+       *sr = '\0';
+
+       return result;
 }
 
 bool _media_svc_is_drm_file(const char *path)
@@ -2071,13 +2035,10 @@ int _media_svc_request_thumbnail_with_origin_size(const char *path, char *thumb_
 
        ret = thumbnail_request_from_db_with_size(path, thumb_path, max_length, origin_width, origin_height, uid);
 
-       if(ret != MS_MEDIA_ERR_NONE)
-       {
+       if (ret != MS_MEDIA_ERR_NONE) {
                media_svc_error("thumbnail_request_from_db failed: %d", ret);
                ret = MS_MEDIA_ERR_INTERNAL;
-       }
-       else
-       {
+       } else {
                media_svc_sec_debug("thumbnail_request_from_db success: thumbnail path[%s]", thumb_path);
        }
 
@@ -2091,19 +2052,17 @@ int _media_svc_get_pinyin_str(const char *src_str, char **pinyin_str)
        pinyin_name_s *pinyinname = NULL;
        *pinyin_str = NULL;
 
-       if(!STRING_VALID(src_str))
-       {
+       if (!STRING_VALID(src_str)) {
                media_svc_debug("String is invalid");
                return ret;
        }
 
        ret = _media_svc_convert_chinese_to_pinyin(src_str, &pinyinname, &size);
-       if (ret == MS_MEDIA_ERR_NONE)
-       {
-               if(STRING_VALID(pinyinname[0].pinyin_name))
+       if (ret == MS_MEDIA_ERR_NONE) {
+               if (STRING_VALID(pinyinname[0].pinyin_name))
                        *pinyin_str = strdup(pinyinname[0].pinyin_name);
                else
-                       *pinyin_str = strdup(src_str);  //Return Original Non China Character
+                       *pinyin_str = strdup(src_str);  /*Return Original Non China Character */
        }
 
        _media_svc_pinyin_free(pinyinname, size);
@@ -2123,13 +2082,10 @@ int _media_svc_request_extract_all_thumbs(uid_t uid)
 
        ret = thumbnail_request_extract_all_thumbs(uid);
 
-       if(ret != MS_MEDIA_ERR_NONE)
-       {
+       if (ret != MS_MEDIA_ERR_NONE) {
                media_svc_error("thumbnail_request_from_db failed: %d", ret);
                ret = MS_MEDIA_ERR_INTERNAL;
-       }
-       else
-       {
+       } else {
                media_svc_sec_debug("thumbnail_request_extract_all_thumbs");
        }
 
index 0bd62a7..00ee16a 100755 (executable)
@@ -57,8 +57,8 @@ int media_svc_connect(MediaSvcHandle **handle, uid_t uid)
 
        media_svc_debug_func();
 
-       ret = media_db_connect(&db_handle,uid);
-       if(ret != MS_MEDIA_ERR_NONE)
+       ret = media_db_connect(&db_handle, uid);
+       if (ret != MS_MEDIA_ERR_NONE)
                return ret;
 
        *handle = db_handle;
@@ -67,7 +67,7 @@ int media_svc_connect(MediaSvcHandle **handle, uid_t uid)
 
 int media_svc_disconnect(MediaSvcHandle *handle)
 {
-       MediaDBHandle * db_handle = (MediaDBHandle *)handle;
+       MediaDBHandle *db_handle = (MediaDBHandle *)handle;
 
        media_svc_debug_func();
 
@@ -82,7 +82,7 @@ int media_svc_disconnect(MediaSvcHandle *handle)
 int media_svc_create_table(MediaSvcHandle *handle, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
 
@@ -152,7 +152,7 @@ int media_svc_get_storage_type(const char *path, media_svc_storage_type_e *stora
 int media_svc_get_file_info(MediaSvcHandle *handle, const char *path, time_t *modified_time, unsigned long long *size)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
 
@@ -164,7 +164,7 @@ int media_svc_get_file_info(MediaSvcHandle *handle, const char *path, time_t *mo
 int media_svc_check_item_exist_by_path(MediaSvcHandle *handle, const char *path)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
        int count = -1;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
@@ -173,7 +173,7 @@ int media_svc_check_item_exist_by_path(MediaSvcHandle *handle, const char *path)
        ret = _media_svc_count_record_with_path(db_handle, path, &count);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-       if(count > 0) {
+       if (count > 0) {
                media_svc_debug("item is exist in database");
                return MS_MEDIA_ERR_NONE;
        } else {
@@ -186,7 +186,7 @@ int media_svc_check_item_exist_by_path(MediaSvcHandle *handle, const char *path)
 
 int media_svc_insert_item_begin(MediaSvcHandle *handle, int data_cnt, int with_noti, int from_pid)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug("Transaction data count : [%d]", data_cnt);
 
@@ -213,7 +213,7 @@ int media_svc_insert_item_begin(MediaSvcHandle *handle, int data_cnt, int with_n
 int media_svc_insert_item_end(MediaSvcHandle *handle, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
 
@@ -240,8 +240,8 @@ int media_svc_insert_item_end(MediaSvcHandle *handle, uid_t uid)
 int media_svc_insert_item_bulk(MediaSvcHandle *handle, media_svc_storage_type_e storage_type, const char *path, int is_burst, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
-       char folder_uuid[MEDIA_SVC_UUID_SIZE+1] = {0,};
+       sqlite3 *db_handle = (sqlite3 *)handle;
+       char folder_uuid[MEDIA_SVC_UUID_SIZE + 1] = {0, };
        media_svc_media_type_e media_type;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
@@ -262,9 +262,9 @@ int media_svc_insert_item_bulk(MediaSvcHandle *handle, media_svc_storage_type_e
                return ret;
        }
 
-       if(media_type == MEDIA_SVC_MEDIA_TYPE_OTHER) {
+       if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER) {
                /*Do nothing.*/
-       } else if(media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) {
+       } else if (media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) {
                ret = _media_svc_extract_image_metadata(handle, &content_info, media_type, uid);
        } else {
                ret = _media_svc_extract_media_metadata(handle, &content_info, media_type, uid);
@@ -286,7 +286,7 @@ int media_svc_insert_item_bulk(MediaSvcHandle *handle, media_svc_storage_type_e
                if (g_insert_with_noti)
                        _media_svc_insert_item_to_noti_list(&content_info, g_media_svc_insert_item_cur_data_cnt++);
 
-       } else if(g_media_svc_insert_item_cur_data_cnt  < (g_media_svc_insert_item_data_cnt  - 1)) {
+       } else if (g_media_svc_insert_item_cur_data_cnt  < (g_media_svc_insert_item_data_cnt  - 1)) {
 
                ret = _media_svc_insert_item_with_data(db_handle, &content_info, is_burst, TRUE, uid);
                media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, &content_info);
@@ -294,7 +294,7 @@ int media_svc_insert_item_bulk(MediaSvcHandle *handle, media_svc_storage_type_e
                if (g_insert_with_noti)
                        _media_svc_insert_item_to_noti_list(&content_info, g_media_svc_insert_item_cur_data_cnt);
 
-               g_media_svc_insert_item_cur_data_cnt ++;
+               g_media_svc_insert_item_cur_data_cnt++;
 
        } else if (g_media_svc_insert_item_cur_data_cnt  == (g_media_svc_insert_item_data_cnt  - 1)) {
 
@@ -332,8 +332,8 @@ int media_svc_insert_item_bulk(MediaSvcHandle *handle, media_svc_storage_type_e
 int media_svc_insert_item_immediately(MediaSvcHandle *handle, media_svc_storage_type_e storage_type, const char *path, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
-       char folder_uuid[MEDIA_SVC_UUID_SIZE+1] = {0,};
+       sqlite3 *db_handle = (sqlite3 *)handle;
+       char folder_uuid[MEDIA_SVC_UUID_SIZE + 1] = {0, };
        media_svc_media_type_e media_type;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
@@ -355,9 +355,9 @@ int media_svc_insert_item_immediately(MediaSvcHandle *handle, media_svc_storage_
                return ret;
        }
 
-       if(media_type == MEDIA_SVC_MEDIA_TYPE_OTHER) {
+       if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER) {
                /*Do nothing.*/
-       } else if(media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) {
+       } else if (media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) {
                ret = _media_svc_extract_image_metadata(handle, &content_info, media_type, uid);
        } else {
                ret = _media_svc_extract_media_metadata(handle, &content_info, media_type, uid);
@@ -380,7 +380,7 @@ int media_svc_insert_item_immediately(MediaSvcHandle *handle, media_svc_storage_
                        int height = 0;
 
                        ret = _media_svc_request_thumbnail_with_origin_size(content_info.path, thumb_path, sizeof(thumb_path), &width, &height, uid);
-                       if(ret == MS_MEDIA_ERR_NONE) {
+                       if (ret == MS_MEDIA_ERR_NONE) {
                                ret = __media_svc_malloc_and_strncpy(&(content_info.thumbnail_path), thumb_path);
                        }
 
@@ -409,8 +409,8 @@ int media_svc_insert_item_immediately(MediaSvcHandle *handle, media_svc_storage_
 int media_svc_insert_folder(MediaSvcHandle *handle, media_svc_storage_type_e storage_type, const char *path, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
-       char folder_uuid[MEDIA_SVC_UUID_SIZE+1] = {0, };
+       sqlite3 *db_handle = (sqlite3 *)handle;
+       char folder_uuid[MEDIA_SVC_UUID_SIZE + 1] = {0, };
        memset(folder_uuid, 0, sizeof(folder_uuid));
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
@@ -430,7 +430,7 @@ int media_svc_insert_folder(MediaSvcHandle *handle, media_svc_storage_type_e sto
 
 int media_svc_move_item_begin(MediaSvcHandle *handle, int data_cnt)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug("Transaction data count : [%d]", data_cnt);
 
@@ -446,7 +446,7 @@ int media_svc_move_item_begin(MediaSvcHandle *handle, int data_cnt)
 int media_svc_move_item_end(MediaSvcHandle *handle, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
 
@@ -468,16 +468,16 @@ int media_svc_move_item_end(MediaSvcHandle *handle, uid_t uid)
 }
 
 int media_svc_move_item(MediaSvcHandle *handle, media_svc_storage_type_e src_storage, const char *src_path,
-                       media_svc_storage_type_e dest_storage, const char *dest_path, uid_t uid)
+                        media_svc_storage_type_e dest_storage, const char *dest_path, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
        char *file_name = NULL;
        char *folder_path = NULL;
        int modified_time = 0;
-       char folder_uuid[MEDIA_SVC_UUID_SIZE+1] = {0,};
-       char old_thumb_path[MEDIA_SVC_PATHNAME_SIZE] = {0,};
-       char new_thumb_path[MEDIA_SVC_PATHNAME_SIZE] = {0,};
+       char folder_uuid[MEDIA_SVC_UUID_SIZE + 1] = {0, };
+       char old_thumb_path[MEDIA_SVC_PATHNAME_SIZE] = {0, };
+       char new_thumb_path[MEDIA_SVC_PATHNAME_SIZE] = {0, };
        int media_type = -1;
 
        media_svc_debug_func();
@@ -513,7 +513,7 @@ int media_svc_move_item(MediaSvcHandle *handle, media_svc_storage_type_e src_sto
                return ret;
        }
 
-       if((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) ||(media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
+       if ((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) || (media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
                /*get old thumbnail_path*/
                ret = _media_svc_get_thumbnail_path_by_path(handle, DEFAULT_MEDIA_SVC_STORAGE_ID, src_path, old_thumb_path);
                if ((ret != MS_MEDIA_ERR_NONE) && (ret != MS_MEDIA_ERR_DB_NO_RECORD)) {
@@ -533,7 +533,7 @@ int media_svc_move_item(MediaSvcHandle *handle, media_svc_storage_type_e src_sto
        if (g_media_svc_move_item_data_cnt == 1) {
 
                /*update item*/
-               if((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) ||(media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
+               if ((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) || (media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
                        ret = _media_svc_update_item_by_path(handle, src_path, dest_storage, dest_path, file_name, modified_time, folder_uuid, new_thumb_path, FALSE, uid);
                } else {
                        ret = _media_svc_update_item_by_path(handle, src_path, dest_storage, dest_path, file_name, modified_time, folder_uuid, NULL, FALSE, uid);
@@ -564,7 +564,7 @@ int media_svc_move_item(MediaSvcHandle *handle, media_svc_storage_type_e src_sto
        } else if (g_media_svc_move_item_cur_data_cnt  < (g_media_svc_move_item_data_cnt  - 1)) {
 
                /*update item*/
-               if((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) ||(media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
+               if ((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) || (media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
                        ret = _media_svc_update_item_by_path(handle, src_path, dest_storage, dest_path, file_name, modified_time, folder_uuid, new_thumb_path, TRUE, uid);
                } else {
                        ret = _media_svc_update_item_by_path(handle, src_path, dest_storage, dest_path, file_name, modified_time, folder_uuid, NULL, TRUE, uid);
@@ -578,12 +578,12 @@ int media_svc_move_item(MediaSvcHandle *handle, media_svc_storage_type_e src_sto
                SAFE_FREE(folder_path);
                media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-               g_media_svc_move_item_cur_data_cnt ++;
+               g_media_svc_move_item_cur_data_cnt++;
 
        } else if (g_media_svc_move_item_cur_data_cnt  == (g_media_svc_move_item_data_cnt  - 1)) {
 
                /*update item*/
-               if((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) ||(media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
+               if ((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) || (media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
                        ret = _media_svc_update_item_by_path(handle, src_path, dest_storage, dest_path, file_name, modified_time, folder_uuid, new_thumb_path, TRUE, uid);
                } else {
                        ret = _media_svc_update_item_by_path(handle, src_path, dest_storage, dest_path, file_name, modified_time, folder_uuid, NULL, TRUE, uid);
@@ -609,20 +609,20 @@ int media_svc_move_item(MediaSvcHandle *handle, media_svc_storage_type_e src_sto
        }
 
        /*rename thumbnail file*/
-//     if((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) ||(media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
-               if((strlen(old_thumb_path) > 0) && (strncmp(old_thumb_path, MEDIA_SVC_THUMB_DEFAULT_PATH, sizeof(MEDIA_SVC_THUMB_DEFAULT_PATH)) != 0)) {
-                       ret = _media_svc_rename_file(old_thumb_path,new_thumb_path);
-                       if (ret != MS_MEDIA_ERR_NONE)
-                               media_svc_error("_media_svc_rename_file failed : %d", ret);
-               }
-//     }
+/*     if((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) ||(media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) { */
+       if ((strlen(old_thumb_path) > 0) && (strncmp(old_thumb_path, MEDIA_SVC_THUMB_DEFAULT_PATH, sizeof(MEDIA_SVC_THUMB_DEFAULT_PATH)) != 0)) {
+               ret = _media_svc_rename_file(old_thumb_path, new_thumb_path);
+               if (ret != MS_MEDIA_ERR_NONE)
+                       media_svc_error("_media_svc_rename_file failed : %d", ret);
+       }
+/*     } */
 
        return MS_MEDIA_ERR_NONE;
 }
 
 int media_svc_set_item_validity_begin(MediaSvcHandle *handle, int data_cnt)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug("Transaction data count : [%d]", data_cnt);
 
@@ -638,7 +638,7 @@ int media_svc_set_item_validity_begin(MediaSvcHandle *handle, int data_cnt)
 int media_svc_set_item_validity_end(MediaSvcHandle *handle, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
 
@@ -655,10 +655,10 @@ int media_svc_set_item_validity_end(MediaSvcHandle *handle, uid_t uid)
        return ret;
 }
 
-int media_svc_set_item_validity(MediaSvcHandle *handle, const char *path, int validity,uid_t uid)
+int media_svc_set_item_validity(MediaSvcHandle *handle, const char *path, int validity, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
        media_svc_retvm_if(!STRING_VALID(path), MS_MEDIA_ERR_INVALID_PARAMETER, "path is NULL");
@@ -674,7 +674,7 @@ int media_svc_set_item_validity(MediaSvcHandle *handle, const char *path, int va
                ret = _media_svc_update_item_validity(db_handle, path, validity, TRUE, uid);
                media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
-               g_media_svc_item_validity_cur_data_cnt ++;
+               g_media_svc_item_validity_cur_data_cnt++;
 
        } else if (g_media_svc_item_validity_cur_data_cnt  == (g_media_svc_item_validity_data_cnt  - 1)) {
 
@@ -698,8 +698,8 @@ int media_svc_set_item_validity(MediaSvcHandle *handle, const char *path, int va
 int media_svc_delete_item_by_path(MediaSvcHandle *handle, const char *storage_id, const char *path, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
-       char thumb_path[MEDIA_SVC_PATHNAME_SIZE] = {0,};
+       sqlite3 *db_handle = (sqlite3 *)handle;
+       char thumb_path[MEDIA_SVC_PATHNAME_SIZE] = {0, };
 
        media_svc_debug_func();
 
@@ -712,11 +712,11 @@ int media_svc_delete_item_by_path(MediaSvcHandle *handle, const char *storage_id
        media_svc_retv_if((ret != MS_MEDIA_ERR_NONE), ret);
 
 #if 0
-       if((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) ||(media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
+       if ((media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) || (media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)) {
                /*Get thumbnail path to delete*/
                ret = _media_svc_get_thumbnail_path_by_path(db_handle, storage_id, path, thumb_path);
                media_svc_retv_if((ret != MS_MEDIA_ERR_NONE) && (ret != MS_MEDIA_ERR_DB_NO_RECORD), ret);
-       } else if ((media_type == MEDIA_SVC_MEDIA_TYPE_SOUND) ||(media_type == MEDIA_SVC_MEDIA_TYPE_MUSIC)) {
+       } else if ((media_type == MEDIA_SVC_MEDIA_TYPE_SOUND) || (media_type == MEDIA_SVC_MEDIA_TYPE_MUSIC)) {
                int count = 0;
                ret = _media_svc_get_media_count_with_album_id_by_path(db_handle, path, &count);
                media_svc_retv_if((ret != MS_MEDIA_ERR_NONE), ret);
@@ -764,7 +764,7 @@ int media_svc_delete_item_by_path(MediaSvcHandle *handle, const char *storage_id
        /*Delete thumbnail*/
        if ((strlen(thumb_path) > 0) && (strncmp(thumb_path, _media_svc_get_thumb_default_path(uid), sizeof(_media_svc_get_thumb_default_path(uid))) != 0)) {
                ret = _media_svc_remove_file(thumb_path);
-               if(ret != MS_MEDIA_ERR_NONE) {
+               if (ret != MS_MEDIA_ERR_NONE) {
                        media_svc_error("fail to remove thumbnail file.");
                }
        }
@@ -775,8 +775,8 @@ int media_svc_delete_item_by_path(MediaSvcHandle *handle, const char *storage_id
 int media_svc_delete_all_items_in_storage(MediaSvcHandle *handle, media_svc_storage_type_e storage_type, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
-       char * dirpath = NULL;
+       sqlite3 *db_handle = (sqlite3 *)handle;
+       char *dirpath = NULL;
 
        media_svc_debug("media_svc_delete_all_items_in_storage [%d]", storage_type);
 
@@ -801,7 +801,7 @@ int media_svc_delete_all_items_in_storage(MediaSvcHandle *handle, media_svc_stor
 
 int media_svc_delete_invalid_items_in_storage(MediaSvcHandle *handle, media_svc_storage_type_e storage_type, uid_t uid)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
 
@@ -818,7 +818,7 @@ int media_svc_delete_invalid_items_in_storage(MediaSvcHandle *handle, media_svc_
 
 int media_svc_delete_invalid_items_in_folder(MediaSvcHandle *handle, const char *folder_path, uid_t uid)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
 
@@ -830,7 +830,7 @@ int media_svc_delete_invalid_items_in_folder(MediaSvcHandle *handle, const char
 
 int media_svc_set_all_storage_items_validity(MediaSvcHandle *handle, media_svc_storage_type_e storage_type, int validity, uid_t uid)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
 
@@ -844,13 +844,13 @@ int media_svc_set_all_storage_items_validity(MediaSvcHandle *handle, media_svc_s
 
 int media_svc_set_folder_items_validity(MediaSvcHandle *handle, const char *folder_path, int validity, int recursive, uid_t uid)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
        media_svc_retvm_if(!STRING_VALID(folder_path), MS_MEDIA_ERR_INVALID_PARAMETER, "folder_path is NULL");
 
-       if(recursive)
-               return _media_svc_update_recursive_folder_item_validity(db_handle, folder_path, validity , uid);
+       if (recursive)
+               return _media_svc_update_recursive_folder_item_validity(db_handle, folder_path, validity, uid);
        else
                return _media_svc_update_folder_item_validity(db_handle, folder_path, validity, uid);
 }
@@ -858,7 +858,7 @@ int media_svc_set_folder_items_validity(MediaSvcHandle *handle, const char *fold
 int media_svc_refresh_item(MediaSvcHandle *handle, media_svc_storage_type_e storage_type, const char *storage_id, const char *path, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
        media_svc_media_type_e media_type;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
@@ -910,9 +910,9 @@ int media_svc_refresh_item(MediaSvcHandle *handle, media_svc_storage_type_e stor
 
        media_type = noti_item->media_type;
 
-       if(media_type == MEDIA_SVC_MEDIA_TYPE_OTHER) {
+       if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER) {
                /*Do nothing.*/
-       } else if(media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) {
+       } else if (media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) {
                ret = _media_svc_extract_image_metadata(handle, &content_info, media_type, uid);
        } else {
                ret = _media_svc_extract_media_metadata(handle, &content_info, media_type, uid);
@@ -932,17 +932,17 @@ int media_svc_refresh_item(MediaSvcHandle *handle, media_svc_storage_type_e stor
                        int height = 0;
 
                        ret = _media_svc_request_thumbnail_with_origin_size(content_info.path, thumb_path, sizeof(thumb_path), &width, &height, uid);
-                       if(ret == MS_MEDIA_ERR_NONE) {
+                       if (ret == MS_MEDIA_ERR_NONE) {
                                ret = __media_svc_malloc_and_strncpy(&(content_info.thumbnail_path), thumb_path);
                        }
 
-               if (content_info.media_meta.width <= 0)
-                       content_info.media_meta.width = width;
+                       if (content_info.media_meta.width <= 0)
+                               content_info.media_meta.width = width;
 
-               if (content_info.media_meta.height <= 0)
-                       content_info.media_meta.height = height;
+                       if (content_info.media_meta.height <= 0)
+                               content_info.media_meta.height = height;
                }
-       } 
+       }
 
 #endif
 
@@ -963,7 +963,7 @@ int media_svc_refresh_item(MediaSvcHandle *handle, media_svc_storage_type_e stor
 
 int media_svc_rename_folder(MediaSvcHandle *handle, const char *storage_id, const char *src_path, const char *dst_path, uid_t uid)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
        int ret = MS_MEDIA_ERR_NONE;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
@@ -972,20 +972,20 @@ int media_svc_rename_folder(MediaSvcHandle *handle, const char *storage_id, cons
 
        media_svc_debug("Src path : %s,  Dst Path : %s", src_path, dst_path);
 
-       ret = _media_svc_sql_begin_trans(handle,uid);
+       ret = _media_svc_sql_begin_trans(handle, uid);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
        /* Update all folder record's path, which are matched by old parent path */
        char *update_folder_path_sql = NULL;
-       char src_path_slash[MEDIA_SVC_PATHNAME_SIZE + 1] = {0,};
-       char dst_path_slash[MEDIA_SVC_PATHNAME_SIZE + 1] = {0,};
+       char src_path_slash[MEDIA_SVC_PATHNAME_SIZE + 1] = {0, };
+       char dst_path_slash[MEDIA_SVC_PATHNAME_SIZE + 1] = {0, };
 
        snprintf(src_path_slash, sizeof(src_path_slash), "%s/", src_path);
        snprintf(dst_path_slash, sizeof(dst_path_slash), "%s/", dst_path);
 
        update_folder_path_sql = sqlite3_mprintf("UPDATE folder SET path = REPLACE( path, '%q', '%q');", src_path_slash, dst_path_slash);
 
-       //ret = _media_svc_sql_query(handle, update_folder_path_sql, uid);
+       /*ret = _media_svc_sql_query(handle, update_folder_path_sql, uid); */
        ret = media_db_request_update_db_batch(update_folder_path_sql, uid);
        sqlite3_free(update_folder_path_sql);
 
@@ -1004,7 +1004,7 @@ int media_svc_rename_folder(MediaSvcHandle *handle, const char *storage_id, cons
        update_folder_modified_time_sql = sqlite3_mprintf("UPDATE folder SET modified_time = %d where path like '%q';", date, dst_path);
 
        ret = media_db_request_update_db_batch(update_folder_modified_time_sql, uid);
-       //ret = _media_svc_sql_query(handle, update_folder_modified_time_sql, uid);
+       /*ret = _media_svc_sql_query(handle, update_folder_modified_time_sql, uid); */
        sqlite3_free(update_folder_modified_time_sql);
 
        if (ret != SQLITE_OK) {
@@ -1039,11 +1039,11 @@ int media_svc_rename_folder(MediaSvcHandle *handle, const char *storage_id, cons
                        break;
                }
 
-               char media_uuid[MEDIA_SVC_UUID_SIZE + 1] = {0,};
-               char media_path[MEDIA_SVC_PATHNAME_SIZE + 1] = {0,};
-               char media_thumb_path[MEDIA_SVC_PATHNAME_SIZE + 1] = {0,};
-               char media_new_thumb_path[MEDIA_SVC_PATHNAME_SIZE + 1] = {0,};
-               //int media_type;
+               char media_uuid[MEDIA_SVC_UUID_SIZE + 1] = {0, };
+               char media_path[MEDIA_SVC_PATHNAME_SIZE + 1] = {0, };
+               char media_thumb_path[MEDIA_SVC_PATHNAME_SIZE + 1] = {0, };
+               char media_new_thumb_path[MEDIA_SVC_PATHNAME_SIZE + 1] = {0, };
+               /*int media_type; */
                bool no_thumb = FALSE;
 
                if (STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 0))) {
@@ -1070,7 +1070,7 @@ int media_svc_rename_folder(MediaSvcHandle *handle, const char *storage_id, cons
                        no_thumb = TRUE;
                }
 
-               //media_type = sqlite3_column_int(sql_stmt, 3);
+               /*media_type = sqlite3_column_int(sql_stmt, 3); */
 
                /* Update path, thumbnail path of this item */
                char *replaced_path = NULL;
@@ -1094,21 +1094,21 @@ int media_svc_rename_folder(MediaSvcHandle *handle, const char *storage_id, cons
                                if (ret != MS_MEDIA_ERR_NONE) {
                                        media_svc_error("_media_svc_get_store_type_by_path failed : %d", ret);
                                        SAFE_FREE(replaced_path);
-                                       _media_svc_sql_rollback_trans(handle,uid);
+                                       _media_svc_sql_rollback_trans(handle, uid);
                                        return ret;
                                }
-       
+
                                ret = _media_svc_get_thumbnail_path(storage_type, media_new_thumb_path, replaced_path, THUMB_EXT, uid);
                                if (ret != MS_MEDIA_ERR_NONE) {
                                        media_svc_error("_media_svc_get_thumbnail_path failed : %d", ret);
                                        SAFE_FREE(replaced_path);
                                        SQLITE3_FINALIZE(sql_stmt);
-                                       _media_svc_sql_rollback_trans(handle,uid);
+                                       _media_svc_sql_rollback_trans(handle, uid);
                                        return ret;
                                }
                        }
 
-                       //media_svc_debug("New media thumbnail path : %s", media_new_thumb_path);
+                       /*media_svc_debug("New media thumbnail path : %s", media_new_thumb_path); */
                }
 
                char *update_item_sql = NULL;
@@ -1127,22 +1127,22 @@ int media_svc_rename_folder(MediaSvcHandle *handle, const char *storage_id, cons
 #endif
                }
 
-               ret = media_db_request_update_db_batch(update_item_sql,uid);
-               //ret = _media_svc_sql_query(handle, update_item_sql,uid);
+               ret = media_db_request_update_db_batch(update_item_sql, uid);
+               /*ret = _media_svc_sql_query(handle, update_item_sql, uid); */
                sqlite3_free(update_item_sql);
                SAFE_FREE(replaced_path);
 
                if (ret != SQLITE_OK) {
                        media_svc_error("failed to update item");
                        SQLITE3_FINALIZE(sql_stmt);
-                       _media_svc_sql_rollback_trans(handle,uid);
-       
+                       _media_svc_sql_rollback_trans(handle, uid);
+
                        return MS_MEDIA_ERR_DB_INTERNAL;
                }
 
                /* Rename thumbnail file of file system */
-//             if ((!no_thumb) && (media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE || media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO)
-//                             && (strncmp(media_thumb_path, _media_svc_get_thumb_default_path(uid), sizeof(_media_svc_get_thumb_default_path(uid))) != 0)) {
+/*             if ((!no_thumb) && (media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE || media_type == MEDIA_SVC_MEDIA_TYPE_VIDEO) */
+/*                             && (strncmp(media_thumb_path, _media_svc_get_thumb_default_path(uid), sizeof(_media_svc_get_thumb_default_path(uid))) != 0)) { */
                if ((!no_thumb) && (strncmp(media_thumb_path, _media_svc_get_thumb_default_path(uid), sizeof(_media_svc_get_thumb_default_path(uid))) != 0)) {
                        ret = _media_svc_rename_file(media_thumb_path, media_new_thumb_path);
                        if (ret != MS_MEDIA_ERR_NONE) {
@@ -1156,7 +1156,7 @@ int media_svc_rename_folder(MediaSvcHandle *handle, const char *storage_id, cons
        ret = _media_svc_sql_end_trans(handle, uid);
        if (ret != MS_MEDIA_ERR_NONE) {
                media_svc_error("mb_svc_sqlite3_commit_trans failed.. Now start to rollback\n");
-               _media_svc_sql_rollback_trans(handle,uid);
+               _media_svc_sql_rollback_trans(handle, uid);
                return ret;
        }
 
@@ -1182,7 +1182,7 @@ int media_svc_request_update_db(const char *db_query, uid_t uid)
 int media_svc_send_dir_update_noti(MediaSvcHandle *handle, const char *dir_path)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
        media_svc_retvm_if(!STRING_VALID(dir_path), MS_MEDIA_ERR_INVALID_PARAMETER, "dir_path is NULL");
@@ -1200,7 +1200,7 @@ int media_svc_send_dir_update_noti(MediaSvcHandle *handle, const char *dir_path)
 
 int media_svc_count_invalid_items_in_folder(MediaSvcHandle *handle, const char *folder_path, int *count)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
 
@@ -1213,7 +1213,7 @@ int media_svc_count_invalid_items_in_folder(MediaSvcHandle *handle, const char *
 
 int media_svc_check_db_upgrade(MediaSvcHandle *handle, uid_t uid)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
@@ -1223,7 +1223,7 @@ int media_svc_check_db_upgrade(MediaSvcHandle *handle, uid_t uid)
 
 int media_svc_check_db_corrupt(MediaSvcHandle *handle)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
@@ -1231,9 +1231,9 @@ int media_svc_check_db_corrupt(MediaSvcHandle *handle)
        return _media_db_check_corrupt(db_handle);
 }
 
-int media_svc_get_folder_list(MediaSvcHandle *handle, charstart_path, char ***folder_list, time_t **modified_time_list, int **item_num_list, int *count)
+int media_svc_get_folder_list(MediaSvcHandle *handle, char *start_path, char ***folder_list, time_t **modified_time_list, int **item_num_list, int *count)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
 
@@ -1246,10 +1246,10 @@ int media_svc_get_folder_list(MediaSvcHandle *handle, char* start_path, char ***
 int media_svc_update_folder_time(MediaSvcHandle *handle, const char *folder_path, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
        time_t sto_time = 0;
        int cur_time =  _media_svc_get_file_time(folder_path);
-       char folder_uuid[MEDIA_SVC_UUID_SIZE+1] = {0,};
+       char folder_uuid[MEDIA_SVC_UUID_SIZE + 1] = {0, };
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
 
@@ -1265,7 +1265,7 @@ int media_svc_update_folder_time(MediaSvcHandle *handle, const char *folder_path
 
 int media_svc_update_item_begin(MediaSvcHandle *handle, int data_cnt)
 {
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug("Transaction data count : [%d]", data_cnt);
 
@@ -1281,7 +1281,7 @@ int media_svc_update_item_begin(MediaSvcHandle *handle, int data_cnt)
 int media_svc_update_item_end(MediaSvcHandle *handle, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_debug_func();
 
@@ -1302,7 +1302,7 @@ int media_svc_update_item_end(MediaSvcHandle *handle, uid_t uid)
 int media_svc_update_item_meta(MediaSvcHandle *handle, const char *file_path, int storage_type, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
 
@@ -1325,9 +1325,9 @@ int media_svc_update_item_meta(MediaSvcHandle *handle, const char *file_path, in
                return ret;
        }
 
-       if(media_type == MEDIA_SVC_MEDIA_TYPE_MUSIC) {
+       if (media_type == MEDIA_SVC_MEDIA_TYPE_MUSIC) {
                ret = _media_svc_extract_music_metadata_for_update(db_handle, &content_info, media_type);
-       } else{
+       } else {
                return MS_MEDIA_ERR_NONE;
        }
        if (ret != MS_MEDIA_ERR_NONE) {
@@ -1340,12 +1340,12 @@ int media_svc_update_item_meta(MediaSvcHandle *handle, const char *file_path, in
                ret = _media_svc_update_meta_with_data(db_handle, &content_info);
                media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, &content_info);
 
-       } else if(g_media_svc_update_item_cur_data_cnt  < (g_media_svc_update_item_data_cnt  - 1)) {
+       } else if (g_media_svc_update_item_cur_data_cnt  < (g_media_svc_update_item_data_cnt  - 1)) {
 
                ret = _media_svc_update_meta_with_data(db_handle, &content_info);
                media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, &content_info);
 
-               g_media_svc_update_item_cur_data_cnt ++;
+               g_media_svc_update_item_cur_data_cnt++;
 
        } else if (g_media_svc_update_item_cur_data_cnt  == (g_media_svc_update_item_data_cnt  - 1)) {
 
@@ -1373,7 +1373,7 @@ int media_svc_publish_noti(MediaSvcHandle *handle, media_item_type_e update_item
        return _media_svc_publish_noti(update_item, update_type, path, media_type, uuid, mime_type);
 }
 
-int media_svc_get_pinyin(MediaSvcHandle *handle, const char * src_str, char **pinyin_str)
+int media_svc_get_pinyin(MediaSvcHandle *handle, const char *src_str, char **pinyin_str)
 {
        media_svc_retvm_if(!STRING_VALID(src_str), MS_MEDIA_ERR_INVALID_PARAMETER, "String is NULL");
 
@@ -1387,7 +1387,7 @@ int media_svc_check_pinyin_support(bool *support)
        return MS_MEDIA_ERR_NONE;
 }
 
-static int __media_svc_copy_para_to_content(media_svc_content_info_s *content_info ,media_svc_content_info_s *new_content_info)
+static int __media_svc_copy_para_to_content(media_svc_content_info_s *content_infomedia_svc_content_info_s *new_content_info)
 {
        media_svc_retvm_if(content_info == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
        media_svc_retvm_if(new_content_info == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
@@ -1396,8 +1396,8 @@ static int __media_svc_copy_para_to_content(media_svc_content_info_s *content_in
        initialize media content datas
        */
        int ret = MS_MEDIA_ERR_NONE;
-       char * media_uuid = NULL;
-       char * file_name = NULL;
+       char *media_uuid = NULL;
+       char *file_name = NULL;
 
        ret = __media_svc_malloc_and_strncpy(&new_content_info->path, content_info->path);
        media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, new_content_info);
@@ -1429,8 +1429,8 @@ static int __media_svc_copy_para_to_content(media_svc_content_info_s *content_in
        ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.artist, MEDIA_SVC_TAG_UNKNOWN);
        media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, new_content_info);
 
-//     ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.album_artist, MEDIA_SVC_TAG_UNKNOWN);
-//     media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, new_content_info);
+/*     ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.album_artist, MEDIA_SVC_TAG_UNKNOWN); */
+/*     media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, new_content_info); */
 
        ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.genre, MEDIA_SVC_TAG_UNKNOWN);
        media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, new_content_info);
@@ -1456,9 +1456,9 @@ static int __media_svc_copy_para_to_content(media_svc_content_info_s *content_in
        media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, new_content_info);
 
        new_content_info->played_count = 0;
-       new_content_info->last_played_time= 0;
-       new_content_info->last_played_position= 0;
-       new_content_info->favourate= 0;
+       new_content_info->last_played_time = 0;
+       new_content_info->last_played_position = 0;
+       new_content_info->favourate = 0;
        new_content_info->media_meta.rating = 0;
        /*
        end of initializing
@@ -1470,110 +1470,96 @@ static int __media_svc_copy_para_to_content(media_svc_content_info_s *content_in
        new_content_info->is_drm = content_info->is_drm;
        new_content_info->media_type = content_info->media_type;
 
-       if(STRING_VALID(content_info->mime_type))
-       {
+       if (STRING_VALID(content_info->mime_type)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->mime_type, content_info->mime_type);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy mime_type failed");
        }
 
-       if(STRING_VALID(content_info->thumbnail_path))
-       {
+       if (STRING_VALID(content_info->thumbnail_path)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->thumbnail_path, content_info->thumbnail_path);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy thumbnail_path failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.title))
-       {
+       if (STRING_VALID(content_info->media_meta.title)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.title, content_info->media_meta.title);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy title failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.album))
-       {
+       if (STRING_VALID(content_info->media_meta.album)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.album, content_info->media_meta.album);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy album failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.artist))
-       {
+       if (STRING_VALID(content_info->media_meta.artist)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.artist, content_info->media_meta.artist);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy artist failed");
        }
 
-/*
-       if(STRING_VALID(content_info->media_meta.album_artist))
-       {
-               ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.album_artist, content_info->media_meta.album_artist);
-               if(ret != MS_MEDIA_ERR_NONE)
-                       media_svc_error("strcpy album_artist failed");
-       }
-*/
+       /*
+               if(STRING_VALID(content_info->media_meta.album_artist))
+               {
+                       ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.album_artist, content_info->media_meta.album_artist);
+                       if(ret != MS_MEDIA_ERR_NONE)
+                               media_svc_error("strcpy album_artist failed");
+               }
+       */
 
-       if(STRING_VALID(content_info->media_meta.genre))
-       {
+       if (STRING_VALID(content_info->media_meta.genre)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.genre, content_info->media_meta.genre);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy genre failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.composer))
-       {
+       if (STRING_VALID(content_info->media_meta.composer)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.composer, content_info->media_meta.composer);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy composer failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.year))
-       {
+       if (STRING_VALID(content_info->media_meta.year)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.year, content_info->media_meta.year);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy year failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.recorded_date))
-       {
+       if (STRING_VALID(content_info->media_meta.recorded_date)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.recorded_date, content_info->media_meta.recorded_date);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy recorded_date failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.copyright))
-       {
+       if (STRING_VALID(content_info->media_meta.copyright)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.copyright, content_info->media_meta.copyright);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy copyright failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.track_num))
-       {
+       if (STRING_VALID(content_info->media_meta.track_num)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.track_num, content_info->media_meta.track_num);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy track_num failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.description))
-       {
+       if (STRING_VALID(content_info->media_meta.description)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.description, content_info->media_meta.description);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy description failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.weather))
-       {
+       if (STRING_VALID(content_info->media_meta.weather)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.weather, content_info->media_meta.weather);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy description failed");
        }
 
-       if(STRING_VALID(content_info->media_meta.datetaken))
-       {
+       if (STRING_VALID(content_info->media_meta.datetaken)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.datetaken, content_info->media_meta.datetaken);
-               if(ret != MS_MEDIA_ERR_NONE)
+               if (ret != MS_MEDIA_ERR_NONE)
                        media_svc_error("strcpy datetaken failed");
 
                new_content_info->timeline = __media_svc_get_timeline_from_str(content_info->media_meta.datetaken);
@@ -1603,8 +1589,8 @@ static int __media_svc_copy_para_to_content(media_svc_content_info_s *content_in
 int media_svc_insert_item_immediately_with_data(MediaSvcHandle *handle, media_svc_content_info_s *content_info, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
-       char folder_uuid[MEDIA_SVC_UUID_SIZE+1] = {0,};
+       sqlite3 *db_handle = (sqlite3 *)handle;
+       char folder_uuid[MEDIA_SVC_UUID_SIZE + 1] = {0, };
        bool append_album = FALSE;
 
        /* Checking parameters if they are valid */
@@ -1618,14 +1604,12 @@ int media_svc_insert_item_immediately_with_data(MediaSvcHandle *handle, media_sv
                return MS_MEDIA_ERR_INVALID_PARAMETER;
        }
 
-       if (content_info->size <= 0)
-       {
+       if (content_info->size <= 0) {
                media_svc_error("invalid size condition[%d]", content_info->size);
                return MS_MEDIA_ERR_INVALID_PARAMETER;
        }
 
-       if (content_info->modified_time <= 0)
-       {
+       if (content_info->modified_time <= 0) {
                media_svc_error("invalid modified_time condition[%d]", content_info->modified_time);
                return MS_MEDIA_ERR_INVALID_PARAMETER;
        }
@@ -1635,7 +1619,7 @@ int media_svc_insert_item_immediately_with_data(MediaSvcHandle *handle, media_sv
        memset(&_new_content_info, 0, sizeof(media_svc_content_info_s));
 
        /* set othere data to the structure, which is passed as parameters */
-       __media_svc_copy_para_to_content(content_info , &_new_content_info);
+       __media_svc_copy_para_to_content(content_info, &_new_content_info);
 
        /* Set or Get folder id */
        ret = _media_svc_get_and_append_folder_id_by_path(handle, _new_content_info.storage_uuid, _new_content_info.path, _new_content_info.storage_type, folder_uuid, uid);
@@ -1647,8 +1631,7 @@ int media_svc_insert_item_immediately_with_data(MediaSvcHandle *handle, media_sv
        /* register album table data */
 
        int album_id = 0;
-       if(_new_content_info.media_type == MEDIA_SVC_MEDIA_TYPE_SOUND || _new_content_info.media_type == MEDIA_SVC_MEDIA_TYPE_MUSIC)
-       {
+       if (_new_content_info.media_type == MEDIA_SVC_MEDIA_TYPE_SOUND || _new_content_info.media_type == MEDIA_SVC_MEDIA_TYPE_MUSIC) {
                ret = _media_svc_get_album_id(handle, _new_content_info.media_meta.album, _new_content_info.media_meta.artist, &album_id);
 
                if (ret != MS_MEDIA_ERR_NONE) {
@@ -1663,8 +1646,8 @@ int media_svc_insert_item_immediately_with_data(MediaSvcHandle *handle, media_sv
                        _new_content_info.album_id = album_id;
                        append_album = FALSE;
 
-                       if((!strncmp(_new_content_info.media_meta.album, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))) ||
-                               (!strncmp(_new_content_info.media_meta.artist, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN)))) {
+                       if ((!strncmp(_new_content_info.media_meta.album, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))) ||
+                           (!strncmp(_new_content_info.media_meta.artist, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN)))) {
 
                                media_svc_debug("Unknown album or artist already exists. Extract thumbnail for Unknown.");
                        } else {
@@ -1676,10 +1659,10 @@ int media_svc_insert_item_immediately_with_data(MediaSvcHandle *handle, media_sv
                }
        }
 
-       if(append_album == TRUE) {
+       if (append_album == TRUE) {
 
-               if((strncmp(_new_content_info.media_meta.album, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))) &&
-                       (strncmp(_new_content_info.media_meta.artist, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))))
+               if ((strncmp(_new_content_info.media_meta.album, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))) &&
+                   (strncmp(_new_content_info.media_meta.artist, MEDIA_SVC_TAG_UNKNOWN, strlen(MEDIA_SVC_TAG_UNKNOWN))))
                        ret = _media_svc_append_album(handle, _new_content_info.media_meta.album, _new_content_info.media_meta.artist, _new_content_info.thumbnail_path, &album_id, uid);
                else
                        ret = _media_svc_append_album(handle, _new_content_info.media_meta.album, _new_content_info.media_meta.artist, NULL, &album_id, uid);
@@ -1717,7 +1700,7 @@ char *media_info_generate_uuid(void)
 int media_svc_insert_storage(MediaSvcHandle *handle, const char *storage_id, const char *storage_name, const char *storage_path, const char *storage_account, media_svc_storage_type_e storage_type, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
        media_svc_retvm_if(storage_id == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "storage_id is NULL");
@@ -1729,8 +1712,7 @@ int media_svc_insert_storage(MediaSvcHandle *handle, const char *storage_id, con
        ret = _media_svc_create_media_table_with_id(db_handle, storage_id, uid);
        media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "create media table failed : %d", ret);
 
-       if(storage_type == MEDIA_SVC_STORAGE_CLOUD)
-       {
+       if (storage_type == MEDIA_SVC_STORAGE_CLOUD) {
                ret = _media_svc_update_media_view(db_handle, uid);
                media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "update media view failed : %d", ret);
        }
@@ -1741,7 +1723,7 @@ int media_svc_insert_storage(MediaSvcHandle *handle, const char *storage_id, con
 int media_svc_delete_storage(MediaSvcHandle *handle, const char *storage_id, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       sqlite3 * db_handle = (sqlite3 *)handle;
+       sqlite3 *db_handle = (sqlite3 *)handle;
 
        media_svc_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Handle is NULL");
        media_svc_retvm_if(storage_id == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "storage_id is NULL");
index a36c083..4af3350 100755 (executable)
@@ -25,9 +25,9 @@
 #include <sqlite3.h>
 #include <sys/types.h>
 
-int _media_svc_get_album_id(sqlite3 *handle, const char *album, const char *artist, int * album_id);
+int _media_svc_get_album_id(sqlite3 *handle, const char *album, const char *artist, int *album_id);
 int _media_svc_get_album_art_by_album_id(sqlite3 *handle, int album_id, char **album_art);
-int _media_svc_append_album(sqlite3 *handle, const char *album, const char *artist, const char *album_art, int * album_id, uid_t uid);
+int _media_svc_append_album(sqlite3 *handle, const char *album, const char *artist, const char *album_art, int *album_id, uid_t uid);
 int _media_svc_get_media_count_with_album_id_by_path(sqlite3 *handle, const char *path, int *count);
 
 #endif /*_MEDIA_SVC_ALBUM_H_*/
index 125242f..bdb72ed 100755 (executable)
@@ -36,8 +36,8 @@ int _media_svc_create_media_table_with_id(sqlite3 *db_handle, const char *table_
 int _media_svc_drop_media_table(sqlite3 *handle, const char *storage_id, uid_t uid);
 int _media_svc_update_media_view(sqlite3 *db_handle, uid_t uid);
 int _media_svc_sql_query(sqlite3 *db_handle, const char *sql_str, uid_t uid);
-int _media_svc_sql_prepare_to_step(sqlite3 *handle, const char *sql_str, sqlite3_stmt** stmt);
-int _media_svc_sql_prepare_to_step_simple(sqlite3 *handle, const char *sql_str, sqlite3_stmt** stmt);
+int _media_svc_sql_prepare_to_step(sqlite3 *handle, const char *sql_str, sqlite3_stmt **stmt);
+int _media_svc_sql_prepare_to_step_simple(sqlite3 *handle, const char *sql_str, sqlite3_stmt **stmt);
 int _media_svc_sql_begin_trans(sqlite3 *handle, uid_t uid);
 int _media_svc_sql_end_trans(sqlite3 *handle, uid_t uid);
 int _media_svc_sql_rollback_trans(sqlite3 *handle, uid_t uid);
@@ -46,7 +46,7 @@ void _media_svc_sql_query_add(GList **query_list, char **query);
 void _media_svc_sql_query_release(GList **query_list);
 int _media_svc_check_db_upgrade(sqlite3 *db_handle, uid_t uid);
 int _media_db_check_corrupt(sqlite3 *db_handle);
-char_media_svc_get_path(uid_t uid);
+char *_media_svc_get_path(uid_t uid);
 
 
 #endif /*_MEDIA_SVC_DB_UTILS_H_*/
index 6a066b0..1f03147 100755 (executable)
 #define LOG_TAG "MEDIA_SERVICE"
 
 #define media_svc_debug(fmt, arg...) do { \
-                       LOGD(" "fmt"", ##arg);     \
-               } while (0)
+               LOGD(" "fmt"", ##arg);     \
+       } while (0)
 
 #define media_svc_error(fmt, arg...) do { \
-                       LOGE(" "fmt"", ##arg);     \
-               } while (0)
+               LOGE(" "fmt"", ##arg);     \
+       } while (0)
 
 #define media_svc_debug_func() do { \
-                       LOGD("");     \
-               } while (0)
+               LOGD("");     \
+       } while (0)
 
 #define media_svc_retm_if(expr, fmt, arg...) do { \
-                       if(expr) { \
-                               LOGE(" "fmt"", ##arg);   \
-                               return; \
-                       } \
-               } while (0)
+               if(expr) { \
+                       LOGE(" "fmt"", ##arg);   \
+                       return; \
+               } \
+       } while (0)
 #define media_svc_retv_if(expr, val) do { \
-                       if(expr) { \
-                               LOGE("");     \
-                               return (val); \
-                       } \
-               } while (0)
+               if(expr) { \
+                       LOGE("");     \
+                       return (val); \
+               } \
+       } while (0)
 #define media_svc_retvm_if(expr, val, fmt, arg...) do { \
-                       if(expr) { \
-                               LOGE(" "fmt"", ##arg);  \
-                               return (val); \
-                       } \
-               } while (0)
+               if(expr) { \
+                       LOGE(" "fmt"", ##arg);  \
+                       return (val); \
+               } \
+       } while (0)
 
 #define media_svc_retv_del_if(expr, val, p_str) do { \
-                       if(expr) { \
-                               LOGE("");     \
-                               _media_svc_destroy_content_info(p_str);        \
-                               return (val); \
-                       } \
-               } while (0)
+               if(expr) { \
+                       LOGE("");     \
+                       _media_svc_destroy_content_info(p_str);        \
+                       return (val); \
+               } \
+       } while (0)
 
 #define media_svc_sec_debug(fmt, arg...) do { \
-                       SECURE_LOGI(" "fmt"", ##arg);    \
-               } while (0)
+               SECURE_LOGI(" "fmt"", ##arg);    \
+       } while (0)
 
 #define media_svc_sec_warn(fmt, arg...) do { \
-                       SECURE_LOGW(" "fmt"", ##arg);   \
-               } while (0)
+               SECURE_LOGW(" "fmt"", ##arg);   \
+       } while (0)
 
 #define media_svct_sec_error(fmt, arg...) do { \
-                       SECURE_LOGE(" "fmt"", ##arg);     \
-               } while (0)
+               SECURE_LOGE(" "fmt"", ##arg);     \
+       } while (0)
 
 #define ERR_BUF_LENGHT 256
 #define media_svc_stderror(fmt) do { \
-                       char buf[ERR_BUF_LENGHT] = {0,}; \
-                       strerror_r(errno, buf, ERR_BUF_LENGHT); \
-                       LOGE(fmt" : standard error= [%s]", buf); \
-               } while (0)
+               char buf[ERR_BUF_LENGHT] = {0, }; \
+               strerror_r(errno, buf, ERR_BUF_LENGHT); \
+               LOGE(fmt" : standard error= [%s]", buf); \
+       } while (0)
 
 #ifdef _USE_LOG_FILE_
 void mediainfo_init_file_debug();
 void mediainfo_close_file_debug();
-FILEget_fp();
-#define mediainfo_file_dbg(fmt,arg...)      fprintf( get_fp(), "[%s: %d] [%s]" fmt "\n", __FILE__, __LINE__, __FUNCTION__, ##arg)
+FILE *get_fp();
+#define mediainfo_file_dbg(fmt, arg...)      fprintf( get_fp(), "[%s: %d] [%s]" fmt "\n", __FILE__, __LINE__, __FUNCTION__, ##arg)
 
 #endif
 
@@ -108,9 +108,9 @@ mediainfo_get_debug_time(void);
 void
 mediainfo_reset_debug_time(void);
 void
-mediainfo_print_debug_time(chartime_string);
+mediainfo_print_debug_time(char *time_string);
 void
-mediainfo_print_debug_time_ex(long start, long end, const char* func_name, char* time_string);
+mediainfo_print_debug_time_ex(long start, long end, const char *func_name, char *time_string);
 #endif
 
 #endif /*_MEDIA_SVC_DEBUG_H_*/
index cc11674..8ff229e 100755 (executable)
@@ -103,11 +103,11 @@ extern "C" {
 #define MEDIA_SVC_DB_QUERY_VIEW_PLAYLIST               "CREATE VIEW IF NOT EXISTS %s AS SELECT %s FROM playlist \
                                                                                                LEFT OUTER JOIN playlist_map ON playlist.playlist_id = playlist_map.playlist_id \
                                                                                                LEFT OUTER JOIN media ON (playlist_map.media_uuid = media.media_uuid AND media.validity=1) \
-                                                                                               LEFT OUTER JOIN (SELECT count(playlist_id) as media_count, playlist_id FROM playlist_map group by playlist_id) as cnt_tbl ON (cnt_tbl.playlist_id=playlist_map.playlist_id AND media.validity=1);"
+LEFT OUTER JOIN (SELECT count(playlist_id) as media_count, playlist_id FROM playlist_map group by playlist_id) as cnt_tbl ON (cnt_tbl.playlist_id=playlist_map.playlist_id AND media.validity=1);"
 #define MEDIA_SVC_DB_QUERY_VIEW_TAG                            "CREATE VIEW IF NOT EXISTS %s AS SELECT %s FROM tag \
                                                                                                LEFT OUTER JOIN tag_map ON tag.tag_id=tag_map.tag_id \
                                                                                                LEFT OUTER JOIN media ON (tag_map.media_uuid = media.media_uuid AND media.validity=1) \
-                                                                                               LEFT OUTER JOIN (SELECT count(tag_id) as media_count, tag_id FROM tag_map group by tag_id) as cnt_tbl ON (cnt_tbl.tag_id=tag_map.tag_id AND media.validity=1);"
+LEFT OUTER JOIN (SELECT count(tag_id) as media_count, tag_id FROM tag_map group by tag_id) as cnt_tbl ON (cnt_tbl.tag_id=tag_map.tag_id AND media.validity=1);"
 #define MEDIA_SVC_DB_QUERY_ALTER_TABLE                 "ALTER TABLE %s ADD COLUMN %s;"
 #define MEDIA_SVC_DB_QUERY_DROP_VIEW                   "DROP VIEW IF EXISTS %s;"
 
@@ -129,25 +129,25 @@ extern "C" {
 #define THUMB_EXT      "jpg"
 
 enum Exif_Orientation {
-    NOT_AVAILABLE=0,
-    NORMAL  =1,
-    HFLIP   =2,
-    ROT_180 =3,
-    VFLIP   =4,
-    TRANSPOSE   =5,
-    ROT_90  =6,
-    TRANSVERSE  =7,
-    ROT_270 =8
+       NOT_AVAILABLE = 0,
+       NORMAL  = 1,
+       HFLIP   = 2,
+       ROT_180 = 3,
+       VFLIP   = 4,
+       TRANSPOSE   = 5,
+       ROT_90  = 6,
+       TRANSVERSE  = 7,
+       ROT_270 = 8
 };
 
-typedef enum{
+typedef enum {
        MEDIA_SVC_QUERY_INSERT_ITEM,
        MEDIA_SVC_QUERY_SET_ITEM_VALIDITY,
        MEDIA_SVC_QUERY_MOVE_ITEM,
        MEDIA_SVC_QUERY_UPDATE_ITEM
 } media_svc_query_type_e;
 
-typedef enum{
+typedef enum {
        MEDIA_SVC_DB_LIST_MEDIA                 = 0,
        MEDIA_SVC_DB_LIST_FOLDER                = 1,
        MEDIA_SVC_DB_LIST_PLAYLIST_MAP = 2,
@@ -166,7 +166,7 @@ typedef struct table_inform {
        char *viewName;
        char *eventTable;
        char *actionTable;
-}table_info;
+} table_info;
 
 typedef struct column_inform {
        char *name;
@@ -179,7 +179,7 @@ typedef struct column_inform {
        bool isUnique;
        bool isTrigger;
        bool isView;
-}column_info;
+} column_info;
 
 
 #ifdef __cplusplus
index 30c45ab..2a9c124 100755 (executable)
@@ -29,4 +29,4 @@ int SAFE_SNPRINTF(char **buf, int *buf_size, int len, const char *src);
 
 int _media_svc_collation_str(const char *src, char **dest);
 
-#endif // __MEDIA_SVC_LOCALIZE_UTILS_H__
\ No newline at end of file
+#endif /* __MEDIA_SVC_LOCALIZE_UTILS_H__ */
\ No newline at end of file
index 794a384..5d0e132 100755 (executable)
@@ -31,4 +31,4 @@ void _media_svc_pinyin_free(pinyin_name_s *pinyinname, int size);
 
 bool _media_svc_has_chinese(const char *src);
 
-#endif // __MEDIA_SERVICE_LOCALIZE_CH_H__
\ No newline at end of file
+#endif /* __MEDIA_SERVICE_LOCALIZE_CH_H__ */
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index 2cad1f0..de01d3c
@@ -24,7 +24,7 @@
 typedef struct {\r
        char *bpmf_initial;\r
        char *bpmf_name;\r
-}media_svc_bpmf_name_s;\r
+} media_svc_bpmf_name_s;\r
 \r
 int _media_svc_get_bopomofo(const char *src, char **dest);\r
 int _media_svc_convert_chinese_to_bpmf(const char *src, media_svc_bpmf_name_s **dest);\r
@@ -32,4 +32,4 @@ void _media_svc_bpmf_name_destroy(media_svc_bpmf_name_s *bpmf);
 bool _media_svc_bpmf_is_bpmf(const char *src);\r
 char _media_svc_bpmf_get_fuzzy_number(const char *src);\r
 \r
-#endif         //__MEDIA_SERVICE_LOCALIZE_TW_H__
\ No newline at end of file
+#endif         /*__MEDIA_SERVICE_LOCALIZE_TW_H__ */
\ No newline at end of file
index a0b8ea7..9e2b85a 100755 (executable)
@@ -32,7 +32,7 @@ int _media_svc_update_folder_modified_time_by_folder_uuid(sqlite3 *handle, const
 int _media_svc_get_and_append_folder(sqlite3 *handle, const char *storage_id, const char *path, media_svc_storage_type_e storage_type, char *folder_id, uid_t uid);
 int _media_svc_get_and_append_folder_id_by_path(sqlite3 *handle, const char *storage_id, const char *path, media_svc_storage_type_e storage_type, char *folder_id, uid_t uid);
 int _media_svc_update_folder_table(sqlite3 *handle, uid_t uid);
-int _media_svc_get_all_folders(sqlite3 *handle, charstart_path, char ***folder_list, time_t **modified_time_list, int **item_num_list, int *count);
+int _media_svc_get_all_folders(sqlite3 *handle, char *start_path, char ***folder_list, time_t **modified_time_list, int **item_num_list, int *count);
 int _media_svc_get_folder_info_by_foldername(sqlite3 *handle, const char *folder_name, char *folder_id, time_t *modified_time);
 
 #endif /*_MEDIA_SVC_MEDIA_FOLDER_H_*/
index a7f2fe4..28c8e69 100755 (executable)
@@ -48,7 +48,7 @@ int _media_svc_update_thumbnail_path(sqlite3 *handle, const char *storage_id, co
 int _media_svc_get_noti_info(sqlite3 *handle, const char *storage_id, const char *path, int update_item, media_svc_noti_item **item);
 int _media_svc_count_invalid_folder_items(sqlite3 *handle, const char *folder_path, int *count);
 int _media_svc_get_thumbnail_count(sqlite3 *handle, const char *thumb_path, int *count);
-char_media_svc_get_thumb_default_path(uid_t uid);
+char *_media_svc_get_thumb_default_path(uid_t uid);
 int _media_svc_get_fileinfo_by_path(sqlite3 *handle, const char *path, time_t *modified_time, unsigned long long *size);
 int _media_svc_update_meta_with_data(sqlite3 *handle, media_svc_content_info_s *content_info);
 
index a26f6b9..93ffa67 100755 (executable)
@@ -46,12 +46,12 @@ int _media_svc_destroy_noti_list(int all_cnt);
 int _media_svc_publish_noti_list(int all_cnt);
 int _media_svc_destroy_noti_item(media_svc_noti_item *item);
 int _media_svc_publish_noti(media_item_type_e update_item,
-                                                       media_item_update_type_e update_type,
-                                                       const char *path,
-                                                       media_type_e media_type,
-                                                       const char *uuid,
-                                                       const char *mime_type
-);
+                            media_item_update_type_e update_type,
+                            const char *path,
+                            media_type_e media_type,
+                            const char *uuid,
+                            const char *mime_type
+                           );
 
 #endif /*_MEDIA_SVC_NOTI_H_*/
 
index b272f1e..15a12c1 100755 (executable)
@@ -47,13 +47,13 @@ extern "C" {
 
 char *_media_info_generate_uuid(void);
 void _strncpy_safe(char *x_dst, const char *x_src, int max_len);
-int _media_svc_rename_file( const char *old_name, const char *new_name);
+int _media_svc_rename_file(const char *old_name, const char *new_name);
 int _media_svc_remove_file(const char *path);
 int _media_svc_remove_all_files_in_dir(const char *dir_path);
 int _media_svc_get_thumbnail_path(media_svc_storage_type_e storage_type, char *thumb_path, const char *pathname, const char *img_format, uid_t uid);
 int _media_svc_get_file_time(const char *full_path);
 int _media_svc_set_media_info(media_svc_content_info_s *content_info, const char *storage_id, media_svc_storage_type_e storage_type,
-                         const char *path, media_svc_media_type_e *media_type, bool refresh);
+                              const char *path, media_svc_media_type_e *media_type, bool refresh);
 int _media_svc_extract_image_metadata(sqlite3 *handle, media_svc_content_info_s *content_info, media_svc_media_type_e media_type, uid_t uid);
 int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s *content_info, media_svc_media_type_e media_type, uid_t uid);
 int __media_svc_malloc_and_strncpy(char **dst, const char *src);
@@ -61,8 +61,8 @@ time_t __media_svc_get_timeline_from_str(const char *timstr);
 void _media_svc_destroy_content_info(media_svc_content_info_s *content_info);
 int _media_svc_get_store_type_by_path(const char *path, media_svc_storage_type_e *storage_type, uid_t uid);
 char *_media_svc_replace_path(char *s, const char *olds, const char *news);
-char_media_svc_get_thumb_internal_path(uid_t uid);
-char_media_svc_get_thumb_external_path(uid_t uid);
+char *_media_svc_get_thumb_internal_path(uid_t uid);
+char *_media_svc_get_thumb_external_path(uid_t uid);
 bool _media_svc_is_drm_file(const char *path);
 int _media_svc_request_thumbnail_with_origin_size(const char *path, char *thumb_path, int max_length, int *origin_width, int *origin_height, uid_t uid);
 int _media_svc_get_pinyin_str(const char *src_str, char **pinyin_str);
old mode 100644 (file)
new mode 100755 (executable)
index a0a5ea3..ce20ff8
  * limitations under the License.
  *
  */
+
 #include <stdio.h>
 #include <unistd.h>
 #include <media-svc.h>
 #include <media-svc-noti.h>
 
-#define SAFE_FREE(src)                 { if(src) {free(src); src = NULL;}}
+#define SAFE_FREE(src)                 { if(src) { free(src); src = NULL; } }
 
 GMainLoop *g_loop = NULL;
 MediaSvcHandle *g_db_handle = NULL;
 
 void _noti_cb(int pid,
-                media_item_type_e update_item,
-                media_item_update_type_e update_type,
-                char *path,
-                char *uuid,
-                media_type_e content_type,
-                char *mime_type,
-                void *user_data)
+              media_item_type_e update_item,
+              media_item_update_type_e update_type,
+              char *path,
+              char *uuid,
+              media_type_e content_type,
+              char *mime_type,
+              void *user_data)
 {
        media_svc_debug("Noti from PID(%d)", pid);
 
@@ -54,7 +54,7 @@ void _noti_cb(int pid,
                media_svc_debug("Noti type : MS_MEDIA_ITEM_UPDATE");
        }
 
-       //media_svc_debug("content type : %d", content_type);
+       /*media_svc_debug("content type : %d", content_type); */
        printf("content type : %d\n", content_type);
 
        if (path)
@@ -67,24 +67,24 @@ void _noti_cb(int pid,
        else
                printf("mime not");
 
-    if (user_data) printf("String : %s\n", (char *)user_data);
+       if (user_data) printf("String : %s\n", (char *)user_data);
        else
                printf("user not");
 
-    return;
+       return;
 }
 
 #if 1
 gboolean _send_noti_batch_operations(gpointer data)
 {
-    int ret = MS_MEDIA_ERR_NONE;
+       int ret = MS_MEDIA_ERR_NONE;
 
-    /* First of all, noti subscription */
-    char *user_str = strdup("hi");
-    media_db_update_subscribe(_noti_cb, (void*)user_str);
+       /* First of all, noti subscription */
+       char *user_str = strdup("hi");
+       media_db_update_subscribe(_noti_cb, (void *)user_str);
 
-    /* 1. media_svc_insert_item_immediately */
-    char *path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
+       /* 1. media_svc_insert_item_immediately */
+       char *path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
 
        media_svc_storage_type_e storage_type;
 
@@ -92,17 +92,17 @@ gboolean _send_noti_batch_operations(gpointer data)
        if (ret != MS_MEDIA_ERR_NONE) {
                media_svc_error("media_svc_get_storage_type failed : %d (%s)", ret, path);
                SAFE_FREE(user_str);
-        return FALSE;
+               return FALSE;
        }
 
        int idx = 0;
        char *file_list[10];
 
        ret = media_svc_insert_item_begin(g_db_handle, 100, TRUE, getpid());
-       //ret = media_svc_insert_item_begin(g_db_handle, 100);
+       /*ret = media_svc_insert_item_begin(g_db_handle, 100); */
        for (idx = 0; idx < 10; idx++) {
-               char filepath[255] = {0,};
-               snprintf(filepath, sizeof(filepath), "%s%d.jpg", tzplatform_mkpath(TZ_USER_CONTENT,"test/image"), idx+1);
+               char filepath[255] = {0, };
+               snprintf(filepath, sizeof(filepath), "%s%d.jpg", tzplatform_mkpath(TZ_USER_CONTENT, "test/image"), idx + 1);
                media_svc_debug("File : %s\n", filepath);
                file_list[idx] = strdup(filepath);
                ret = media_svc_insert_item_bulk(g_db_handle, storage_type, file_list[idx], FALSE);
@@ -126,10 +126,10 @@ gboolean _send_noti_operations(gpointer data)
 
        /* First of all, noti subscription */
        char *user_str = strdup("hi");
-       media_db_update_subscribe(_noti_cb, (void*)user_str);
+       media_db_update_subscribe(_noti_cb, (void *)user_str);
 
        /* 1. media_svc_insert_item_immediately */
-       char *path = tzplatform_mkpath(TZ_USER_CONTENT,"test/image1.jpg");
+       char *path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
        media_svc_storage_type_e storage_type;
 
        ret = media_svc_get_storage_type(path, &storage_type, tzplatform_getuid(TZ_USER_NAME));
@@ -182,7 +182,7 @@ gboolean _send_noti_operations(gpointer data)
 
        /* Rename folder */
        const char *src_folder_path = tzplatform_mkpath(TZ_USER_CONTENT, "test");
-       const char *dst_folder_path = tzplatform_mkpath(TZ_USER_CONTENT,"test_test");
+       const char *dst_folder_path = tzplatform_mkpath(TZ_USER_CONTENT, "test_test");
        ret = media_svc_rename_folder(g_db_handle, src_folder_path, dst_folder_path);
        if (ret != MS_MEDIA_ERR_NONE) {
                media_svc_error("media_svc_rename_folder failed : %d", ret);
@@ -210,16 +210,16 @@ int test_noti()
        context = g_main_loop_get_context(g_loop);
        source = g_idle_source_new();
 #if 0
-       g_source_set_callback (source, _send_noti_operations, NULL, NULL);
+       g_source_set_callback(source, _send_noti_operations, NULL, NULL);
 #else
-       g_source_set_callback (source, _send_noti_batch_operations, NULL, NULL);
+       g_source_set_callback(source, _send_noti_batch_operations, NULL, NULL);
 #endif
-       g_source_attach (source, context);
+       g_source_attach(source, context);
 
        g_main_loop_run(g_loop);
 
        g_main_loop_unref(g_loop);
-    media_db_update_unsubscribe();
+       media_db_update_unsubscribe();
 
        return MS_MEDIA_ERR_NONE;
 }
index 31797fa..0873d32 100755 (executable)
 #include <tzplatform_config.h>
 
 #define PLUGIN_SO_FILE_NAME  "/usr/lib/libmedia-content-plugin.so"
-#define MEDIA_ROOT_PATH_SDCARD tzplatform_mkpath(TZ_SYS_STORAGE,"sdcard")
+#define MEDIA_ROOT_PATH_SDCARD tzplatform_mkpath(TZ_SYS_STORAGE, "sdcard")
 void *funcHandle = NULL;
 
 static void msg_print(int line, char *msg);
 
-int (*svc_connect)                             (void ** handle, char ** err_msg);
-int (*svc_disconnect)                  (void * handle, char ** err_msg);
-int (*svc_check_item_exist)            (void* handle, const char *file_path, bool *modified, char ** err_msg);
-int (*svc_insert_item_immediately)     (void* handle, const char *file_path, int storage_type, const char * mime_type, char ** err_msg);
-int (*svc_set_folder_item_validity) (void * handle, const char * folder_path, int validity, int recursive, char ** err_msg);
-int (*svc_delete_all_invalid_items_in_folder) (void * handle, const char *folder_path, char ** err_msg);
+int (*svc_connect)(void **handle, char **err_msg);
+int (*svc_disconnect)(void *handle, char **err_msg);
+int (*svc_check_item_exist)(void *handle, const char *file_path, bool *modified, char **err_msg);
+int (*svc_insert_item_immediately)(void *handle, const char *file_path, int storage_type, const char *mime_type, char **err_msg);
+int (*svc_set_folder_item_validity)(void *handle, const char *folder_path, int validity, int recursive, char **err_msg);
+int (*svc_delete_all_invalid_items_in_folder)(void *handle, const char *folder_path, char **err_msg);
 
 int __load_functions()
 {
        msg_print(__LINE__, "__load_functions");
 
-       funcHandle = dlopen (PLUGIN_SO_FILE_NAME, RTLD_LAZY);
+       funcHandle = dlopen(PLUGIN_SO_FILE_NAME, RTLD_LAZY);
        if (!funcHandle) {
-               fprintf (stderr,"error: %s\n", dlerror());
+               fprintf(stderr, "error: %s\n", dlerror());
        }
 
-       svc_connect                     = dlsym (funcHandle, "connect");
-       svc_disconnect          = dlsym (funcHandle, "disconnect");
-       svc_check_item_exist    = dlsym (funcHandle, "check_item_exist");
-       svc_insert_item_immediately     = dlsym (funcHandle, "insert_item_immediately");
-       svc_set_folder_item_validity    = dlsym (funcHandle, "set_folder_item_validity");
-       svc_delete_all_invalid_items_in_folder  = dlsym (funcHandle, "delete_all_invalid_items_in_folder");
-
-       if ( !svc_connect ||
-                !svc_disconnect ||
-                !svc_insert_item_immediately ||
-               !svc_set_folder_item_validity ||
-               !svc_delete_all_invalid_items_in_folder ||
-                !svc_check_item_exist) {
-               fprintf(stderr,"error: %s\n", dlerror());
+       svc_connect                     = dlsym(funcHandle, "connect");
+       svc_disconnect          = dlsym(funcHandle, "disconnect");
+       svc_check_item_exist    = dlsym(funcHandle, "check_item_exist");
+       svc_insert_item_immediately     = dlsym(funcHandle, "insert_item_immediately");
+       svc_set_folder_item_validity    = dlsym(funcHandle, "set_folder_item_validity");
+       svc_delete_all_invalid_items_in_folder  = dlsym(funcHandle, "delete_all_invalid_items_in_folder");
+
+       if (!svc_connect ||
+           !svc_disconnect ||
+           !svc_insert_item_immediately ||
+           !svc_set_folder_item_validity ||
+           !svc_delete_all_invalid_items_in_folder ||
+           !svc_check_item_exist) {
+               fprintf(stderr, "error: %s\n", dlerror());
                return -1;
        }
 
@@ -73,9 +73,8 @@ int __unload_functions(void)
 {
        msg_print(__LINE__, "__unload_functions");
 
-       if (funcHandle)
-       {
-               dlclose (funcHandle);
+       if (funcHandle) {
+               dlclose(funcHandle);
        }
 
        return 0;
@@ -84,24 +83,24 @@ int __unload_functions(void)
 int main()
 {
        int ret = 0;
-       MediaSvcHandle * db_handle = NULL;
-       char * err_msg = NULL;
-       char path[1024] = {0,};
-       char type[1024] = {0,};
+       MediaSvcHandle *db_handle = NULL;
+       char *err_msg = NULL;
+       char path[1024] = {0, };
+       char type[1024] = {0, };
 
        ret = __load_functions();
-       if(ret < 0) {
+       if (ret < 0) {
                msg_print(__LINE__, "__load_functions error");
                return -1;
        } else {
                msg_print(__LINE__, "__load_functions success");
        }
 
-       //db open ==================================================
+       /*db open ================================================== */
        ret = svc_connect(&db_handle, &err_msg);
-       if(ret < 0) {
+       if (ret < 0) {
                msg_print(__LINE__, "svc_connect error");
-               if(err_msg != NULL) {
+               if (err_msg != NULL) {
                        printf("err_msg[%s]\n", err_msg);
                        free(err_msg);
                        err_msg = NULL;
@@ -124,57 +123,57 @@ int main()
 #if 1
        while (1) {
 
-       printf("Enter path and mimetype ( ex. %s image ) : ", tzplatform_mkpath(TZ_USER_CONTENT, "a.jpg"));
-       scanf("%s %s", path, type);
-       bool modified = false;
-       //check_item_exist ============================================
-       ret = svc_check_item_exist(db_handle, path, &modified, &err_msg);
-       if(ret < 0) {
-               msg_print(__LINE__, "svc_check_item_exist error");
-               if(err_msg != NULL) {
-                       printf("err_msg[%s]\n", err_msg);
-                       free(err_msg);
-                       err_msg = NULL;
+               printf("Enter path and mimetype ( ex. %s image ) : ", tzplatform_mkpath(TZ_USER_CONTENT, "a.jpg"));
+               scanf("%s %s", path, type);
+               bool modified = false;
+               /*check_item_exist ============================================ */
+               ret = svc_check_item_exist(db_handle, path, &modified, &err_msg);
+               if (ret < 0) {
+                       msg_print(__LINE__, "svc_check_item_exist error");
+                       if (err_msg != NULL) {
+                               printf("err_msg[%s]\n", err_msg);
+                               free(err_msg);
+                               err_msg = NULL;
+                       }
+                       /*__unload_functions(); */
+                       /*return -1; */
+               } else {
+                       if (modified)
+                               msg_print(__LINE__, "svc_check_item_exist success. Modified");
+                       else
+                               msg_print(__LINE__, "svc_check_item_exist success. Not modified");
                }
-               //__unload_functions();
-               //return -1;
-       } else {
-               if(modified)
-                       msg_print(__LINE__, "svc_check_item_exist success. Modified");
-               else
-                       msg_print(__LINE__, "svc_check_item_exist success. Not modified");
-       }
 
-       // svc_check_item_exist ============================================
-       ret = svc_insert_item_immediately(db_handle, path, 0, type, &err_msg);
-       if(ret < 0) {
-               msg_print(__LINE__, "svc_insert_item_immediately error");
-               if(err_msg != NULL) {
-                       printf("err_msg[%s]\n", err_msg);
-                       free(err_msg);
-                       err_msg = NULL;
+               /* svc_check_item_exist ============================================ */
+               ret = svc_insert_item_immediately(db_handle, path, 0, type, &err_msg);
+               if (ret < 0) {
+                       msg_print(__LINE__, "svc_insert_item_immediately error");
+                       if (err_msg != NULL) {
+                               printf("err_msg[%s]\n", err_msg);
+                               free(err_msg);
+                               err_msg = NULL;
+                       }
+                       /*__unload_functions(); */
+                       /*return -1; */
+               } else {
+                       msg_print(__LINE__, "svc_insert_item_immediately success");
                }
-               //__unload_functions();
-               //return -1;
-       } else {
-               msg_print(__LINE__, "svc_insert_item_immediately success");
-       }
-       } // End of While
+       } /* End of While */
 
        ret = media_svc_insert_folder(db_handle, 0,  path);
-       if(ret < 0) {
+       if (ret < 0) {
                msg_print(__LINE__, "media_svc_insert_folder error ");
        } else {
                msg_print(__LINE__, "media_svc_insert_folder success");
        }
 #endif
 
-       //folder test ==================================================
-       char *folder_path = tzplatform_mkpath(TZ_USER_CONTENT,"Sounds"));
+       /*folder test ================================================== */
+       char *folder_path = tzplatform_mkpath(TZ_USER_CONTENT, "Sounds"));
        ret = svc_set_folder_item_validity(db_handle, folder_path, 0, 1, &err_msg);
-       if(ret < 0) {
-               msg_print(__LINE__, "svc_set_folder_item_validity error");
-               if(err_msg != NULL) {
+       if (ret < 0) {
+       msg_print(__LINE__, "svc_set_folder_item_validity error");
+               if (err_msg != NULL) {
                        printf("err_msg[%s]\n", err_msg);
                        free(err_msg);
                        err_msg = NULL;
@@ -184,9 +183,9 @@ int main()
        }
 
        ret = svc_delete_all_invalid_items_in_folder(db_handle, folder_path, &err_msg);
-       if(ret < 0) {
-               msg_print(__LINE__, "svc_delete_all_invalid_items_in_folder error");
-               if(err_msg != NULL) {
+       if (ret < 0) {
+       msg_print(__LINE__, "svc_delete_all_invalid_items_in_folder error");
+               if (err_msg != NULL) {
                        printf("err_msg[%s]\n", err_msg);
                        free(err_msg);
                        err_msg = NULL;
@@ -195,11 +194,11 @@ int main()
                msg_print(__LINE__, "svc_insert_item_immediately success");
        }
 
-       //db close ==================================================
+       /*db close ================================================== */
        ret = svc_disconnect(db_handle, &err_msg);
-       if(ret < 0) {
-               msg_print(__LINE__, "svc_disconnect error");
-               if(err_msg != NULL) {
+       if (ret < 0) {
+       msg_print(__LINE__, "svc_disconnect error");
+               if (err_msg != NULL) {
                        printf("err_msg[%s]\n", err_msg);
                        free(err_msg);
                        err_msg = NULL;