linux/drivers/staging/msm/mdp4_util.c
<<
>>
Prefs
   1
   2/* Copyright (c) 2009, Code Aurora Forum. All rights reserved.
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 and
   6 * only version 2 as published by the Free Software Foundation.
   7 *
   8 * This program is distributed in the hope that it will be useful,
   9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11 * GNU General Public License for more details.
  12 *
  13 * You should have received a copy of the GNU General Public License
  14 * along with this program; if not, write to the Free Software
  15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  16 * 02110-1301, USA.
  17 */
  18#include <linux/module.h>
  19#include <linux/kernel.h>
  20#include <linux/sched.h>
  21#include <linux/time.h>
  22#include <linux/init.h>
  23#include <linux/interrupt.h>
  24#include <linux/spinlock.h>
  25#include <linux/hrtimer.h>
  26#include <linux/clk.h>
  27#include <mach/hardware.h>
  28#include <linux/io.h>
  29#include <linux/debugfs.h>
  30
  31#include <asm/system.h>
  32#include <asm/mach-types.h>
  33#include <linux/semaphore.h>
  34#include <linux/uaccess.h>
  35
  36#include "mdp.h"
  37#include "msm_fb.h"
  38#include "mdp4.h"
  39
  40void mdp4_sw_reset(ulong bits)
  41{
  42        bits &= 0x1f;   /* 5 bits */
  43        outpdw(MDP_BASE + 0x001c, bits);        /* MDP_SW_RESET */
  44
  45        while (inpdw(MDP_BASE + 0x001c) & bits) /* self clear when complete */
  46                ;
  47        MSM_FB_INFO("mdp4_sw_reset: 0x%x\n", (int)bits);
  48}
  49
  50void mdp4_overlay_cfg(int overlayer, int blt_mode, int refresh, int direct_out)
  51{
  52        ulong bits = 0;
  53
  54        if (blt_mode)
  55                bits |= (1 << 3);
  56        refresh &= 0x03;        /* 2 bites */
  57        bits |= (refresh << 1);
  58        direct_out &= 0x01;
  59        bits |= direct_out;
  60
  61        if (overlayer == MDP4_MIXER0)
  62                outpdw(MDP_BASE + 0x10004, bits); /* MDP_OVERLAY0_CFG */
  63        else
  64                outpdw(MDP_BASE + 0x18004, bits); /* MDP_OVERLAY1_CFG */
  65
  66        MSM_FB_INFO("mdp4_overlay_cfg: 0x%x\n", (int)inpdw(MDP_BASE + 0x10004));
  67}
  68
  69void mdp4_display_intf_sel(int output, ulong intf)
  70{
  71        ulong bits, mask;
  72
  73        bits = inpdw(MDP_BASE + 0x0038);        /* MDP_DISP_INTF_SEL */
  74
  75        mask = 0x03;    /* 2 bits */
  76        intf &= 0x03;   /* 2 bits */
  77
  78        switch (output) {
  79        case EXTERNAL_INTF_SEL:
  80                intf <<= 4;
  81                mask <<= 4;
  82                break;
  83        case SECONDARY_INTF_SEL:
  84                intf &= 0x02;   /* only MDDI and EBI2 support */
  85                intf <<= 2;
  86                mask <<= 2;
  87                break;
  88        default:
  89                break;
  90        }
  91
  92
  93        bits &= ~mask;
  94        bits |= intf;
  95
  96        outpdw(MDP_BASE + 0x0038, bits);        /* MDP_DISP_INTF_SEL */
  97
  98  MSM_FB_INFO("mdp4_display_intf_sel: 0x%x\n", (int)inpdw(MDP_BASE + 0x0038));
  99}
 100
 101unsigned long mdp4_display_status(void)
 102{
 103        return inpdw(MDP_BASE + 0x0018) & 0x3ff;        /* MDP_DISPLAY_STATUS */
 104}
 105
 106void mdp4_ebi2_lcd_setup(int lcd, ulong base, int ystride)
 107{
 108        /* always use memory map */
 109        ystride &= 0x01fff;     /* 13 bits */
 110        if (lcd == EBI2_LCD0) {
 111                outpdw(MDP_BASE + 0x0060, base);/* MDP_EBI2_LCD0 */
 112                outpdw(MDP_BASE + 0x0068, ystride);/* MDP_EBI2_LCD0_YSTRIDE */
 113        } else {
 114                outpdw(MDP_BASE + 0x0064, base);/* MDP_EBI2_LCD1 */
 115                outpdw(MDP_BASE + 0x006c, ystride);/* MDP_EBI2_LCD1_YSTRIDE */
 116        }
 117}
 118
 119void mdp4_mddi_setup(int mddi, unsigned long id)
 120{
 121        ulong   bits;
 122
 123        if (mddi == MDDI_EXTERNAL_SET)
 124                bits = 0x02;
 125        else if (mddi == MDDI_SECONDARY_SET)
 126                bits = 0x01;
 127        else
 128                bits = 0;       /* PRIMARY_SET */
 129
 130        id <<= 16;
 131
 132        bits |= id;
 133
 134        outpdw(MDP_BASE + 0x0090, bits); /* MDP_MDDI_PARAM_WR_SEL */
 135}
 136
 137int mdp_ppp_blit(struct fb_info *info, struct mdp_blit_req *req,
 138        struct file **pp_src_file, struct file **pp_dst_file)
 139{
 140
 141        /* not implemented yet */
 142        return -1;
 143}
 144
 145void mdp4_hw_init(void)
 146{
 147        ulong bits;
 148
 149        /* MDP cmd block enable */
 150        mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_ON, FALSE);
 151
 152#ifdef MDP4_ERROR
 153        /*
 154         * Issue software reset on DMA_P will casue DMA_P dma engine stall
 155         * on LCDC mode. However DMA_P does not stall at MDDI mode.
 156         * This need further investigation.
 157         */
 158        mdp4_sw_reset(0x17);
 159#endif
 160
 161        mdp4_clear_lcdc();
 162
 163        mdp4_mixer_blend_init(0);
 164        mdp4_mixer_blend_init(1);
 165        mdp4_vg_qseed_init(0);
 166        mdp4_vg_qseed_init(1);
 167        mdp4_vg_csc_mv_setup(0);
 168        mdp4_vg_csc_mv_setup(1);
 169        mdp4_vg_csc_pre_bv_setup(0);
 170        mdp4_vg_csc_pre_bv_setup(1);
 171        mdp4_vg_csc_post_bv_setup(0);
 172        mdp4_vg_csc_post_bv_setup(1);
 173        mdp4_vg_csc_pre_lv_setup(0);
 174        mdp4_vg_csc_pre_lv_setup(1);
 175        mdp4_vg_csc_post_lv_setup(0);
 176        mdp4_vg_csc_post_lv_setup(1);
 177
 178        mdp4_mixer_gc_lut_setup(0);
 179        mdp4_mixer_gc_lut_setup(1);
 180
 181        mdp4_vg_igc_lut_setup(0);
 182        mdp4_vg_igc_lut_setup(1);
 183
 184         mdp4_rgb_igc_lut_setup(0);
 185         mdp4_rgb_igc_lut_setup(1);
 186
 187        outp32(MDP_EBI2_PORTMAP_MODE, 0x3);
 188
 189        /* system interrupts */
 190
 191        bits =  mdp_intr_mask;
 192        outpdw(MDP_BASE + 0x0050, bits);/* enable specififed interrupts */
 193
 194        /* histogram */
 195        MDP_OUTP(MDP_BASE + 0x95010, 1);        /* auto clear HIST */
 196
 197        /* enable histogram interrupts */
 198        outpdw(MDP_BASE + 0x9501c, INTR_HIST_DONE);
 199
 200        /* For the max read pending cmd config below, if the MDP clock     */
 201        /* is less than the AXI clock, then we must use 3 pending          */
 202        /* pending requests.  Otherwise, we should use 8 pending requests. */
 203        /* In the future we should do this detection automatically.        */
 204
 205        /* max read pending cmd config */
 206        outpdw(MDP_BASE + 0x004c, 0x02222);     /* 3 pending requests */
 207
 208        /* dma_p fetch config */
 209        outpdw(MDP_BASE + 0x91004, 0x27);       /* burst size of 8 */
 210
 211#ifndef CONFIG_FB_MSM_OVERLAY
 212        /* both REFRESH_MODE and DIRECT_OUT are ignored at BLT mode */
 213        mdp4_overlay_cfg(MDP4_MIXER0, OVERLAY_MODE_BLT, 0, 0);
 214        mdp4_overlay_cfg(MDP4_MIXER1, OVERLAY_MODE_BLT, 0, 0);
 215#endif
 216
 217        /* MDP cmd block disable */
 218        mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_OFF, FALSE);
 219}
 220
 221
 222void mdp4_clear_lcdc(void)
 223{
 224        uint32 bits;
 225
 226        bits = inpdw(MDP_BASE + 0xc0000);
 227        if (bits & 0x01) /* enabled already */
 228                return;
 229
 230        outpdw(MDP_BASE + 0xc0004, 0);  /* vsync ctrl out */
 231        outpdw(MDP_BASE + 0xc0008, 0);  /* vsync period */
 232        outpdw(MDP_BASE + 0xc000c, 0);  /* vsync pusle width */
 233        outpdw(MDP_BASE + 0xc0010, 0);  /* lcdc display HCTL */
 234        outpdw(MDP_BASE + 0xc0014, 0);  /* lcdc display v start */
 235        outpdw(MDP_BASE + 0xc0018, 0);  /* lcdc display v end */
 236        outpdw(MDP_BASE + 0xc001c, 0);  /* lcdc active hctl */
 237        outpdw(MDP_BASE + 0xc0020, 0);  /* lcdc active v start */
 238        outpdw(MDP_BASE + 0xc0024, 0);  /* lcdc active v end */
 239        outpdw(MDP_BASE + 0xc0028, 0);  /* lcdc board color */
 240        outpdw(MDP_BASE + 0xc002c, 0);  /* lcdc underflow ctrl */
 241        outpdw(MDP_BASE + 0xc0030, 0);  /* lcdc hsync skew */
 242        outpdw(MDP_BASE + 0xc0034, 0);  /* lcdc test ctl */
 243        outpdw(MDP_BASE + 0xc0038, 0);  /* lcdc ctl polarity */
 244}
 245
 246static struct mdp_dma_data overlay1_data;
 247static int intr_dma_p;
 248static int intr_dma_s;
 249static int intr_dma_e;
 250static int intr_overlay0;
 251static int intr_overlay1;
 252
 253irqreturn_t mdp4_isr(int irq, void *ptr)
 254{
 255        uint32 isr, mask, lcdc;
 256        struct mdp_dma_data *dma;
 257
 258        mdp_is_in_isr = TRUE;
 259
 260        while (1) {
 261                isr = inpdw(MDP_INTR_STATUS);
 262                if (isr == 0)
 263                        break;
 264
 265                mask = inpdw(MDP_INTR_ENABLE);
 266                outpdw(MDP_INTR_CLEAR, isr);
 267
 268                isr &= mask;
 269
 270                if (unlikely(isr == 0))
 271                        break;
 272
 273                if (isr & INTR_DMA_P_DONE) {
 274                        intr_dma_p++;
 275                        lcdc = inpdw(MDP_BASE + 0xc0000);
 276                        dma = &dma2_data;
 277                        if (lcdc & 0x01) {      /* LCDC enable */
 278                                /* disable LCDC interrupt */
 279                                mdp_intr_mask &= ~INTR_DMA_P_DONE;
 280                                outp32(MDP_INTR_ENABLE, mdp_intr_mask);
 281                                dma->waiting = FALSE;
 282                        } else {
 283                                dma->busy = FALSE;
 284                                mdp_pipe_ctrl(MDP_DMA2_BLOCK,
 285                                        MDP_BLOCK_POWER_OFF, TRUE);
 286                        }
 287                        complete(&dma->comp);
 288                }
 289                if (isr & INTR_DMA_S_DONE) {
 290                        intr_dma_s++;
 291                        dma = &dma_s_data;
 292                        dma->busy = FALSE;
 293                        mdp_pipe_ctrl(MDP_DMA_S_BLOCK,
 294                                        MDP_BLOCK_POWER_OFF, TRUE);
 295                        complete(&dma->comp);
 296                }
 297                if (isr & INTR_DMA_E_DONE) {
 298                        intr_dma_e++;
 299                        dma = &dma_e_data;
 300                        mdp_intr_mask &= ~INTR_DMA_E_DONE;
 301                        outp32(MDP_INTR_ENABLE, mdp_intr_mask);
 302                        dma->busy = FALSE;
 303
 304                        if (dma->waiting) {
 305                                dma->waiting = FALSE;
 306                                complete(&dma->comp);
 307                        }
 308                }
 309                if (isr & INTR_OVERLAY0_DONE) {
 310                        intr_overlay0++;
 311                        lcdc = inpdw(MDP_BASE + 0xc0000);
 312                        dma = &dma2_data;
 313                        if (lcdc & 0x01) {      /* LCDC enable */
 314                                /* disable LCDC interrupt */
 315                                mdp_intr_mask &= ~INTR_OVERLAY0_DONE;
 316                                outp32(MDP_INTR_ENABLE, mdp_intr_mask);
 317                                dma->waiting = FALSE;
 318                                mdp4_overlay0_done_lcdc();
 319                        } else {        /* MDDI */
 320                                dma->busy = FALSE;
 321#ifdef MDP4_NONBLOCKING
 322                                mdp_disable_irq_nolock(MDP_OVERLAY0_TERM);
 323#endif
 324                                mdp_pipe_ctrl(MDP_OVERLAY0_BLOCK,
 325                                        MDP_BLOCK_POWER_OFF, TRUE);
 326                                mdp4_overlay0_done_mddi();
 327                        }
 328                }
 329                if (isr & INTR_OVERLAY1_DONE) {
 330                        intr_overlay1++;
 331                        dma = &overlay1_data;
 332                        dma->busy = FALSE;
 333                        mdp_pipe_ctrl(MDP_OVERLAY1_BLOCK,
 334                                        MDP_BLOCK_POWER_OFF, TRUE);
 335                        complete(&dma->comp);
 336                }
 337                if (isr & INTR_DMA_P_HISTOGRAM) {
 338                        isr = inpdw(MDP_DMA_P_HIST_INTR_STATUS);
 339                        mask = inpdw(MDP_DMA_P_HIST_INTR_ENABLE);
 340                        outpdw(MDP_DMA_P_HIST_INTR_CLEAR, isr);
 341                        isr &= mask;
 342                        if (isr & INTR_HIST_DONE) {
 343                                if (mdp_hist.r)
 344                                        memcpy(mdp_hist.r, MDP_BASE + 0x95100,
 345                                                        mdp_hist.bin_cnt*4);
 346                                if (mdp_hist.g)
 347                                        memcpy(mdp_hist.g, MDP_BASE + 0x95200,
 348                                                        mdp_hist.bin_cnt*4);
 349                                if (mdp_hist.b)
 350                                        memcpy(mdp_hist.b, MDP_BASE + 0x95300,
 351                                                mdp_hist.bin_cnt*4);
 352                                complete(&mdp_hist_comp);
 353                        }
 354                }
 355        }
 356
 357        mdp_is_in_isr = FALSE;
 358
 359        return IRQ_HANDLED;
 360}
 361
 362
 363/*
 364 * QSEED tables
 365 */
 366
 367static uint32 vg_qseed_table0[] = {
 368        0x5556aaff, 0x00000000, 0x00000000, 0x00000000
 369};
 370
 371static uint32 vg_qseed_table1[] = {
 372        0x76543210, 0xfedcba98
 373};
 374
 375static uint32 vg_qseed_table2[] = {
 376        0x02000000, 0x00000000, 0x02060ff2, 0x00000008,
 377        0x02090fe4, 0x00000013, 0x020a0fd9, 0x0ffc0021,
 378        0x02080fce, 0x0ffa0030, 0x02030fc5, 0x0ff60042,
 379        0x01fd0fbe, 0x0ff10054, 0x01f50fb6, 0x0fed0068,
 380        0x01e90fb1, 0x0fe60080, 0x01dc0fae, 0x0fe10095,
 381        0x01ca0fae, 0x0fda00ae, 0x01b70fad, 0x0fd600c6,
 382        0x01a40fad, 0x0fcf00e0, 0x018f0faf, 0x0fc800fa,
 383        0x01780fb1, 0x0fc30114, 0x015f0fb5, 0x0fbf012d,
 384        0x01490fb7, 0x0fb70149, 0x012d0fbf, 0x0fb5015f,
 385        0x01140fc3, 0x0fb10178, 0x00fa0fc8, 0x0faf018f,
 386        0x00e00fcf, 0x0fad01a4, 0x00c60fd6, 0x0fad01b7,
 387        0x00ae0fda, 0x0fae01ca, 0x00950fe1, 0x0fae01dc,
 388        0x00800fe6, 0x0fb101e9, 0x00680fed, 0x0fb601f5,
 389        0x00540ff1, 0x0fbe01fd, 0x00420ff6, 0x0fc50203,
 390        0x00300ffa, 0x0fce0208, 0x00210ffc, 0x0fd9020a,
 391        0x00130000, 0x0fe40209, 0x00080000, 0x0ff20206,
 392        0x02000000, 0x00000000, 0x02040ff2, 0x0000000a,
 393        0x02040fe4, 0x00000018, 0x02010fda, 0x0ffc0029,
 394        0x01fc0fcf, 0x0ffa003b, 0x01f30fc7, 0x0ff60050,
 395        0x01e90fc0, 0x0ff20065, 0x01dc0fba, 0x0fee007c,
 396        0x01cc0fb6, 0x0fe80096, 0x01ba0fb4, 0x0fe400ae,
 397        0x01a70fb4, 0x0fdd00c8, 0x018f0fb5, 0x0fda00e2,
 398        0x017a0fb5, 0x0fd400fd, 0x01630fb8, 0x0fce0117,
 399        0x014c0fba, 0x0fca0130, 0x01320fbf, 0x0fc70148,
 400        0x011b0fc1, 0x0fc10163, 0x01010fc8, 0x0fc00177,
 401        0x00e90fcd, 0x0fbd018d, 0x00d10fd1, 0x0fbc01a2,
 402        0x00ba0fd7, 0x0fbb01b4, 0x00a30fdd, 0x0fbc01c4,
 403        0x008e0fe1, 0x0fbd01d4, 0x00790fe7, 0x0fbe01e2,
 404        0x00670feb, 0x0fc001ee, 0x00540ff1, 0x0fc501f6,
 405        0x00430ff4, 0x0fcb01fe, 0x00340ff8, 0x0fd10203,
 406        0x00260ffb, 0x0fd80207, 0x001a0ffd, 0x0fe10208,
 407        0x000f0000, 0x0fea0207, 0x00060000, 0x0ff50205,
 408        0x02000000, 0x00000000, 0x02020ff2, 0x0000000c,
 409        0x02000fe4, 0x0000001c, 0x01fa0fda, 0x0ffc0030,
 410        0x01f10fd0, 0x0ffa0045, 0x01e50fc8, 0x0ff6005d,
 411        0x01d60fc3, 0x0ff30074, 0x01c60fbd, 0x0fef008e,
 412        0x01b30fba, 0x0fe900aa, 0x019e0fb9, 0x0fe500c4,
 413        0x01870fba, 0x0fe000df, 0x016f0fbb, 0x0fdd00f9,
 414        0x01580fbc, 0x0fd80114, 0x01400fbf, 0x0fd3012e,
 415        0x01280fc2, 0x0fd00146, 0x010f0fc6, 0x0fce015d,
 416        0x00f90fc9, 0x0fc90175, 0x00e00fcf, 0x0fc90188,
 417        0x00ca0fd4, 0x0fc6019c, 0x00b40fd8, 0x0fc601ae,
 418        0x009f0fdd, 0x0fc501bf, 0x008b0fe3, 0x0fc601cc,
 419        0x00780fe6, 0x0fc701db, 0x00660feb, 0x0fc801e7,
 420        0x00560fef, 0x0fcb01f0, 0x00460ff3, 0x0fcf01f8,
 421        0x00380ff6, 0x0fd401fe, 0x002c0ff9, 0x0fd90202,
 422        0x00200ffc, 0x0fdf0205, 0x00160ffe, 0x0fe60206,
 423        0x000c0000, 0x0fed0207, 0x00050000, 0x0ff70204,
 424        0x02000000, 0x00000000, 0x01fe0ff3, 0x0000000f,
 425        0x01f60fe5, 0x00000025, 0x01ea0fdb, 0x0ffd003e,
 426        0x01db0fd2, 0x0ffb0058, 0x01c80fcc, 0x0ff70075,
 427        0x01b50fc7, 0x0ff40090, 0x01a00fc3, 0x0ff000ad,
 428        0x01880fc1, 0x0feb00cc, 0x01700fc1, 0x0fe800e7,
 429        0x01550fc3, 0x0fe40104, 0x013b0fc5, 0x0fe2011e,
 430        0x01240fc6, 0x0fde0138, 0x010c0fca, 0x0fda0150,
 431        0x00f40fcd, 0x0fd90166, 0x00dd0fd1, 0x0fd7017b,
 432        0x00c80fd4, 0x0fd40190, 0x00b20fd9, 0x0fd401a1,
 433        0x009f0fdd, 0x0fd301b1, 0x008c0fe1, 0x0fd301c0,
 434        0x007b0fe5, 0x0fd301cd, 0x006a0fea, 0x0fd401d8,
 435        0x005c0fec, 0x0fd501e3, 0x004d0ff0, 0x0fd601ed,
 436        0x00410ff3, 0x0fd801f4, 0x00340ff7, 0x0fdb01fa,
 437        0x002a0ff9, 0x0fdf01fe, 0x00200ffb, 0x0fe30202,
 438        0x00180ffd, 0x0fe70204, 0x00100ffe, 0x0fed0205,
 439        0x00090000, 0x0ff20205, 0x00040000, 0x0ff90203,
 440        0x02000000, 0x00000000, 0x02050ff5, 0x00000006,
 441        0x02070fea, 0x0000000f, 0x02080fe1, 0x0ffd001a,
 442        0x02070fd8, 0x0ffb0026, 0x02030fd1, 0x0ff80034,
 443        0x01fe0fcb, 0x0ff40043, 0x01f60fc5, 0x0ff10054,
 444        0x01ee0fc0, 0x0feb0067, 0x01e20fbe, 0x0fe70079,
 445        0x01d40fbd, 0x0fe1008e, 0x01c40fbc, 0x0fdd00a3,
 446        0x01b40fbb, 0x0fd700ba, 0x01a20fbc, 0x0fd100d1,
 447        0x018d0fbd, 0x0fcd00e9, 0x01770fc0, 0x0fc80101,
 448        0x01630fc1, 0x0fc1011b, 0x01480fc7, 0x0fbf0132,
 449        0x01300fca, 0x0fba014c, 0x01170fce, 0x0fb80163,
 450        0x00fd0fd4, 0x0fb5017a, 0x00e20fda, 0x0fb5018f,
 451        0x00c80fdd, 0x0fb401a7, 0x00ae0fe4, 0x0fb401ba,
 452        0x00960fe8, 0x0fb601cc, 0x007c0fee, 0x0fba01dc,
 453        0x00650ff2, 0x0fc001e9, 0x00500ff6, 0x0fc701f3,
 454        0x003b0ffa, 0x0fcf01fc, 0x00290ffc, 0x0fda0201,
 455        0x00180000, 0x0fe40204, 0x000a0000, 0x0ff20204,
 456        0x02000000, 0x00000000, 0x02030ff5, 0x00000008,
 457        0x02030fea, 0x00000013, 0x02020fe1, 0x0ffd0020,
 458        0x01fc0fd9, 0x0ffc002f, 0x01f60fd2, 0x0ff80040,
 459        0x01ed0fcd, 0x0ff50051, 0x01e30fc7, 0x0ff10065,
 460        0x01d70fc3, 0x0fec007a, 0x01c60fc2, 0x0fe9008f,
 461        0x01b60fc1, 0x0fe300a6, 0x01a20fc1, 0x0fe000bd,
 462        0x018f0fc1, 0x0fdb00d5, 0x017b0fc2, 0x0fd500ee,
 463        0x01640fc4, 0x0fd20106, 0x014d0fc8, 0x0fce011d,
 464        0x01370fc9, 0x0fc90137, 0x011d0fce, 0x0fc8014d,
 465        0x01060fd2, 0x0fc40164, 0x00ee0fd5, 0x0fc2017b,
 466        0x00d50fdb, 0x0fc1018f, 0x00bd0fe0, 0x0fc101a2,
 467        0x00a60fe3, 0x0fc101b6, 0x008f0fe9, 0x0fc201c6,
 468        0x007a0fec, 0x0fc301d7, 0x00650ff1, 0x0fc701e3,
 469        0x00510ff5, 0x0fcd01ed, 0x00400ff8, 0x0fd201f6,
 470        0x002f0ffc, 0x0fd901fc, 0x00200ffd, 0x0fe10202,
 471        0x00130000, 0x0fea0203, 0x00080000, 0x0ff50203,
 472        0x02000000, 0x00000000, 0x02020ff5, 0x00000009,
 473        0x01ff0fea, 0x00000017, 0x01fb0fe2, 0x0ffd0026,
 474        0x01f30fda, 0x0ffc0037, 0x01ea0fd3, 0x0ff8004b,
 475        0x01df0fce, 0x0ff5005e, 0x01d10fc9, 0x0ff20074,
 476        0x01c10fc6, 0x0fed008c, 0x01ae0fc5, 0x0fea00a3,
 477        0x019b0fc5, 0x0fe500bb, 0x01850fc6, 0x0fe200d3,
 478        0x01700fc6, 0x0fde00ec, 0x015a0fc8, 0x0fd90105,
 479        0x01430fca, 0x0fd6011d, 0x012b0fcd, 0x0fd30135,
 480        0x01150fcf, 0x0fcf014d, 0x00fc0fd4, 0x0fce0162,
 481        0x00e50fd8, 0x0fcc0177, 0x00cf0fdb, 0x0fca018c,
 482        0x00b80fe0, 0x0fc9019f, 0x00a20fe5, 0x0fca01af,
 483        0x008e0fe8, 0x0fcb01bf, 0x00790fec, 0x0fcb01d0,
 484        0x00670fef, 0x0fcd01dd, 0x00550ff4, 0x0fd001e7,
 485        0x00440ff7, 0x0fd501f0, 0x00350ffa, 0x0fda01f7,
 486        0x00270ffc, 0x0fdf01fe, 0x001b0ffe, 0x0fe70200,
 487        0x00100000, 0x0fee0202, 0x00060000, 0x0ff70203,
 488        0x02000000, 0x00000000, 0x01ff0ff5, 0x0000000c,
 489        0x01f80fea, 0x0000001e, 0x01ef0fe2, 0x0ffd0032,
 490        0x01e20fdb, 0x0ffc0047, 0x01d30fd5, 0x0ff9005f,
 491        0x01c20fd1, 0x0ff60077, 0x01b00fcd, 0x0ff30090,
 492        0x019b0fcb, 0x0fef00ab, 0x01850fcb, 0x0fec00c4,
 493        0x016e0fcc, 0x0fe800de, 0x01550fcd, 0x0fe600f8,
 494        0x013f0fce, 0x0fe20111, 0x01280fd0, 0x0fdf0129,
 495        0x01110fd2, 0x0fdd0140, 0x00f90fd6, 0x0fdb0156,
 496        0x00e40fd8, 0x0fd8016c, 0x00cd0fdd, 0x0fd8017e,
 497        0x00b80fe0, 0x0fd60192, 0x00a40fe3, 0x0fd601a3,
 498        0x00910fe7, 0x0fd501b3, 0x007f0feb, 0x0fd601c0,
 499        0x006e0fed, 0x0fd701ce, 0x005d0ff1, 0x0fd701db,
 500        0x004f0ff3, 0x0fd901e5, 0x00400ff7, 0x0fdc01ed,
 501        0x00330ff9, 0x0fe001f4, 0x00280ffb, 0x0fe301fa,
 502        0x001d0ffd, 0x0fe801fe, 0x00140ffe, 0x0fed0201,
 503        0x000c0000, 0x0ff20202, 0x00050000, 0x0ff90202,
 504        0x02000000, 0x00000000, 0x02040ff7, 0x00000005,
 505        0x02070fed, 0x0000000c, 0x02060fe6, 0x0ffe0016,
 506        0x02050fdf, 0x0ffc0020, 0x02020fd9, 0x0ff9002c,
 507        0x01fe0fd4, 0x0ff60038, 0x01f80fcf, 0x0ff30046,
 508        0x01f00fcb, 0x0fef0056, 0x01e70fc8, 0x0feb0066,
 509        0x01db0fc7, 0x0fe60078, 0x01cc0fc6, 0x0fe3008b,
 510        0x01bf0fc5, 0x0fdd009f, 0x01ae0fc6, 0x0fd800b4,
 511        0x019c0fc6, 0x0fd400ca, 0x01880fc9, 0x0fcf00e0,
 512        0x01750fc9, 0x0fc900f9, 0x015d0fce, 0x0fc6010f,
 513        0x01460fd0, 0x0fc20128, 0x012e0fd3, 0x0fbf0140,
 514        0x01140fd8, 0x0fbc0158, 0x00f90fdd, 0x0fbb016f,
 515        0x00df0fe0, 0x0fba0187, 0x00c40fe5, 0x0fb9019e,
 516        0x00aa0fe9, 0x0fba01b3, 0x008e0fef, 0x0fbd01c6,
 517        0x00740ff3, 0x0fc301d6, 0x005d0ff6, 0x0fc801e5,
 518        0x00450ffa, 0x0fd001f1, 0x00300ffc, 0x0fda01fa,
 519        0x001c0000, 0x0fe40200, 0x000c0000, 0x0ff20202,
 520        0x02000000, 0x00000000, 0x02030ff7, 0x00000006,
 521        0x02020fee, 0x00000010, 0x02000fe7, 0x0ffe001b,
 522        0x01fe0fdf, 0x0ffc0027, 0x01f70fda, 0x0ffa0035,
 523        0x01f00fd5, 0x0ff70044, 0x01e70fd0, 0x0ff40055,
 524        0x01dd0fcd, 0x0fef0067, 0x01d00fcb, 0x0fec0079,
 525        0x01bf0fcb, 0x0fe8008e, 0x01af0fca, 0x0fe500a2,
 526        0x019f0fc9, 0x0fe000b8, 0x018c0fca, 0x0fdb00cf,
 527        0x01770fcc, 0x0fd800e5, 0x01620fce, 0x0fd400fc,
 528        0x014d0fcf, 0x0fcf0115, 0x01350fd3, 0x0fcd012b,
 529        0x011d0fd6, 0x0fca0143, 0x01050fd9, 0x0fc8015a,
 530        0x00ec0fde, 0x0fc60170, 0x00d30fe2, 0x0fc60185,
 531        0x00bb0fe5, 0x0fc5019b, 0x00a30fea, 0x0fc501ae,
 532        0x008c0fed, 0x0fc601c1, 0x00740ff2, 0x0fc901d1,
 533        0x005e0ff5, 0x0fce01df, 0x004b0ff8, 0x0fd301ea,
 534        0x00370ffc, 0x0fda01f3, 0x00260ffd, 0x0fe201fb,
 535        0x00170000, 0x0fea01ff, 0x00090000, 0x0ff50202,
 536        0x02000000, 0x00000000, 0x02010ff7, 0x00000008,
 537        0x01ff0fee, 0x00000013, 0x01fb0fe7, 0x0ffe0020,
 538        0x01f60fe0, 0x0ffc002e, 0x01ed0fda, 0x0ffa003f,
 539        0x01e40fd6, 0x0ff7004f, 0x01d80fd2, 0x0ff40062,
 540        0x01ca0fcf, 0x0ff00077, 0x01bb0fcd, 0x0fed008b,
 541        0x01a90fcd, 0x0fe900a1, 0x01960fcd, 0x0fe600b7,
 542        0x01830fcd, 0x0fe200ce, 0x016d0fcf, 0x0fde00e6,
 543        0x01580fd0, 0x0fdb00fd, 0x01410fd3, 0x0fd80114,
 544        0x012c0fd4, 0x0fd4012c, 0x01140fd8, 0x0fd30141,
 545        0x00fd0fdb, 0x0fd00158, 0x00e60fde, 0x0fcf016d,
 546        0x00ce0fe2, 0x0fcd0183, 0x00b70fe6, 0x0fcd0196,
 547        0x00a10fe9, 0x0fcd01a9, 0x008b0fed, 0x0fcd01bb,
 548        0x00770ff0, 0x0fcf01ca, 0x00620ff4, 0x0fd201d8,
 549        0x004f0ff7, 0x0fd601e4, 0x003f0ffa, 0x0fda01ed,
 550        0x002e0ffc, 0x0fe001f6, 0x00200ffe, 0x0fe701fb,
 551        0x00130000, 0x0fee01ff, 0x00080000, 0x0ff70201,
 552        0x02000000, 0x00000000, 0x01ff0ff7, 0x0000000a,
 553        0x01f90fee, 0x00000019, 0x01f10fe7, 0x0ffe002a,
 554        0x01e60fe1, 0x0ffd003c, 0x01d90fdc, 0x0ffa0051,
 555        0x01cc0fd8, 0x0ff70065, 0x01bb0fd5, 0x0ff5007b,
 556        0x01a80fd3, 0x0ff10094, 0x01950fd2, 0x0fef00aa,
 557        0x01800fd2, 0x0feb00c3, 0x016a0fd3, 0x0fe900da,
 558        0x01540fd3, 0x0fe600f3, 0x013f0fd5, 0x0fe2010a,
 559        0x01280fd7, 0x0fe00121, 0x01100fda, 0x0fde0138,
 560        0x00fb0fdb, 0x0fdb014f, 0x00e40fdf, 0x0fdb0162,
 561        0x00ce0fe2, 0x0fd90177, 0x00b90fe4, 0x0fd8018b,
 562        0x00a50fe8, 0x0fd8019b, 0x00910fec, 0x0fd801ab,
 563        0x007e0fee, 0x0fd801bc, 0x006c0ff2, 0x0fd901c9,
 564        0x005c0ff4, 0x0fda01d6, 0x004b0ff7, 0x0fdd01e1,
 565        0x003c0ff9, 0x0fe001eb, 0x002f0ffb, 0x0fe401f2,
 566        0x00230ffd, 0x0fe801f8, 0x00180ffe, 0x0fed01fd,
 567        0x000e0000, 0x0ff20200, 0x00060000, 0x0ff90201,
 568        0x02000000, 0x00000000, 0x02030ff9, 0x00000004,
 569        0x02050ff2, 0x00000009, 0x02050fed, 0x0ffe0010,
 570        0x02040fe7, 0x0ffd0018, 0x02020fe3, 0x0ffb0020,
 571        0x01fe0fdf, 0x0ff9002a, 0x01fa0fdb, 0x0ff70034,
 572        0x01f40fd8, 0x0ff30041, 0x01ed0fd6, 0x0ff0004d,
 573        0x01e30fd5, 0x0fec005c, 0x01d80fd4, 0x0fea006a,
 574        0x01cd0fd3, 0x0fe5007b, 0x01c00fd3, 0x0fe1008c,
 575        0x01b10fd3, 0x0fdd009f, 0x01a10fd4, 0x0fd900b2,
 576        0x01900fd4, 0x0fd400c8, 0x017b0fd7, 0x0fd100dd,
 577        0x01660fd9, 0x0fcd00f4, 0x01500fda, 0x0fca010c,
 578        0x01380fde, 0x0fc60124, 0x011e0fe2, 0x0fc5013b,
 579        0x01040fe4, 0x0fc30155, 0x00e70fe8, 0x0fc10170,
 580        0x00cc0feb, 0x0fc10188, 0x00ad0ff0, 0x0fc301a0,
 581        0x00900ff4, 0x0fc701b5, 0x00750ff7, 0x0fcc01c8,
 582        0x00580ffb, 0x0fd201db, 0x003e0ffd, 0x0fdb01ea,
 583        0x00250000, 0x0fe501f6, 0x000f0000, 0x0ff301fe,
 584        0x02000000, 0x00000000, 0x02020ff9, 0x00000005,
 585        0x02020ff2, 0x0000000c, 0x02010fed, 0x0ffe0014,
 586        0x01fe0fe8, 0x0ffd001d, 0x01fa0fe3, 0x0ffb0028,
 587        0x01f40fe0, 0x0ff90033, 0x01ed0fdc, 0x0ff70040,
 588        0x01e50fd9, 0x0ff3004f, 0x01db0fd7, 0x0ff1005d,
 589        0x01ce0fd7, 0x0fed006e, 0x01c00fd6, 0x0feb007f,
 590        0x01b30fd5, 0x0fe70091, 0x01a30fd6, 0x0fe300a4,
 591        0x01920fd6, 0x0fe000b8, 0x017e0fd8, 0x0fdd00cd,
 592        0x016c0fd8, 0x0fd800e4, 0x01560fdb, 0x0fd600f9,
 593        0x01400fdd, 0x0fd20111, 0x01290fdf, 0x0fd00128,
 594        0x01110fe2, 0x0fce013f, 0x00f80fe6, 0x0fcd0155,
 595        0x00de0fe8, 0x0fcc016e, 0x00c40fec, 0x0fcb0185,
 596        0x00ab0fef, 0x0fcb019b, 0x00900ff3, 0x0fcd01b0,
 597        0x00770ff6, 0x0fd101c2, 0x005f0ff9, 0x0fd501d3,
 598        0x00470ffc, 0x0fdb01e2, 0x00320ffd, 0x0fe201ef,
 599        0x001e0000, 0x0fea01f8, 0x000c0000, 0x0ff501ff,
 600        0x02000000, 0x00000000, 0x02010ff9, 0x00000006,
 601        0x02000ff2, 0x0000000e, 0x01fd0fed, 0x0ffe0018,
 602        0x01f80fe8, 0x0ffd0023, 0x01f20fe4, 0x0ffb002f,
 603        0x01eb0fe0, 0x0ff9003c, 0x01e10fdd, 0x0ff7004b,
 604        0x01d60fda, 0x0ff4005c, 0x01c90fd9, 0x0ff2006c,
 605        0x01bc0fd8, 0x0fee007e, 0x01ab0fd8, 0x0fec0091,
 606        0x019b0fd8, 0x0fe800a5, 0x018b0fd8, 0x0fe400b9,
 607        0x01770fd9, 0x0fe200ce, 0x01620fdb, 0x0fdf00e4,
 608        0x014f0fdb, 0x0fdb00fb, 0x01380fde, 0x0fda0110,
 609        0x01210fe0, 0x0fd70128, 0x010a0fe2, 0x0fd5013f,
 610        0x00f30fe6, 0x0fd30154, 0x00da0fe9, 0x0fd3016a,
 611        0x00c30feb, 0x0fd20180, 0x00aa0fef, 0x0fd20195,
 612        0x00940ff1, 0x0fd301a8, 0x007b0ff5, 0x0fd501bb,
 613        0x00650ff7, 0x0fd801cc, 0x00510ffa, 0x0fdc01d9,
 614        0x003c0ffd, 0x0fe101e6, 0x002a0ffe, 0x0fe701f1,
 615        0x00190000, 0x0fee01f9, 0x000a0000, 0x0ff701ff,
 616        0x02000000, 0x00000000, 0x01ff0ff9, 0x00000008,
 617        0x01fb0ff2, 0x00000013, 0x01f50fed, 0x0ffe0020,
 618        0x01ed0fe8, 0x0ffd002e, 0x01e30fe4, 0x0ffb003e,
 619        0x01d80fe1, 0x0ff9004e, 0x01cb0fde, 0x0ff70060,
 620        0x01bc0fdc, 0x0ff40074, 0x01ac0fdb, 0x0ff20087,
 621        0x019a0fdb, 0x0fef009c, 0x01870fdb, 0x0fed00b1,
 622        0x01740fdb, 0x0fea00c7, 0x01600fdc, 0x0fe700dd,
 623        0x014b0fdd, 0x0fe500f3, 0x01350fdf, 0x0fe30109,
 624        0x01200fe0, 0x0fe00120, 0x01090fe3, 0x0fdf0135,
 625        0x00f30fe5, 0x0fdd014b, 0x00dd0fe7, 0x0fdc0160,
 626        0x00c70fea, 0x0fdb0174, 0x00b10fed, 0x0fdb0187,
 627        0x009c0fef, 0x0fdb019a, 0x00870ff2, 0x0fdb01ac,
 628        0x00740ff4, 0x0fdc01bc, 0x00600ff7, 0x0fde01cb,
 629        0x004e0ff9, 0x0fe101d8, 0x003e0ffb, 0x0fe401e3,
 630        0x002e0ffd, 0x0fe801ed, 0x00200ffe, 0x0fed01f5,
 631        0x00130000, 0x0ff201fb, 0x00080000, 0x0ff901ff,
 632        0x02000000, 0x00000000, 0x02060ff2, 0x00000008,
 633        0x02090fe4, 0x00000013, 0x020a0fd9, 0x0ffc0021,
 634        0x02080fce, 0x0ffa0030, 0x02030fc5, 0x0ff60042,
 635        0x01fd0fbe, 0x0ff10054, 0x01f50fb6, 0x0fed0068,
 636        0x01e90fb1, 0x0fe60080, 0x01dc0fae, 0x0fe10095,
 637        0x01ca0fae, 0x0fda00ae, 0x01b70fad, 0x0fd600c6,
 638        0x01a40fad, 0x0fcf00e0, 0x018f0faf, 0x0fc800fa,
 639        0x01780fb1, 0x0fc30114, 0x015f0fb5, 0x0fbf012d,
 640        0x01490fb7, 0x0fb70149, 0x012d0fbf, 0x0fb5015f,
 641        0x01140fc3, 0x0fb10178, 0x00fa0fc8, 0x0faf018f,
 642        0x00e00fcf, 0x0fad01a4, 0x00c60fd6, 0x0fad01b7,
 643        0x00ae0fda, 0x0fae01ca, 0x00950fe1, 0x0fae01dc,
 644        0x00800fe6, 0x0fb101e9, 0x00680fed, 0x0fb601f5,
 645        0x00540ff1, 0x0fbe01fd, 0x00420ff6, 0x0fc50203,
 646        0x00300ffa, 0x0fce0208, 0x00210ffc, 0x0fd9020a,
 647        0x00130000, 0x0fe40209, 0x00080000, 0x0ff20206,
 648        0x02000000, 0x00000000, 0x02040ff2, 0x0000000a,
 649        0x02040fe4, 0x00000018, 0x02010fda, 0x0ffc0029,
 650        0x01fc0fcf, 0x0ffa003b, 0x01f30fc7, 0x0ff60050,
 651        0x01e90fc0, 0x0ff20065, 0x01dc0fba, 0x0fee007c,
 652        0x01cc0fb6, 0x0fe80096, 0x01ba0fb4, 0x0fe400ae,
 653        0x01a70fb4, 0x0fdd00c8, 0x018f0fb5, 0x0fda00e2,
 654        0x017a0fb5, 0x0fd400fd, 0x01630fb8, 0x0fce0117,
 655        0x014c0fba, 0x0fca0130, 0x01320fbf, 0x0fc70148,
 656        0x011b0fc1, 0x0fc10163, 0x01010fc8, 0x0fc00177,
 657        0x00e90fcd, 0x0fbd018d, 0x00d10fd1, 0x0fbc01a2,
 658        0x00ba0fd7, 0x0fbb01b4, 0x00a30fdd, 0x0fbc01c4,
 659        0x008e0fe1, 0x0fbd01d4, 0x00790fe7, 0x0fbe01e2,
 660        0x00670feb, 0x0fc001ee, 0x00540ff1, 0x0fc501f6,
 661        0x00430ff4, 0x0fcb01fe, 0x00340ff8, 0x0fd10203,
 662        0x00260ffb, 0x0fd80207, 0x001a0ffd, 0x0fe10208,
 663        0x000f0000, 0x0fea0207, 0x00060000, 0x0ff50205,
 664        0x02000000, 0x00000000, 0x02020ff2, 0x0000000c,
 665        0x02000fe4, 0x0000001c, 0x01fa0fda, 0x0ffc0030,
 666        0x01f10fd0, 0x0ffa0045, 0x01e50fc8, 0x0ff6005d,
 667        0x01d60fc3, 0x0ff30074, 0x01c60fbd, 0x0fef008e,
 668        0x01b30fba, 0x0fe900aa, 0x019e0fb9, 0x0fe500c4,
 669        0x01870fba, 0x0fe000df, 0x016f0fbb, 0x0fdd00f9,
 670        0x01580fbc, 0x0fd80114, 0x01400fbf, 0x0fd3012e,
 671        0x01280fc2, 0x0fd00146, 0x010f0fc6, 0x0fce015d,
 672        0x00f90fc9, 0x0fc90175, 0x00e00fcf, 0x0fc90188,
 673        0x00ca0fd4, 0x0fc6019c, 0x00b40fd8, 0x0fc601ae,
 674        0x009f0fdd, 0x0fc501bf, 0x008b0fe3, 0x0fc601cc,
 675        0x00780fe6, 0x0fc701db, 0x00660feb, 0x0fc801e7,
 676        0x00560fef, 0x0fcb01f0, 0x00460ff3, 0x0fcf01f8,
 677        0x00380ff6, 0x0fd401fe, 0x002c0ff9, 0x0fd90202,
 678        0x00200ffc, 0x0fdf0205, 0x00160ffe, 0x0fe60206,
 679        0x000c0000, 0x0fed0207, 0x00050000, 0x0ff70204,
 680        0x02000000, 0x00000000, 0x01fe0ff3, 0x0000000f,
 681        0x01f60fe5, 0x00000025, 0x01ea0fdb, 0x0ffd003e,
 682        0x01db0fd2, 0x0ffb0058, 0x01c80fcc, 0x0ff70075,
 683        0x01b50fc7, 0x0ff40090, 0x01a00fc3, 0x0ff000ad,
 684        0x01880fc1, 0x0feb00cc, 0x01700fc1, 0x0fe800e7,
 685        0x01550fc3, 0x0fe40104, 0x013b0fc5, 0x0fe2011e,
 686        0x01240fc6, 0x0fde0138, 0x010c0fca, 0x0fda0150,
 687        0x00f40fcd, 0x0fd90166, 0x00dd0fd1, 0x0fd7017b,
 688        0x00c80fd4, 0x0fd40190, 0x00b20fd9, 0x0fd401a1,
 689        0x009f0fdd, 0x0fd301b1, 0x008c0fe1, 0x0fd301c0,
 690        0x007b0fe5, 0x0fd301cd, 0x006a0fea, 0x0fd401d8,
 691        0x005c0fec, 0x0fd501e3, 0x004d0ff0, 0x0fd601ed,
 692        0x00410ff3, 0x0fd801f4, 0x00340ff7, 0x0fdb01fa,
 693        0x002a0ff9, 0x0fdf01fe, 0x00200ffb, 0x0fe30202,
 694        0x00180ffd, 0x0fe70204, 0x00100ffe, 0x0fed0205,
 695        0x00090000, 0x0ff20205, 0x00040000, 0x0ff90203,
 696        0x02000000, 0x00000000, 0x02050ff5, 0x00000006,
 697        0x02070fea, 0x0000000f, 0x02080fe1, 0x0ffd001a,
 698        0x02070fd8, 0x0ffb0026, 0x02030fd1, 0x0ff80034,
 699        0x01fe0fcb, 0x0ff40043, 0x01f60fc5, 0x0ff10054,
 700        0x01ee0fc0, 0x0feb0067, 0x01e20fbe, 0x0fe70079,
 701        0x01d40fbd, 0x0fe1008e, 0x01c40fbc, 0x0fdd00a3,
 702        0x01b40fbb, 0x0fd700ba, 0x01a20fbc, 0x0fd100d1,
 703        0x018d0fbd, 0x0fcd00e9, 0x01770fc0, 0x0fc80101,
 704        0x01630fc1, 0x0fc1011b, 0x01480fc7, 0x0fbf0132,
 705        0x01300fca, 0x0fba014c, 0x01170fce, 0x0fb80163,
 706        0x00fd0fd4, 0x0fb5017a, 0x00e20fda, 0x0fb5018f,
 707        0x00c80fdd, 0x0fb401a7, 0x00ae0fe4, 0x0fb401ba,
 708        0x00960fe8, 0x0fb601cc, 0x007c0fee, 0x0fba01dc,
 709        0x00650ff2, 0x0fc001e9, 0x00500ff6, 0x0fc701f3,
 710        0x003b0ffa, 0x0fcf01fc, 0x00290ffc, 0x0fda0201,
 711        0x00180000, 0x0fe40204, 0x000a0000, 0x0ff20204,
 712        0x02000000, 0x00000000, 0x02030ff5, 0x00000008,
 713        0x02030fea, 0x00000013, 0x02020fe1, 0x0ffd0020,
 714        0x01fc0fd9, 0x0ffc002f, 0x01f60fd2, 0x0ff80040,
 715        0x01ed0fcd, 0x0ff50051, 0x01e30fc7, 0x0ff10065,
 716        0x01d70fc3, 0x0fec007a, 0x01c60fc2, 0x0fe9008f,
 717        0x01b60fc1, 0x0fe300a6, 0x01a20fc1, 0x0fe000bd,
 718        0x018f0fc1, 0x0fdb00d5, 0x017b0fc2, 0x0fd500ee,
 719        0x01640fc4, 0x0fd20106, 0x014d0fc8, 0x0fce011d,
 720        0x01370fc9, 0x0fc90137, 0x011d0fce, 0x0fc8014d,
 721        0x01060fd2, 0x0fc40164, 0x00ee0fd5, 0x0fc2017b,
 722        0x00d50fdb, 0x0fc1018f, 0x00bd0fe0, 0x0fc101a2,
 723        0x00a60fe3, 0x0fc101b6, 0x008f0fe9, 0x0fc201c6,
 724        0x007a0fec, 0x0fc301d7, 0x00650ff1, 0x0fc701e3,
 725        0x00510ff5, 0x0fcd01ed, 0x00400ff8, 0x0fd201f6,
 726        0x002f0ffc, 0x0fd901fc, 0x00200ffd, 0x0fe10202,
 727        0x00130000, 0x0fea0203, 0x00080000, 0x0ff50203,
 728        0x02000000, 0x00000000, 0x02020ff5, 0x00000009,
 729        0x01ff0fea, 0x00000017, 0x01fb0fe2, 0x0ffd0026,
 730        0x01f30fda, 0x0ffc0037, 0x01ea0fd3, 0x0ff8004b,
 731        0x01df0fce, 0x0ff5005e, 0x01d10fc9, 0x0ff20074,
 732        0x01c10fc6, 0x0fed008c, 0x01ae0fc5, 0x0fea00a3,
 733        0x019b0fc5, 0x0fe500bb, 0x01850fc6, 0x0fe200d3,
 734        0x01700fc6, 0x0fde00ec, 0x015a0fc8, 0x0fd90105,
 735        0x01430fca, 0x0fd6011d, 0x012b0fcd, 0x0fd30135,
 736        0x01150fcf, 0x0fcf014d, 0x00fc0fd4, 0x0fce0162,
 737        0x00e50fd8, 0x0fcc0177, 0x00cf0fdb, 0x0fca018c,
 738        0x00b80fe0, 0x0fc9019f, 0x00a20fe5, 0x0fca01af,
 739        0x008e0fe8, 0x0fcb01bf, 0x00790fec, 0x0fcb01d0,
 740        0x00670fef, 0x0fcd01dd, 0x00550ff4, 0x0fd001e7,
 741        0x00440ff7, 0x0fd501f0, 0x00350ffa, 0x0fda01f7,
 742        0x00270ffc, 0x0fdf01fe, 0x001b0ffe, 0x0fe70200,
 743        0x00100000, 0x0fee0202, 0x00060000, 0x0ff70203,
 744        0x02000000, 0x00000000, 0x01ff0ff5, 0x0000000c,
 745        0x01f80fea, 0x0000001e, 0x01ef0fe2, 0x0ffd0032,
 746        0x01e20fdb, 0x0ffc0047, 0x01d30fd5, 0x0ff9005f,
 747        0x01c20fd1, 0x0ff60077, 0x01b00fcd, 0x0ff30090,
 748        0x019b0fcb, 0x0fef00ab, 0x01850fcb, 0x0fec00c4,
 749        0x016e0fcc, 0x0fe800de, 0x01550fcd, 0x0fe600f8,
 750        0x013f0fce, 0x0fe20111, 0x01280fd0, 0x0fdf0129,
 751        0x01110fd2, 0x0fdd0140, 0x00f90fd6, 0x0fdb0156,
 752        0x00e40fd8, 0x0fd8016c, 0x00cd0fdd, 0x0fd8017e,
 753        0x00b80fe0, 0x0fd60192, 0x00a40fe3, 0x0fd601a3,
 754        0x00910fe7, 0x0fd501b3, 0x007f0feb, 0x0fd601c0,
 755        0x006e0fed, 0x0fd701ce, 0x005d0ff1, 0x0fd701db,
 756        0x004f0ff3, 0x0fd901e5, 0x00400ff7, 0x0fdc01ed,
 757        0x00330ff9, 0x0fe001f4, 0x00280ffb, 0x0fe301fa,
 758        0x001d0ffd, 0x0fe801fe, 0x00140ffe, 0x0fed0201,
 759        0x000c0000, 0x0ff20202, 0x00050000, 0x0ff90202,
 760        0x02000000, 0x00000000, 0x02040ff7, 0x00000005,
 761        0x02070fed, 0x0000000c, 0x02060fe6, 0x0ffe0016,
 762        0x02050fdf, 0x0ffc0020, 0x02020fd9, 0x0ff9002c,
 763        0x01fe0fd4, 0x0ff60038, 0x01f80fcf, 0x0ff30046,
 764        0x01f00fcb, 0x0fef0056, 0x01e70fc8, 0x0feb0066,
 765        0x01db0fc7, 0x0fe60078, 0x01cc0fc6, 0x0fe3008b,
 766        0x01bf0fc5, 0x0fdd009f, 0x01ae0fc6, 0x0fd800b4,
 767        0x019c0fc6, 0x0fd400ca, 0x01880fc9, 0x0fcf00e0,
 768        0x01750fc9, 0x0fc900f9, 0x015d0fce, 0x0fc6010f,
 769        0x01460fd0, 0x0fc20128, 0x012e0fd3, 0x0fbf0140,
 770        0x01140fd8, 0x0fbc0158, 0x00f90fdd, 0x0fbb016f,
 771        0x00df0fe0, 0x0fba0187, 0x00c40fe5, 0x0fb9019e,
 772        0x00aa0fe9, 0x0fba01b3, 0x008e0fef, 0x0fbd01c6,
 773        0x00740ff3, 0x0fc301d6, 0x005d0ff6, 0x0fc801e5,
 774        0x00450ffa, 0x0fd001f1, 0x00300ffc, 0x0fda01fa,
 775        0x001c0000, 0x0fe40200, 0x000c0000, 0x0ff20202,
 776        0x02000000, 0x00000000, 0x02030ff7, 0x00000006,
 777        0x02020fee, 0x00000010, 0x02000fe7, 0x0ffe001b,
 778        0x01fe0fdf, 0x0ffc0027, 0x01f70fda, 0x0ffa0035,
 779        0x01f00fd5, 0x0ff70044, 0x01e70fd0, 0x0ff40055,
 780        0x01dd0fcd, 0x0fef0067, 0x01d00fcb, 0x0fec0079,
 781        0x01bf0fcb, 0x0fe8008e, 0x01af0fca, 0x0fe500a2,
 782        0x019f0fc9, 0x0fe000b8, 0x018c0fca, 0x0fdb00cf,
 783        0x01770fcc, 0x0fd800e5, 0x01620fce, 0x0fd400fc,
 784        0x014d0fcf, 0x0fcf0115, 0x01350fd3, 0x0fcd012b,
 785        0x011d0fd6, 0x0fca0143, 0x01050fd9, 0x0fc8015a,
 786        0x00ec0fde, 0x0fc60170, 0x00d30fe2, 0x0fc60185,
 787        0x00bb0fe5, 0x0fc5019b, 0x00a30fea, 0x0fc501ae,
 788        0x008c0fed, 0x0fc601c1, 0x00740ff2, 0x0fc901d1,
 789        0x005e0ff5, 0x0fce01df, 0x004b0ff8, 0x0fd301ea,
 790        0x00370ffc, 0x0fda01f3, 0x00260ffd, 0x0fe201fb,
 791        0x00170000, 0x0fea01ff, 0x00090000, 0x0ff50202,
 792        0x02000000, 0x00000000, 0x02010ff7, 0x00000008,
 793        0x01ff0fee, 0x00000013, 0x01fb0fe7, 0x0ffe0020,
 794        0x01f60fe0, 0x0ffc002e, 0x01ed0fda, 0x0ffa003f,
 795        0x01e40fd6, 0x0ff7004f, 0x01d80fd2, 0x0ff40062,
 796        0x01ca0fcf, 0x0ff00077, 0x01bb0fcd, 0x0fed008b,
 797        0x01a90fcd, 0x0fe900a1, 0x01960fcd, 0x0fe600b7,
 798        0x01830fcd, 0x0fe200ce, 0x016d0fcf, 0x0fde00e6,
 799        0x01580fd0, 0x0fdb00fd, 0x01410fd3, 0x0fd80114,
 800        0x012c0fd4, 0x0fd4012c, 0x01140fd8, 0x0fd30141,
 801        0x00fd0fdb, 0x0fd00158, 0x00e60fde, 0x0fcf016d,
 802        0x00ce0fe2, 0x0fcd0183, 0x00b70fe6, 0x0fcd0196,
 803        0x00a10fe9, 0x0fcd01a9, 0x008b0fed, 0x0fcd01bb,
 804        0x00770ff0, 0x0fcf01ca, 0x00620ff4, 0x0fd201d8,
 805        0x004f0ff7, 0x0fd601e4, 0x003f0ffa, 0x0fda01ed,
 806        0x002e0ffc, 0x0fe001f6, 0x00200ffe, 0x0fe701fb,
 807        0x00130000, 0x0fee01ff, 0x00080000, 0x0ff70201,
 808        0x02000000, 0x00000000, 0x01ff0ff7, 0x0000000a,
 809        0x01f90fee, 0x00000019, 0x01f10fe7, 0x0ffe002a,
 810        0x01e60fe1, 0x0ffd003c, 0x01d90fdc, 0x0ffa0051,
 811        0x01cc0fd8, 0x0ff70065, 0x01bb0fd5, 0x0ff5007b,
 812        0x01a80fd3, 0x0ff10094, 0x01950fd2, 0x0fef00aa,
 813        0x01800fd2, 0x0feb00c3, 0x016a0fd3, 0x0fe900da,
 814        0x01540fd3, 0x0fe600f3, 0x013f0fd5, 0x0fe2010a,
 815        0x01280fd7, 0x0fe00121, 0x01100fda, 0x0fde0138,
 816        0x00fb0fdb, 0x0fdb014f, 0x00e40fdf, 0x0fdb0162,
 817        0x00ce0fe2, 0x0fd90177, 0x00b90fe4, 0x0fd8018b,
 818        0x00a50fe8, 0x0fd8019b, 0x00910fec, 0x0fd801ab,
 819        0x007e0fee, 0x0fd801bc, 0x006c0ff2, 0x0fd901c9,
 820        0x005c0ff4, 0x0fda01d6, 0x004b0ff7, 0x0fdd01e1,
 821        0x003c0ff9, 0x0fe001eb, 0x002f0ffb, 0x0fe401f2,
 822        0x00230ffd, 0x0fe801f8, 0x00180ffe, 0x0fed01fd,
 823        0x000e0000, 0x0ff20200, 0x00060000, 0x0ff90201,
 824        0x02000000, 0x00000000, 0x02030ff9, 0x00000004,
 825        0x02050ff2, 0x00000009, 0x02050fed, 0x0ffe0010,
 826        0x02040fe7, 0x0ffd0018, 0x02020fe3, 0x0ffb0020,
 827        0x01fe0fdf, 0x0ff9002a, 0x01fa0fdb, 0x0ff70034,
 828        0x01f40fd8, 0x0ff30041, 0x01ed0fd6, 0x0ff0004d,
 829        0x01e30fd5, 0x0fec005c, 0x01d80fd4, 0x0fea006a,
 830        0x01cd0fd3, 0x0fe5007b, 0x01c00fd3, 0x0fe1008c,
 831        0x01b10fd3, 0x0fdd009f, 0x01a10fd4, 0x0fd900b2,
 832        0x01900fd4, 0x0fd400c8, 0x017b0fd7, 0x0fd100dd,
 833        0x01660fd9, 0x0fcd00f4, 0x01500fda, 0x0fca010c,
 834        0x01380fde, 0x0fc60124, 0x011e0fe2, 0x0fc5013b,
 835        0x01040fe4, 0x0fc30155, 0x00e70fe8, 0x0fc10170,
 836        0x00cc0feb, 0x0fc10188, 0x00ad0ff0, 0x0fc301a0,
 837        0x00900ff4, 0x0fc701b5, 0x00750ff7, 0x0fcc01c8,
 838        0x00580ffb, 0x0fd201db, 0x003e0ffd, 0x0fdb01ea,
 839        0x00250000, 0x0fe501f6, 0x000f0000, 0x0ff301fe,
 840        0x02000000, 0x00000000, 0x02020ff9, 0x00000005,
 841        0x02020ff2, 0x0000000c, 0x02010fed, 0x0ffe0014,
 842        0x01fe0fe8, 0x0ffd001d, 0x01fa0fe3, 0x0ffb0028,
 843        0x01f40fe0, 0x0ff90033, 0x01ed0fdc, 0x0ff70040,
 844        0x01e50fd9, 0x0ff3004f, 0x01db0fd7, 0x0ff1005d,
 845        0x01ce0fd7, 0x0fed006e, 0x01c00fd6, 0x0feb007f,
 846        0x01b30fd5, 0x0fe70091, 0x01a30fd6, 0x0fe300a4,
 847        0x01920fd6, 0x0fe000b8, 0x017e0fd8, 0x0fdd00cd,
 848        0x016c0fd8, 0x0fd800e4, 0x01560fdb, 0x0fd600f9,
 849        0x01400fdd, 0x0fd20111, 0x01290fdf, 0x0fd00128,
 850        0x01110fe2, 0x0fce013f, 0x00f80fe6, 0x0fcd0155,
 851        0x00de0fe8, 0x0fcc016e, 0x00c40fec, 0x0fcb0185,
 852        0x00ab0fef, 0x0fcb019b, 0x00900ff3, 0x0fcd01b0,
 853        0x00770ff6, 0x0fd101c2, 0x005f0ff9, 0x0fd501d3,
 854        0x00470ffc, 0x0fdb01e2, 0x00320ffd, 0x0fe201ef,
 855        0x001e0000, 0x0fea01f8, 0x000c0000, 0x0ff501ff,
 856        0x02000000, 0x00000000, 0x02010ff9, 0x00000006,
 857        0x02000ff2, 0x0000000e, 0x01fd0fed, 0x0ffe0018,
 858        0x01f80fe8, 0x0ffd0023, 0x01f20fe4, 0x0ffb002f,
 859        0x01eb0fe0, 0x0ff9003c, 0x01e10fdd, 0x0ff7004b,
 860        0x01d60fda, 0x0ff4005c, 0x01c90fd9, 0x0ff2006c,
 861        0x01bc0fd8, 0x0fee007e, 0x01ab0fd8, 0x0fec0091,
 862        0x019b0fd8, 0x0fe800a5, 0x018b0fd8, 0x0fe400b9,
 863        0x01770fd9, 0x0fe200ce, 0x01620fdb, 0x0fdf00e4,
 864        0x014f0fdb, 0x0fdb00fb, 0x01380fde, 0x0fda0110,
 865        0x01210fe0, 0x0fd70128, 0x010a0fe2, 0x0fd5013f,
 866        0x00f30fe6, 0x0fd30154, 0x00da0fe9, 0x0fd3016a,
 867        0x00c30feb, 0x0fd20180, 0x00aa0fef, 0x0fd20195,
 868        0x00940ff1, 0x0fd301a8, 0x007b0ff5, 0x0fd501bb,
 869        0x00650ff7, 0x0fd801cc, 0x00510ffa, 0x0fdc01d9,
 870        0x003c0ffd, 0x0fe101e6, 0x002a0ffe, 0x0fe701f1,
 871        0x00190000, 0x0fee01f9, 0x000a0000, 0x0ff701ff,
 872        0x02000000, 0x00000000, 0x01ff0ff9, 0x00000008,
 873        0x01fb0ff2, 0x00000013, 0x01f50fed, 0x0ffe0020,
 874        0x01ed0fe8, 0x0ffd002e, 0x01e30fe4, 0x0ffb003e,
 875        0x01d80fe1, 0x0ff9004e, 0x01cb0fde, 0x0ff70060,
 876        0x01bc0fdc, 0x0ff40074, 0x01ac0fdb, 0x0ff20087,
 877        0x019a0fdb, 0x0fef009c, 0x01870fdb, 0x0fed00b1,
 878        0x01740fdb, 0x0fea00c7, 0x01600fdc, 0x0fe700dd,
 879        0x014b0fdd, 0x0fe500f3, 0x01350fdf, 0x0fe30109,
 880        0x01200fe0, 0x0fe00120, 0x01090fe3, 0x0fdf0135,
 881        0x00f30fe5, 0x0fdd014b, 0x00dd0fe7, 0x0fdc0160,
 882        0x00c70fea, 0x0fdb0174, 0x00b10fed, 0x0fdb0187,
 883        0x009c0fef, 0x0fdb019a, 0x00870ff2, 0x0fdb01ac,
 884        0x00740ff4, 0x0fdc01bc, 0x00600ff7, 0x0fde01cb,
 885        0x004e0ff9, 0x0fe101d8, 0x003e0ffb, 0x0fe401e3,
 886        0x002e0ffd, 0x0fe801ed, 0x00200ffe, 0x0fed01f5,
 887        0x00130000, 0x0ff201fb, 0x00080000, 0x0ff901ff
 888};
 889
 890
 891#define MDP4_QSEED_TABLE0_OFF 0x8100
 892#define MDP4_QSEED_TABLE1_OFF 0x8200
 893#define MDP4_QSEED_TABLE2_OFF 0x9000
 894
 895void mdp4_vg_qseed_init(int vp_num)
 896{
 897        uint32 *off;
 898        int i, voff;
 899
 900        voff = MDP4_VIDEO_OFF * vp_num;
 901        off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
 902                                                MDP4_QSEED_TABLE0_OFF);
 903        for (i = 0; i < (sizeof(vg_qseed_table0) / sizeof(uint32)); i++) {
 904                outpdw(off, vg_qseed_table0[i]);
 905                off++;
 906        }
 907
 908        off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
 909                                                MDP4_QSEED_TABLE1_OFF);
 910        for (i = 0; i < (sizeof(vg_qseed_table1) / sizeof(uint32)); i++) {
 911                outpdw(off, vg_qseed_table1[i]);
 912                off++;
 913        }
 914
 915        off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
 916                                                MDP4_QSEED_TABLE2_OFF);
 917        for (i = 0; i < (sizeof(vg_qseed_table2) / sizeof(uint32)); i++) {
 918                outpdw(off, vg_qseed_table2[i]);
 919                off++;
 920        }
 921
 922}
 923
 924void mdp4_mixer_blend_init(mixer_num)
 925{
 926        unsigned char *overlay_base;
 927        int off;
 928
 929        if (mixer_num)  /* mixer number, /dev/fb0, /dev/fb1 */
 930                overlay_base = MDP_BASE + MDP4_OVERLAYPROC1_BASE;/* 0x18000 */
 931        else
 932                overlay_base = MDP_BASE + MDP4_OVERLAYPROC0_BASE;/* 0x10000 */
 933
 934        /* stage 0 to stage 2 */
 935        off = 0;
 936        outpdw(overlay_base + off + 0x104, 0x010);
 937        outpdw(overlay_base + off + 0x108, 0xff);/* FG */
 938        outpdw(overlay_base + off + 0x10c, 0x00);/* BG */
 939
 940        off += 0x20;
 941        outpdw(overlay_base + off + 0x104, 0x010);
 942        outpdw(overlay_base + off + 0x108, 0xff);/* FG */
 943        outpdw(overlay_base + off + 0x10c, 0x00);/* BG */
 944
 945        off += 0x20;
 946        outpdw(overlay_base + off + 0x104, 0x010);
 947        outpdw(overlay_base + off + 0x108, 0xff);/* FG */
 948        outpdw(overlay_base + off + 0x10c, 0x00);/* BG */
 949}
 950
 951
 952static uint32 csc_matrix_tab[9] = {
 953        0x0254, 0x0000, 0x0331,
 954        0x0254, 0xff37, 0xfe60,
 955        0x0254, 0x0409, 0x0000
 956};
 957
 958static uint32 csc_pre_bv_tab[3] = {0xfff0, 0xff80, 0xff80 };
 959static uint32 csc_post_bv_tab[3] = {0, 0, 0 };
 960
 961static  uint32 csc_pre_lv_tab[6] =  {0, 0xff, 0, 0xff, 0, 0xff };
 962static  uint32 csc_post_lv_tab[6] = {0, 0xff, 0, 0xff, 0, 0xff };
 963
 964#define MDP4_CSC_MV_OFF         0x4400
 965#define MDP4_CSC_PRE_BV_OFF     0x4500
 966#define MDP4_CSC_POST_BV_OFF    0x4580
 967#define MDP4_CSC_PRE_LV_OFF     0x4600
 968#define MDP4_CSC_POST_LV_OFF    0x4680
 969
 970void mdp4_vg_csc_mv_setup(int vp_num)
 971{
 972        uint32 *off;
 973        int i, voff;
 974
 975        voff = MDP4_VIDEO_OFF * vp_num;
 976        off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
 977                                        MDP4_CSC_MV_OFF);
 978        for (i = 0; i < 9; i++) {
 979                outpdw(off, csc_matrix_tab[i]);
 980                off++;
 981        }
 982}
 983
 984void mdp4_vg_csc_pre_bv_setup(int vp_num)
 985{
 986        uint32 *off;
 987        int i, voff;
 988
 989        voff = MDP4_VIDEO_OFF * vp_num;
 990        off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
 991                                        MDP4_CSC_PRE_BV_OFF);
 992        for (i = 0; i < 3; i++) {
 993                outpdw(off, csc_pre_bv_tab[i]);
 994                off++;
 995        }
 996}
 997
 998void mdp4_vg_csc_post_bv_setup(int vp_num)
 999{
1000        uint32 *off;
1001        int i, voff;
1002
1003        voff = MDP4_VIDEO_OFF * vp_num;
1004        off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
1005                                        MDP4_CSC_POST_BV_OFF);
1006        for (i = 0; i < 3; i++) {
1007                outpdw(off, csc_post_bv_tab[i]);
1008                off++;
1009        }
1010}
1011
1012void mdp4_vg_csc_pre_lv_setup(int vp_num)
1013{
1014        uint32 *off;
1015        int i, voff;
1016
1017        voff = MDP4_VIDEO_OFF * vp_num;
1018        off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
1019                                        MDP4_CSC_PRE_LV_OFF);
1020
1021        for (i = 0; i < 6; i++) {
1022                outpdw(off, csc_pre_lv_tab[i]);
1023                off++;
1024        }
1025}
1026
1027void mdp4_vg_csc_post_lv_setup(int vp_num)
1028{
1029        uint32 *off;
1030        int i, voff;
1031
1032        voff = MDP4_VIDEO_OFF * vp_num;
1033        off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
1034                                        MDP4_CSC_POST_LV_OFF);
1035
1036        for (i = 0; i < 6; i++) {
1037                outpdw(off, csc_post_lv_tab[i]);
1038                off++;
1039        }
1040}
1041
1042char gc_lut[] = {
1043        0x0, 0x1, 0x2, 0x2, 0x3, 0x4, 0x5, 0x6,
1044        0x6, 0x7, 0x8, 0x9, 0xA, 0xA, 0xB, 0xC,
1045        0xD, 0xD, 0xE, 0xF, 0xF, 0x10, 0x10, 0x11,
1046        0x12, 0x12, 0x13, 0x13, 0x14, 0x14, 0x15, 0x15,
1047        0x16, 0x16, 0x17, 0x17, 0x17, 0x18, 0x18, 0x19,
1048        0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1B, 0x1B, 0x1C,
1049        0x1C, 0x1D, 0x1D, 0x1D, 0x1E, 0x1E, 0x1E, 0x1F,
1050        0x1F, 0x1F, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
1051        0x22, 0x22, 0x22, 0x22, 0x23, 0x23, 0x23, 0x24,
1052        0x24, 0x24, 0x25, 0x25, 0x25, 0x25, 0x26, 0x26,
1053        0x26, 0x26, 0x27, 0x27, 0x27, 0x28, 0x28, 0x28,
1054        0x28, 0x29, 0x29, 0x29, 0x29, 0x2A, 0x2A, 0x2A,
1055        0x2A, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2C, 0x2C,
1056        0x2C, 0x2C, 0x2D, 0x2D, 0x2D, 0x2D, 0x2E, 0x2E,
1057        0x2E, 0x2E, 0x2E, 0x2F, 0x2F, 0x2F, 0x2F, 0x30,
1058        0x30, 0x30, 0x30, 0x30, 0x31, 0x31, 0x31, 0x31,
1059        0x31, 0x32, 0x32, 0x32, 0x32, 0x32, 0x33, 0x33,
1060        0x33, 0x33, 0x33, 0x34, 0x34, 0x34, 0x34, 0x34,
1061        0x35, 0x35, 0x35, 0x35, 0x35, 0x36, 0x36, 0x36,
1062        0x36, 0x36, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
1063        0x38, 0x38, 0x38, 0x38, 0x38, 0x39, 0x39, 0x39,
1064        0x39, 0x39, 0x39, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A,
1065        0x3A, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3C,
1066        0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3D, 0x3D, 0x3D,
1067        0x3D, 0x3D, 0x3D, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E,
1068        0x3E, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x40,
1069        0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 0x41,
1070        0x41, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x42,
1071        0x42, 0x42, 0x42, 0x43, 0x43, 0x43, 0x43, 0x43,
1072        0x43, 0x43, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
1073        0x44, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
1074        0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x47,
1075        0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x48, 0x48,
1076        0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x49, 0x49,
1077        0x49, 0x49, 0x49, 0x49, 0x49, 0x4A, 0x4A, 0x4A,
1078        0x4A, 0x4A, 0x4A, 0x4A, 0x4A, 0x4B, 0x4B, 0x4B,
1079        0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4C, 0x4C, 0x4C,
1080        0x4C, 0x4C, 0x4C, 0x4C, 0x4D, 0x4D, 0x4D, 0x4D,
1081        0x4D, 0x4D, 0x4D, 0x4D, 0x4E, 0x4E, 0x4E, 0x4E,
1082        0x4E, 0x4E, 0x4E, 0x4E, 0x4E, 0x4F, 0x4F, 0x4F,
1083        0x4F, 0x4F, 0x4F, 0x4F, 0x4F, 0x50, 0x50, 0x50,
1084        0x50, 0x50, 0x50, 0x50, 0x50, 0x51, 0x51, 0x51,
1085        0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x52, 0x52,
1086        0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x53, 0x53,
1087        0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x54,
1088        0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
1089        0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
1090        0x55, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
1091        0x56, 0x56, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
1092        0x57, 0x57, 0x57, 0x58, 0x58, 0x58, 0x58, 0x58,
1093        0x58, 0x58, 0x58, 0x58, 0x58, 0x59, 0x59, 0x59,
1094        0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x5A, 0x5A,
1095        0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1096        0x5B, 0x5B, 0x5B, 0x5B, 0x5B, 0x5B, 0x5B, 0x5B,
1097        0x5B, 0x5B, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C,
1098        0x5C, 0x5C, 0x5C, 0x5C, 0x5D, 0x5D, 0x5D, 0x5D,
1099        0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5E, 0x5E,
1100        0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E,
1101        0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F,
1102        0x5F, 0x5F, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
1103        0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x61, 0x61,
1104        0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x62,
1105        0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
1106        0x62, 0x62, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
1107        0x63, 0x63, 0x63, 0x63, 0x63, 0x64, 0x64, 0x64,
1108        0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64,
1109        0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65,
1110        0x65, 0x65, 0x65, 0x66, 0x66, 0x66, 0x66, 0x66,
1111        0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x67,
1112        0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
1113        0x67, 0x67, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68,
1114        0x68, 0x68, 0x68, 0x68, 0x68, 0x69, 0x69, 0x69,
1115        0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1116        0x69, 0x6A, 0x6A, 0x6A, 0x6A, 0x6A, 0x6A, 0x6A,
1117        0x6A, 0x6A, 0x6A, 0x6A, 0x6A, 0x6B, 0x6B, 0x6B,
1118        0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B,
1119        0x6B, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
1120        0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6D, 0x6D, 0x6D,
1121        0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D,
1122        0x6D, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
1123        0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6F, 0x6F, 0x6F,
1124        0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F,
1125        0x6F, 0x6F, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
1126        0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x71, 0x71,
1127        0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71,
1128        0x71, 0x71, 0x71, 0x72, 0x72, 0x72, 0x72, 0x72,
1129        0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72,
1130        0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73,
1131        0x73, 0x73, 0x73, 0x73, 0x73, 0x74, 0x74, 0x74,
1132        0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74,
1133        0x74, 0x74, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75,
1134        0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75,
1135        0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76,
1136        0x76, 0x76, 0x76, 0x76, 0x76, 0x77, 0x77, 0x77,
1137        0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1138        0x77, 0x77, 0x77, 0x78, 0x78, 0x78, 0x78, 0x78,
1139        0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
1140        0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
1141        0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x7A, 0x7A,
1142        0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A,
1143        0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7B, 0x7B, 0x7B,
1144        0x7B, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B,
1145        0x7B, 0x7B, 0x7B, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C,
1146        0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C,
1147        0x7C, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D,
1148        0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D,
1149        0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E,
1150        0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F,
1151        0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
1152        0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x80, 0x80, 0x80,
1153        0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
1154        0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81,
1155        0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
1156        0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82,
1157        0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
1158        0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
1159        0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
1160        0x83, 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
1161        0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
1162        0x84, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
1163        0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
1164        0x85, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
1165        0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
1166        0x86, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
1167        0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
1168        0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
1169        0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
1170        0x88, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
1171        0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
1172        0x89, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
1173        0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
1174        0x8A, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
1175        0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
1176        0x8B, 0x8B, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
1177        0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
1178        0x8C, 0x8C, 0x8C, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
1179        0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
1180        0x8D, 0x8D, 0x8D, 0x8D, 0x8E, 0x8E, 0x8E, 0x8E,
1181        0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
1182        0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8F, 0x8F, 0x8F,
1183        0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
1184        0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x90, 0x90,
1185        0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
1186        0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x91,
1187        0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
1188        0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
1189        0x91, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
1190        0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
1191        0x92, 0x92, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
1192        0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
1193        0x93, 0x93, 0x93, 0x93, 0x94, 0x94, 0x94, 0x94,
1194        0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
1195        0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x95, 0x95,
1196        0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
1197        0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
1198        0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
1199        0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
1200        0x96, 0x96, 0x96, 0x97, 0x97, 0x97, 0x97, 0x97,
1201        0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
1202        0x97, 0x97, 0x97, 0x97, 0x97, 0x98, 0x98, 0x98,
1203        0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
1204        0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
1205        0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
1206        0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
1207        0x99, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
1208        0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
1209        0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9B, 0x9B, 0x9B,
1210        0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
1211        0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
1212        0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
1213        0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
1214        0x9C, 0x9C, 0x9C, 0x9C, 0x9D, 0x9D, 0x9D, 0x9D,
1215        0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
1216        0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9E,
1217        0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
1218        0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
1219        0x9E, 0x9E, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
1220        0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
1221        0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0xA0, 0xA0,
1222        0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
1223        0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
1224        0xA0, 0xA0, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
1225        0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
1226        0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA2, 0xA2,
1227        0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
1228        0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
1229        0xA2, 0xA2, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
1230        0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
1231        0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA4, 0xA4,
1232        0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
1233        0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
1234        0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
1235        0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
1236        0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
1237        0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
1238        0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
1239        0xA6, 0xA6, 0xA6, 0xA6, 0xA7, 0xA7, 0xA7, 0xA7,
1240        0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
1241        0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
1242        0xA7, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
1243        0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
1244        0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA9,
1245        0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
1246        0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
1247        0xA9, 0xA9, 0xA9, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA,
1248        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1249        0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1250        0xAA, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
1251        0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
1252        0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAC,
1253        0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
1254        0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
1255        0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAD, 0xAD, 0xAD,
1256        0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
1257        0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
1258        0xAD, 0xAD, 0xAD, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
1259        0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
1260        0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
1261        0xAE, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
1262        0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
1263        0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xB0,
1264        0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0,
1265        0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0,
1266        0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB1, 0xB1,
1267        0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1,
1268        0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1,
1269        0xB1, 0xB1, 0xB1, 0xB1, 0xB2, 0xB2, 0xB2, 0xB2,
1270        0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2,
1271        0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2,
1272        0xB2, 0xB2, 0xB2, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
1273        0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
1274        0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
1275        0xB3, 0xB3, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
1276        0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
1277        0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
1278        0xB4, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
1279        0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
1280        0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
1281        0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6,
1282        0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6,
1283        0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6,
1284        0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7,
1285        0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7,
1286        0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB8,
1287        0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
1288        0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
1289        0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB9,
1290        0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
1291        0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
1292        0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xBA,
1293        0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA,
1294        0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA,
1295        0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBB,
1296        0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
1297        0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
1298        0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
1299        0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
1300        0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
1301        0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
1302        0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD,
1303        0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD,
1304        0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD,
1305        0xBD, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
1306        0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
1307        0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
1308        0xBE, 0xBE, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
1309        0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
1310        0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
1311        0xBF, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
1312        0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
1313        0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
1314        0xC0, 0xC0, 0xC0, 0xC0, 0xC1, 0xC1, 0xC1, 0xC1,
1315        0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1,
1316        0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1,
1317        0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC2, 0xC2, 0xC2,
1318        0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2,
1319        0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2,
1320        0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC3, 0xC3,
1321        0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
1322        0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
1323        0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
1324        0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4,
1325        0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4,
1326        0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4,
1327        0xC4, 0xC4, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5,
1328        0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5,
1329        0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5,
1330        0xC5, 0xC5, 0xC5, 0xC5, 0xC6, 0xC6, 0xC6, 0xC6,
1331        0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
1332        0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
1333        0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC7, 0xC7,
1334        0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7,
1335        0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7,
1336        0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7,
1337        0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8,
1338        0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8,
1339        0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8,
1340        0xC8, 0xC8, 0xC8, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9,
1341        0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9,
1342        0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9,
1343        0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xCA, 0xCA,
1344        0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA,
1345        0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA,
1346        0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA,
1347        0xCA, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB,
1348        0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB,
1349        0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB,
1350        0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC,
1351        0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
1352        0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
1353        0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCD,
1354        0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
1355        0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
1356        0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
1357        0xCD, 0xCD, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE,
1358        0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE,
1359        0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE,
1360        0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCF, 0xCF,
1361        0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF,
1362        0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF,
1363        0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF,
1364        0xCF, 0xCF, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0,
1365        0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0,
1366        0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0,
1367        0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD1, 0xD1, 0xD1,
1368        0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1,
1369        0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1,
1370        0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1,
1371        0xD1, 0xD1, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2,
1372        0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2,
1373        0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2,
1374        0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD3, 0xD3,
1375        0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3,
1376        0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3,
1377        0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3,
1378        0xD3, 0xD3, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4,
1379        0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4,
1380        0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4,
1381        0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD5,
1382        0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5,
1383        0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5,
1384        0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5,
1385        0xD5, 0xD5, 0xD5, 0xD5, 0xD6, 0xD6, 0xD6, 0xD6,
1386        0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6,
1387        0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6,
1388        0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6,
1389        0xD6, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
1390        0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
1391        0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
1392        0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD8, 0xD8,
1393        0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
1394        0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
1395        0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
1396        0xD8, 0xD8, 0xD8, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9,
1397        0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9,
1398        0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9,
1399        0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9,
1400        0xD9, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA,
1401        0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA,
1402        0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA,
1403        0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDB, 0xDB,
1404        0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB,
1405        0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB,
1406        0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB,
1407        0xDB, 0xDB, 0xDB, 0xDB, 0xDC, 0xDC, 0xDC, 0xDC,
1408        0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC,
1409        0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC,
1410        0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC,
1411        0xDC, 0xDC, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1412        0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1413        0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1414        0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1415        0xDD, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE,
1416        0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE,
1417        0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE,
1418        0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDF,
1419        0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
1420        0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
1421        0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
1422        0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xE0, 0xE0,
1423        0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
1424        0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
1425        0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
1426        0xE0, 0xE0, 0xE0, 0xE0, 0xE1, 0xE1, 0xE1, 0xE1,
1427        0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1,
1428        0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1,
1429        0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1,
1430        0xE1, 0xE1, 0xE1, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2,
1431        0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2,
1432        0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2,
1433        0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2,
1434        0xE2, 0xE2, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
1435        0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
1436        0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
1437        0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
1438        0xE3, 0xE3, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4,
1439        0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4,
1440        0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4,
1441        0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4,
1442        0xE4, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5,
1443        0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5,
1444        0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5,
1445        0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5,
1446        0xE5, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
1447        0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
1448        0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
1449        0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
1450        0xE6, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
1451        0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
1452        0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
1453        0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
1454        0xE7, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8,
1455        0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8,
1456        0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8,
1457        0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8,
1458        0xE8, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9,
1459        0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9,
1460        0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9,
1461        0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9,
1462        0xE9, 0xE9, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA,
1463        0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA,
1464        0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA,
1465        0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA,
1466        0xEA, 0xEA, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB,
1467        0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB,
1468        0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB,
1469        0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB,
1470        0xEB, 0xEB, 0xEB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
1471        0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
1472        0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
1473        0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
1474        0xEC, 0xEC, 0xEC, 0xEC, 0xED, 0xED, 0xED, 0xED,
1475        0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED,
1476        0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED,
1477        0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED,
1478        0xED, 0xED, 0xED, 0xED, 0xED, 0xEE, 0xEE, 0xEE,
1479        0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
1480        0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
1481        0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
1482        0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0xEF,
1483        0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF,
1484        0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF,
1485        0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF,
1486        0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF,
1487        0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
1488        0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
1489        0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
1490        0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
1491        0xF0, 0xF0, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
1492        0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
1493        0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
1494        0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
1495        0xF1, 0xF1, 0xF1, 0xF1, 0xF2, 0xF2, 0xF2, 0xF2,
1496        0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
1497        0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
1498        0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
1499        0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF3, 0xF3,
1500        0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
1501        0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
1502        0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
1503        0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
1504        0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
1505        0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
1506        0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
1507        0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
1508        0xF4, 0xF4, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5,
1509        0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5,
1510        0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5,
1511        0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5,
1512        0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF6, 0xF6, 0xF6,
1513        0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6,
1514        0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6,
1515        0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6,
1516        0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6,
1517        0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
1518        0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
1519        0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
1520        0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
1521        0xF7, 0xF7, 0xF7, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
1522        0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
1523        0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
1524        0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
1525        0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF9, 0xF9,
1526        0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9,
1527        0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9,
1528        0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9,
1529        0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9,
1530        0xF9, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA,
1531        0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA,
1532        0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA,
1533        0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA,
1534        0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFB, 0xFB, 0xFB,
1535        0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB,
1536        0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB,
1537        0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB,
1538        0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB,
1539        0xFB, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
1540        0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
1541        0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
1542        0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
1543        0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFD, 0xFD, 0xFD,
1544        0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD,
1545        0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD,
1546        0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD,
1547        0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD,
1548        0xFD, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
1549        0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
1550        0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
1551        0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
1552        0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,
1553        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1554        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1555};
1556
1557void mdp4_mixer_gc_lut_setup(int mixer_num)
1558{
1559        unsigned char *base;
1560        uint32 data;
1561        char val;
1562        int i, off;
1563
1564        if (mixer_num)  /* mixer number, /dev/fb0, /dev/fb1 */
1565                base = MDP_BASE + MDP4_OVERLAYPROC1_BASE;/* 0x18000 */
1566        else
1567                base = MDP_BASE + MDP4_OVERLAYPROC0_BASE;/* 0x10000 */
1568
1569        base += 0x4000; /* GC_LUT offset */
1570
1571        off = 0;
1572        for (i = 0; i < 4096; i++) {
1573                val = gc_lut[i];
1574                data = (val << 16 | val << 8 | val); /* R, B, and G are same */
1575                outpdw(base + off, data);
1576                off += 4;
1577        }
1578}
1579
1580uint32 igc_video_lut[] = {       /* non linear */
1581        0x0, 0x1, 0x2, 0x4, 0x5, 0x6, 0x7, 0x9,
1582        0xA, 0xB, 0xC, 0xE, 0xF, 0x10, 0x12, 0x14,
1583        0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F, 0x21, 0x23,
1584        0x25, 0x28, 0x2A, 0x2D, 0x30, 0x32, 0x35, 0x38,
1585        0x3B, 0x3E, 0x42, 0x45, 0x48, 0x4C, 0x4F, 0x53,
1586        0x57, 0x5B, 0x5F, 0x63, 0x67, 0x6B, 0x70, 0x74,
1587        0x79, 0x7E, 0x83, 0x88, 0x8D, 0x92, 0x97, 0x9C,
1588        0xA2, 0xA8, 0xAD, 0xB3, 0xB9, 0xBF, 0xC5, 0xCC,
1589        0xD2, 0xD8, 0xDF, 0xE6, 0xED, 0xF4, 0xFB, 0x102,
1590        0x109, 0x111, 0x118, 0x120, 0x128, 0x130, 0x138, 0x140,
1591        0x149, 0x151, 0x15A, 0x162, 0x16B, 0x174, 0x17D, 0x186,
1592        0x190, 0x199, 0x1A3, 0x1AC, 0x1B6, 0x1C0, 0x1CA, 0x1D5,
1593        0x1DF, 0x1EA, 0x1F4, 0x1FF, 0x20A, 0x215, 0x220, 0x22B,
1594        0x237, 0x242, 0x24E, 0x25A, 0x266, 0x272, 0x27F, 0x28B,
1595        0x298, 0x2A4, 0x2B1, 0x2BE, 0x2CB, 0x2D8, 0x2E6, 0x2F3,
1596        0x301, 0x30F, 0x31D, 0x32B, 0x339, 0x348, 0x356, 0x365,
1597        0x374, 0x383, 0x392, 0x3A1, 0x3B1, 0x3C0, 0x3D0, 0x3E0,
1598        0x3F0, 0x400, 0x411, 0x421, 0x432, 0x443, 0x454, 0x465,
1599        0x476, 0x487, 0x499, 0x4AB, 0x4BD, 0x4CF, 0x4E1, 0x4F3,
1600        0x506, 0x518, 0x52B, 0x53E, 0x551, 0x565, 0x578, 0x58C,
1601        0x5A0, 0x5B3, 0x5C8, 0x5DC, 0x5F0, 0x605, 0x61A, 0x62E,
1602        0x643, 0x659, 0x66E, 0x684, 0x699, 0x6AF, 0x6C5, 0x6DB,
1603        0x6F2, 0x708, 0x71F, 0x736, 0x74D, 0x764, 0x77C, 0x793,
1604        0x7AB, 0x7C3, 0x7DB, 0x7F3, 0x80B, 0x824, 0x83D, 0x855,
1605        0x86F, 0x888, 0x8A1, 0x8BB, 0x8D4, 0x8EE, 0x908, 0x923,
1606        0x93D, 0x958, 0x973, 0x98E, 0x9A9, 0x9C4, 0x9DF, 0x9FB,
1607        0xA17, 0xA33, 0xA4F, 0xA6C, 0xA88, 0xAA5, 0xAC2, 0xADF,
1608        0xAFC, 0xB19, 0xB37, 0xB55, 0xB73, 0xB91, 0xBAF, 0xBCE,
1609        0xBEC, 0xC0B, 0xC2A, 0xC4A, 0xC69, 0xC89, 0xCA8, 0xCC8,
1610        0xCE8, 0xD09, 0xD29, 0xD4A, 0xD6B, 0xD8C, 0xDAD, 0xDCF,
1611        0xDF0, 0xE12, 0xE34, 0xE56, 0xE79, 0xE9B, 0xEBE, 0xEE1,
1612        0xF04, 0xF27, 0xF4B, 0xF6E, 0xF92, 0xFB6, 0xFDB, 0xFFF,
1613};
1614
1615void mdp4_vg_igc_lut_setup(int vp_num)
1616{
1617        unsigned char *base;
1618        int i, voff, off;
1619        uint32 data, val;
1620
1621        voff = MDP4_VIDEO_OFF * vp_num;
1622        base = MDP_BASE + MDP4_VIDEO_BASE + voff + 0x5000;
1623
1624        off = 0;
1625        for (i = 0; i < 256; i++) {
1626                val = igc_video_lut[i];
1627                data = (val << 16 | val);       /* color 0 and 1 */
1628                outpdw(base + off, data);
1629                outpdw(base + off + 0x800, val);        /* color 2 */
1630                off += 4;
1631        }
1632}
1633
1634uint32 igc_rgb_lut[] = {   /* linear */
1635        0x0, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70,
1636        0x80, 0x91, 0xA1, 0xB1, 0xC1, 0xD1, 0xE1, 0xF1,
1637        0x101, 0x111, 0x121, 0x131, 0x141, 0x151, 0x161, 0x171,
1638        0x181, 0x191, 0x1A2, 0x1B2, 0x1C2, 0x1D2, 0x1E2, 0x1F2,
1639        0x202, 0x212, 0x222, 0x232, 0x242, 0x252, 0x262, 0x272,
1640        0x282, 0x292, 0x2A2, 0x2B3, 0x2C3, 0x2D3, 0x2E3, 0x2F3,
1641        0x303, 0x313, 0x323, 0x333, 0x343, 0x353, 0x363, 0x373,
1642        0x383, 0x393, 0x3A3, 0x3B3, 0x3C4, 0x3D4, 0x3E4, 0x3F4,
1643        0x404, 0x414, 0x424, 0x434, 0x444, 0x454, 0x464, 0x474,
1644        0x484, 0x494, 0x4A4, 0x4B4, 0x4C4, 0x4D5, 0x4E5, 0x4F5,
1645        0x505, 0x515, 0x525, 0x535, 0x545, 0x555, 0x565, 0x575,
1646        0x585, 0x595, 0x5A5, 0x5B5, 0x5C5, 0x5D5, 0x5E6, 0x5F6,
1647        0x606, 0x616, 0x626, 0x636, 0x646, 0x656, 0x666, 0x676,
1648        0x686, 0x696, 0x6A6, 0x6B6, 0x6C6, 0x6D6, 0x6E6, 0x6F7,
1649        0x707, 0x717, 0x727, 0x737, 0x747, 0x757, 0x767, 0x777,
1650        0x787, 0x797, 0x7A7, 0x7B7, 0x7C7, 0x7D7, 0x7E7, 0x7F7,
1651        0x808, 0x818, 0x828, 0x838, 0x848, 0x858, 0x868, 0x878,
1652        0x888, 0x898, 0x8A8, 0x8B8, 0x8C8, 0x8D8, 0x8E8, 0x8F8,
1653        0x908, 0x919, 0x929, 0x939, 0x949, 0x959, 0x969, 0x979,
1654        0x989, 0x999, 0x9A9, 0x9B9, 0x9C9, 0x9D9, 0x9E9, 0x9F9,
1655        0xA09, 0xA19, 0xA2A, 0xA3A, 0xA4A, 0xA5A, 0xA6A, 0xA7A,
1656        0xA8A, 0xA9A, 0xAAA, 0xABA, 0xACA, 0xADA, 0xAEA, 0xAFA,
1657        0xB0A, 0xB1A, 0xB2A, 0xB3B, 0xB4B, 0xB5B, 0xB6B, 0xB7B,
1658        0xB8B, 0xB9B, 0xBAB, 0xBBB, 0xBCB, 0xBDB, 0xBEB, 0xBFB,
1659        0xC0B, 0xC1B, 0xC2B, 0xC3B, 0xC4C, 0xC5C, 0xC6C, 0xC7C,
1660        0xC8C, 0xC9C, 0xCAC, 0xCBC, 0xCCC, 0xCDC, 0xCEC, 0xCFC,
1661        0xD0C, 0xD1C, 0xD2C, 0xD3C, 0xD4C, 0xD5D, 0xD6D, 0xD7D,
1662        0xD8D, 0xD9D, 0xDAD, 0xDBD, 0xDCD, 0xDDD, 0xDED, 0xDFD,
1663        0xE0D, 0xE1D, 0xE2D, 0xE3D, 0xE4D, 0xE5D, 0xE6E, 0xE7E,
1664        0xE8E, 0xE9E, 0xEAE, 0xEBE, 0xECE, 0xEDE, 0xEEE, 0xEFE,
1665        0xF0E, 0xF1E, 0xF2E, 0xF3E, 0xF4E, 0xF5E, 0xF6E, 0xF7F,
1666        0xF8F, 0xF9F, 0xFAF, 0xFBF, 0xFCF, 0xFDF, 0xFEF, 0xFFF,
1667};
1668
1669void mdp4_rgb_igc_lut_setup(int num)
1670{
1671        unsigned char *base;
1672        int i, voff, off;
1673        uint32 data, val;
1674
1675        voff = MDP4_RGB_OFF * num;
1676        base = MDP_BASE + MDP4_RGB_BASE + voff + 0x5000;
1677
1678        off = 0;
1679        for (i = 0; i < 256; i++) {
1680                val = igc_rgb_lut[i];
1681                data = (val << 16 | val);       /* color 0 and 1 */
1682                outpdw(base + off, data);
1683                outpdw(base + off + 0x800, val);        /* color 2 */
1684                off += 4;
1685        }
1686}
1687