WikiStart: zipit2-kernel.patch

File zipit2-kernel.patch, 184.1 kB (added by ethicalclone, 5 years ago)

A much cleaner Zipit2 kernel patch with auto-gen stuff and whitespace errors removed

  • a/arch/arm/Kconfig

    old new  
    997997 
    998998source "drivers/rtc/Kconfig" 
    999999 
     1000source "drivers/gpio/Kconfig" 
     1001 
     1002source "drivers/audiodrv/Kconfig" 
     1003 
    10001004endmenu 
    10011005 
    10021006source "fs/Kconfig" 
  • a/arch/arm/Makefile

    old new  
    180180drivers-$(CONFIG_OPROFILE)      += arch/arm/oprofile/ 
    181181drivers-$(CONFIG_ARCH_CLPS7500) += drivers/acorn/char/ 
    182182drivers-$(CONFIG_ARCH_L7200)    += drivers/acorn/char/ 
     183drivers-$(CONFIG_GPIO)          += drivers/gpio/ 
     184drivers-$(CONFIG_AUDIODRV)      += drivers/audiodrv/ 
    183185 
    184186libs-y                          := arch/arm/lib/ $(libs-y) 
    185187 
  • a/arch/arm/kernel/process.c

    old new  
    131131                local_irq_disable(); 
    132132                if (!need_resched()) { 
    133133                        timer_dyn_reprogram(); 
     134                        //GPSR2 = 0x02000000; 
    134135                        arch_idle(); 
     136                        //GPCR2 = 0x02000000; 
    135137                } 
    136138                local_irq_enable(); 
    137139        } 
  • a/arch/arm/mach-pxa/mainstone.c

    old new  
    108108 
    109109        set_irq_chained_handler(IRQ_GPIO(0), mainstone_irq_handler); 
    110110        set_irq_type(IRQ_GPIO(0), IRQT_FALLING); 
     111 
    111112} 
    112113 
    113114#ifdef CONFIG_PM 
     
    262263        }, 
    263264}; 
    264265 
     266 
     267#ifdef ZIPIT2 
     268static void Zipit2_lcd_power(int on, struct fb_var_screeninfo *var) 
     269{ 
     270        printk(KERN_NOTICE "Set Zipit2 lcd power %d...\n",on); 
     271#if 0 
     272        if (on) { 
     273                IDP_CPLD_LCD |= (1<<0); 
     274        } else { 
     275                IDP_CPLD_LCD &= ~(1<<0); 
     276        } 
     277 
     278        /* call idp_vlcd for now as core driver does not support 
     279         * both power and vlcd hooks.  Note, this is not technically 
     280         * the correct sequence, but seems to work.  Disclaimer: 
     281         * this may eventually damage the display. 
     282         */ 
     283 
     284        idp_vlcd(on); 
     285#endif 
     286} 
     287 
     288static void Zipit2_backlight_power(int on) 
     289{ 
     290        printk(KERN_NOTICE "Set Zipit2 backlight %d...\n",on); 
     291#if 0 
     292        if (on) { 
     293                pxa_gpio_mode(GPIO16_PWM0_MD); 
     294                pxa_set_cken(CKEN0_PWM0, 1); 
     295                PWM_CTRL0 = 0x30; 
     296                PWM_PWDUTY0 = (0x80 << 2); 
     297                PWM_PERVAL0 = 0x3FC; 
     298        } else { 
     299                PWM_CTRL0 = 0; 
     300                PWM_PWDUTY0 = 0x0; 
     301                PWM_PERVAL0 = 0x3FF; 
     302                pxa_set_cken(CKEN0_PWM0, 0); 
     303        } 
     304#endif 
     305} 
     306 
     307static struct pxafb_mode_info Zipit2_lcd_mode = { 
     308        .pixclock               = LCD_PIXCLOCK, 
     309        .xres                   = LCD_XRES, 
     310        .yres                   = LCD_YRES, 
     311        .bpp                    = LCD_BPP, 
     312        .hsync_len              = LCD_HORIZONTAL_SYNC_PULSE_WIDTH, 
     313        .left_margin    = LCD_BEGIN_OF_LINE_WAIT_COUNT, 
     314        .right_margin   = LCD_END_OF_LINE_WAIT_COUNT, 
     315        .vsync_len              = LCD_VERTICAL_SYNC_PULSE_WIDTH, 
     316        .upper_margin   = LCD_BEGIN_FRAME_WAIT_COUNT, 
     317        .lower_margin   = LCD_END_OF_FRAME_WAIT_COUNT, 
     318        .sync                   = LCD_SYNC, 
     319}; 
     320 
     321static struct pxafb_mach_info Zipit2_pxafb_info = { 
     322        .num_modes              = 1, 
     323        .lccr0                  = LCD_LCCR0, 
     324        .lccr3                  = LCD_LCCR3, 
     325        .pxafb_backlight_power  = Zipit2_backlight_power, 
     326        .pxafb_lcd_power = &Zipit2_lcd_power 
     327}; 
     328#else 
    265329static void mainstone_backlight_power(int on) 
    266330{ 
    267331        if (on) { 
     
    277341                pxa_set_cken(CKEN0_PWM0, 0); 
    278342        } 
    279343} 
    280  
    281344static struct pxafb_mode_info toshiba_ltm04c380k_mode = { 
    282345        .pixclock               = 50000, 
    283346        .xres                   = 640, 
     
    311374        .lccr0                  = LCCR0_Act, 
    312375        .lccr3                  = LCCR3_PCP, 
    313376        .pxafb_backlight_power  = mainstone_backlight_power, 
     377 
    314378}; 
     379#endif //end check for ZIPIT2 
    315380 
    316381static int mainstone_mci_init(struct device *dev, irq_handler_t mstone_detect_int, void *data) 
    317382{ 
     
    332397         */ 
    333398        MST_MSCWR1 &= ~MST_MSCWR1_MS_SEL; 
    334399 
    335         err = request_irq(MAINSTONE_MMC_IRQ, mstone_detect_int, IRQF_DISABLED, 
    336                              "MMC card detect", data); 
     400        set_irq_type(IRQ_GPIO(96), IRQT_BOTHEDGE); 
     401 
     402        err = request_irq(IRQ_GPIO(96), mstone_detect_int, IRQF_DISABLED,"MMC card detect", data); 
     403 
    337404        if (err) { 
    338405                printk(KERN_ERR "mainstone_mci_init: MMC/SD: can't request MMC card detect IRQ\n"); 
    339406                return -1; 
     
    366433        .init           = mainstone_mci_init, 
    367434        .setpower       = mainstone_mci_setpower, 
    368435        .exit           = mainstone_mci_exit, 
     436        .detect_delay = 100, 
    369437}; 
    370438 
    371439static void mainstone_irda_transceiver_mode(struct device *dev, int mode) 
     
    417485        .init           = mainstone_ohci_init, 
    418486}; 
    419487 
     488static void mainstone_poweroff(void) 
     489{ 
     490        int nUserArg = 7;               // deep sleep 
     491        asm( "mcr p14, 0, %0, c7, c0, 0" :: "r" (nUserArg) ); 
     492} 
     493 
     494static void mainstone_restart(char mode) 
     495{ 
     496        // write the PMSR with a special value to make BLOB come on up 
     497        arm_machine_restart('h'); 
     498} 
    420499static void __init mainstone_init(void) 
    421500{ 
    422501        int SW7 = 0;  /* FIXME: get from SCR (Mst doc section 3.2.1.1) */ 
     
    441520         * On Mainstone, we route AC97_SYSCLK via GPIO45 to 
    442521         * the audio daughter card 
    443522         */ 
     523#ifndef ZIPIT2 
    444524        pxa_gpio_mode(GPIO45_SYSCLK_AC97_MD); 
    445  
     525#endif 
    446526        platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); 
    447527 
     528#ifdef ZIPIT2 
     529        printk(KERN_NOTICE "Set Zipit2 lcd paramaters...\n"); 
     530 
     531        Zipit2_pxafb_info.modes = &Zipit2_lcd_mode; 
     532 
     533        set_pxa_fb_info(&Zipit2_pxafb_info); 
     534#else 
    448535        /* reading Mainstone's "Virtual Configuration Register" 
    449536           might be handy to select LCD type here */ 
    450537        if (0) 
     
    453540                mainstone_pxafb_info.modes = &toshiba_ltm035a776c_mode; 
    454541 
    455542        set_pxa_fb_info(&mainstone_pxafb_info); 
     543#endif 
    456544 
    457545        pxa_set_mci_info(&mainstone_mci_platform_data); 
    458546        pxa_set_ficp_info(&mainstone_ficp_platform_data); 
    459547        pxa_set_ohci_info(&mainstone_ohci_platform_data); 
     548 
     549        pm_power_off = mainstone_poweroff; 
     550        arm_pm_restart = mainstone_restart; 
     551 
    460552} 
    461553 
    462554 
     
    474566        pxa_map_io(); 
    475567        iotable_init(mainstone_io_desc, ARRAY_SIZE(mainstone_io_desc)); 
    476568 
     569#ifdef JWK 
    477570        /* initialize sleep mode regs (wake-up sources, etc) */ 
    478571        PGSR0 = 0x00008800; 
    479572        PGSR1 = 0x00000002; 
     
    491584        PKWR  = 0x000FD000; 
    492585        /*      Need read PKWR back after set it.       */ 
    493586        PKWR; 
     587#endif 
    494588} 
    495589 
    496590MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)") 
  • a/drivers/Makefile

    old new  
    44# 15 Sep 2000, Christoph Hellwig <hch@infradead.org> 
    55# Rewritten to use lists instead of if-statements. 
    66# 
    7  
    87obj-$(CONFIG_PCI)               += pci/ 
    98obj-$(CONFIG_PARISC)            += parisc/ 
    109obj-$(CONFIG_RAPIDIO)           += rapidio/ 
     
    8180obj-$(CONFIG_DMA_ENGINE)        += dma/ 
    8281obj-$(CONFIG_HID)               += hid/ 
    8382obj-$(CONFIG_PPC_PS3)           += ps3/ 
     83 
  • /dev/null

    old new  
     1# 
     2# Misc strange devices 
     3# 
     4 
     5menu "PXA audio driver" 
     6 
     7config AUDIODRV 
     8        tristate "Device driver for PXA audio" 
     9        depends on ARCH_PXA 
     10        ---help--- 
     11          This option enables device driver support for PXA gpio. 
     12 
     13          If unsure, say N. 
     14 
     15endmenu 
  • /dev/null

    old new  
     1# 
     2# Makefile for gpio driver. 
     3# 
     4 
     5obj-$(CONFIG_AUDIODRV)  := audio_pxa.o 
  • /dev/null

    old new  
     1/* 
     2 *      PXA Audio Driver 
     3 * 
     4 *      Copyright (C) 2007 Aeronix 
     5 * 
     6 *      This driver allows controls the audio on the PXA processor 
     7 * 
     8 *      This program is free software; you can redistribute it and/or 
     9 *      modify it under the terms of the GNU General Public License 
     10 *      as published by the Free Software Foundation; either version 
     11 *      2 of the License, or (at your option) any later version. 
     12 * 
     13 */ 
     14 
     15#include <linux/module.h> 
     16#include <linux/kernel.h> 
     17#include <linux/proc_fs.h> 
     18#include <linux/fs.h> 
     19#include <asm/uaccess.h> 
     20#include <linux/ioport.h> 
     21#include <asm/io.h> 
     22#include <asm/arch/pxa-regs.h> 
     23#include "audio_pxa.h" 
     24 
     25extern void* dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp); 
     26extern void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr_t handle); 
     27 
     28static struct file_operations audio_driver_fops = { 
     29                owner:                  THIS_MODULE, 
     30                llseek:                 no_llseek, 
     31                read:                   audio_read_method, 
     32                write:          audio_write_method, 
     33        ioctl:          audio_ioctl_method, 
     34        open:           audio_open_method, 
     35        release:        audio_release_method, 
     36}; 
     37 
     38 
     39static void mcp_enable(void) 
     40{ 
     41        int i; 
     42        int nGpioMode; 
     43 
     44        pBuffer = (char *) dma_alloc_coherent(NULL, BUFFSIZE, (dma_addr_t *)&pBufferPhys,GFP_KERNEL); 
     45 
     46        pDescs = (char *) dma_alloc_coherent(NULL, sizeof(DmaDesc) * 16, (dma_addr_t *)&pDescsPhys,GFP_KERNEL); 
     47 
     48        memset(pBuffer, 0, BUFFSIZE); 
     49 
     50//      printk(KERN_INFO "Buffer Address: virt(0x%08lX), phys(0x%08lX)\n", (long unsigned int)pBuffer, (long unsigned int)pBufferPhys); 
     51//      printk(KERN_INFO  "Descriptor Address: virt(0x%08lX), phys(0x%08lX)\n", (long unsigned int)pDescs, (long unsigned int)pDescsPhys); 
     52 
     53        // configure the descriptors 
     54        for(i = 0; i < 16; i++) 
     55        { 
     56                pDescs[i].DDADR = &pDescsPhys[i + 1]; 
     57                pDescs[i].DSADR = &pBufferPhys[i * 6 * 1024]; 
     58                pDescs[i].DTADR = 0x40400080; 
     59                pDescs[i].DCMD = 0x9003D800;            // src inc, target flow, size 32 bytes, width 4 bytes, 6K length 
     60 
     61        } 
     62 
     63        pDescs[15].DDADR = &pDescsPhys[0];              // reloop DMA descriptors 
     64 
     65#if 0 
     66        for(i = 0; i < 16; i++) 
     67        { 
     68                printk(KERN_INFO "DDADR[%d]: 0x%08lX\n", i, pDescs[i].DDADR); 
     69                printk(KERN_INFO "DSADR[%d]: 0x%08lX\n", i, pDescs[i].DSADR); 
     70                printk(KERN_INFO "DTADR[%d]: 0x%08lX\n", i, pDescs[i].DTADR); 
     71                printk(KERN_INFO " DCMD[%d]: 0x%08lX\n", i, pDescs[i].DCMD); 
     72                printk(KERN_INFO "\n"); 
     73        } 
     74#endif 
     75        // configure the DMA channel 
     76 
     77        DRCMR3 = 0x8F;          // I2S DMA Channel Map (Channel 15) 
     78        DCSR15 = 0x00000000;    // DMA Control/Status15 (Descriptors used) 
     79 
     80        DDADR15 = &pDescsPhys[0];       // DMA Descriptor Address (Channel 15) 
     81        DCSR15 = 0x80000000;            // DMA Control/Status15 (Start the DMA) 
     82 
     83        // configure I2S 
     84    nGpioMode = 113 | GPIO_ALT_FN_1_OUT; 
     85        pxa_gpio_mode(nGpioMode); 
     86 
     87    nGpioMode = 28 | GPIO_ALT_FN_1_OUT; 
     88        pxa_gpio_mode(nGpioMode); 
     89 
     90    nGpioMode = 29 | GPIO_ALT_FN_1_IN; 
     91        pxa_gpio_mode(nGpioMode); 
     92 
     93    nGpioMode = 30 | GPIO_ALT_FN_1_OUT; 
     94        pxa_gpio_mode(nGpioMode); 
     95 
     96    nGpioMode = 31 | GPIO_ALT_FN_1_OUT; 
     97        pxa_gpio_mode(nGpioMode); 
     98 
     99    nGpioMode = 37 | GPIO_IN; 
     100    pxa_gpio_mode(nGpioMode); 
     101 
     102//      printk(KERN_INFO "CKEN: 0x%08lX\n", CKEN); 
     103        CKEN |= 0x100;                  // clk to I2S 
     104//      printk(KERN_INFO "CKEN: 0x%08lX\n", CKEN); 
     105        SACR1 |= 0x9;                           // Disable record and MSB format 
     106        SADIV = 0xD;                            // BITCLK divisor to 44.1KHz 
     107        SACR0 |= 0x7705;                        // BITCLK output and Enable I2S 
     108 
     109        pWriteAddress = pBuffer; 
     110 
     111//      printk(KERN_INFO "mcp_enable - exit\n"); 
     112} 
     113 
     114static int __init audio_driver_init(void) 
     115{ 
     116        int rc; 
     117 
     118        if ( (rc = register_chrdev(MCP_MAJOR,"audio",&audio_driver_fops)) ) 
     119                printk(KERN_WARNING "DAI: Unable to get major %d for MCP\n",MCP_MAJOR); 
     120        else 
     121                printk(KERN_INFO "DAI: DAI Enable with major = %d\n", MCP_MAJOR); 
     122 
     123        return rc; 
     124} 
     125 
     126static void __exit audio_driver_exit(void) 
     127{ 
     128        printk(KERN_NOTICE "Remove Audio driver...\n"); 
     129        unregister_chrdev(MCP_MAJOR, "audio"); 
     130 
     131 
     132} 
     133 
     134/* FILE FOPS */ 
     135static ssize_t audio_read_method (struct file *file, char *buf, size_t count, loff_t *offset) 
     136{ 
     137  int ret = 0; 
     138 
     139  return ret; 
     140} 
     141 
     142static ssize_t audio_write_method (struct file *file, const char *buf, size_t count, loff_t *offset) 
     143{ 
     144        char *pFirstWrite; 
     145        char *pSecondWrite; 
     146        unsigned long ulFirstAmount; 
     147        unsigned long ulSecondAmount; 
     148        unsigned long ulAvailable; 
     149        unsigned long ulWritten; 
     150        unsigned long ulToWrite; 
     151 
     152        char * pReadAddress = (char *) DSADR15 - pBufferPhys + pBuffer;         // get current processing address 
     153 
     154//      printk(KERN_INFO "count: 0x%08lX, pRead: 0x%08lX, pWrite: 0x%08lX\n", count, pReadAddress, pWriteAddress ); 
     155        if(buf == 0) 
     156        { 
     157//              printk(KERN_INFO "count: 0x%08lX, buf: 0x%08lX\n", count, buf ); 
     158 
     159                if(count == 0) 
     160                { 
     161//                      printk(KERN_INFO "Initialize playback\n"); 
     162 
     163                        DCSR15 = 0x00000000;                                            // DMA Control/Status15 (Stop the DMA) 
     164 
     165                        memset(pBuffer, 0, BUFFSIZE); 
     166 
     167                        DDADR15 = DDADR15; 
     168                        DCSR15 = 0x80000000;                                            // DMA Control/Status15 (Start the DMA) 
     169                } 
     170                else 
     171                if(count == 1) 
     172                { 
     173//                      printk(KERN_INFO "Stop playback\n"); 
     174 
     175                        DCSR15 = 0x00000000;                                            // DMA Control/Status15 (Stop the DMA) 
     176                } 
     177                else 
     178                if(count == 2) 
     179                { 
     180//                      printk(KERN_INFO "Resume playback: 0x%08lX, 0x%08lX\n", AccessReg(0x03C), AccessReg(0x2F0)); 
     181 
     182                        DDADR15 = DDADR15; 
     183                        DCSR15 = 0x80000000;                                            // DMA Control/Status15 (Start the DMA) 
     184                } 
     185 
     186                return 0; 
     187        } 
     188 
     189        if(pWriteAddress > pReadAddress) 
     190        { 
     191                ulAvailable = BUFFSIZE - (pWriteAddress - pReadAddress); 
     192 
     193                pFirstWrite = pWriteAddress; 
     194                ulFirstAmount = BUFFSIZE - (pWriteAddress - &pBuffer[0]); 
     195 
     196                ulSecondAmount = ulAvailable - ulFirstAmount; 
     197                pSecondWrite = &pBuffer[0]; 
     198        } 
     199        else 
     200        { 
     201                ulAvailable = pReadAddress - pWriteAddress; 
     202 
     203                pFirstWrite = pWriteAddress; 
     204                ulFirstAmount = ulAvailable; 
     205 
     206                pSecondWrite = 0; 
     207                ulSecondAmount = 0; 
     208        } 
     209 
     210//      printk(KERN_INFO "1st: 0x%08lX, 0x%08lX, 2nd: 0x%08lX, 0x%08lX\n", pFirstWrite, ulFirstAmount, pSecondWrite, ulSecondAmount ); 
     211 
     212        if((ulAvailable < count) && (ulAvailable < (BUFFSIZE / 2))) 
     213        { 
     214//              printk(KERN_INFO "mcp_write:QUEUE_FULL\n"); 
     215                return 0; 
     216        } 
     217 
     218        ulWritten = 0; 
     219        ulToWrite = count - ulWritten; 
     220        if (ulToWrite > ulFirstAmount) 
     221                ulToWrite = ulFirstAmount; 
     222 
     223//      printk(KERN_INFO "1st: 0x%08lX, 0x%08lX\n", pFirstWrite, ulToWrite ); 
     224        copy_from_user(pFirstWrite, buf, ulToWrite); 
     225        pWriteAddress += ulToWrite; 
     226        ulWritten += ulToWrite; 
     227 
     228        if(pWriteAddress >= (&pBuffer[0] + BUFFSIZE)) 
     229        { 
     230                pWriteAddress = &pBuffer[0]; 
     231        } 
     232 
     233        if((ulWritten < count) && pSecondWrite) 
     234        { 
     235                ulToWrite = count - ulWritten; 
     236 
     237                if (ulToWrite > ulSecondAmount) 
     238                        ulToWrite = ulSecondAmount; 
     239 
     240//              printk(KERN_INFO "2nd: 0x%08lX, 0x%08lX\n", pSecondWrite, ulToWrite ); 
     241                copy_from_user(pSecondWrite, &buf[ulWritten], ulToWrite); 
     242                pWriteAddress = pSecondWrite + ulToWrite; 
     243                ulWritten += ulToWrite; 
     244        } 
     245 
     246        if(pWriteAddress >= (&pBuffer[0] + BUFFSIZE)) 
     247        { 
     248                pWriteAddress = &pBuffer[0]; 
     249        } 
     250 
     251        return (ssize_t)ulWritten; 
     252} 
     253 
     254static int audio_ioctl_method (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) 
     255{ 
     256        return 0; 
     257} 
     258 
     259static int audio_open_method (struct inode *inode, struct file *file) 
     260{ 
     261        int nRtnValue = 0; 
     262        int minor; 
     263        dev_t device = inode->i_rdev; 
     264 
     265        minor = MINOR(device); 
     266        printk(KERN_INFO "audio_open_method: MINOR=%d\n", minor); 
     267 
     268        mcp_enable(); 
     269 
     270        return nRtnValue; 
     271} 
     272 
     273static int audio_release_method (struct inode *inode, struct file *file) 
     274{ 
     275        DCSR15 = 0x00000000;                                            // DMA Control/Status15 (Stop the DMA) 
     276 
     277        printk(KERN_INFO "audio_release\n"); 
     278 
     279 
     280        dma_free_coherent(NULL, sizeof(DmaDesc) * 16, (void*)pDescs, (dma_addr_t)pDescsPhys); 
     281        dma_free_coherent(NULL, BUFFSIZE, (void*)pBuffer, (dma_addr_t)pBufferPhys); 
     282 
     283        return 0; 
     284} 
     285 
     286module_init(audio_driver_init); 
     287module_exit(audio_driver_exit); 
     288 
     289MODULE_AUTHOR("Aeronix"); 
     290MODULE_LICENSE("GPL"); 
  • /dev/null

    old new  
     1#ifndef __AUDIO_PXA_H_ 
     2#define __AUDIO_PXA_H_ 
     3 
     4 
     5#define MCP_MAJOR 14 
     6 
     7static void mcp_enable(void); 
     8 
     9const unsigned long PxaRegsOffset = 0x40000000; 
     10 
     11#define AccessReg(offset) *((volatile unsigned long *)(PxaRegsOffset + offset)) 
     12 
     13char * pWriteAddress; 
     14 
     15typedef struct tagDmaDesc 
     16{ 
     17        unsigned long DDADR; 
     18        unsigned long DSADR; 
     19        unsigned long DTADR; 
     20        unsigned long DCMD; 
     21} DmaDesc; 
     22 
     23#define BUFFSIZE (16 * 6 * 1024) 
     24 
     25char *pBuffer; 
     26char *pBufferPhys; 
     27 
     28DmaDesc *pDescs; 
     29DmaDesc * pDescsPhys; 
     30 
     31/* FILE FOPS */ 
     32static ssize_t audio_read_method (struct file *file, char *buf, size_t count, loff_t *offset); 
     33static ssize_t audio_write_method (struct file *file, const char *buf, size_t count, loff_t *offset); 
     34static int audio_ioctl_method (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); 
     35static int audio_open_method (struct inode *inode, struct file *file); 
     36static int audio_release_method (struct inode *inode, struct file *file); 
     37 
     38 
     39#endif //__AUDIO_PXA_H_ 
     40 
  • /dev/null

    old new  
     1# 
     2# Misc strange devices 
     3# 
     4 
     5menu "PXA gpio driver" 
     6 
     7config GPIO 
     8        tristate "Device driver for PXA gpio" 
     9        depends on ARCH_PXA 
     10        ---help--- 
     11          This option enables device driver support for PXA gpio. 
     12 
     13          If unsure, say N. 
     14 
     15endmenu 
  • /dev/null

    old new  
     1# 
     2# Makefile for gpio driver. 
     3# 
     4 
     5obj-$(CONFIG_GPIO)      := gpio_driver.o 
  • /dev/null

    old new  
     1/* 
     2 *      PXA GPIO Driver 
     3 * 
     4 *      Copyright (C) 2007 Aeronix 
     5 * 
     6 *      This driver allows controls the gpios on the PXA processor 
     7 * 
     8 *      This program is free software; you can redistribute it and/or 
     9 *      modify it under the terms of the GNU General Public License 
     10 *      as published by the Free Software Foundation; either version 
     11 *      2 of the License, or (at your option) any later version. 
     12 * 
     13 */ 
     14 
     15#include <linux/module.h> 
     16#include <linux/kernel.h> 
     17#include <linux/proc_fs.h> 
     18#include <linux/fs.h> 
     19#include <linux/gpio-ioctl.h> 
     20#include <asm/uaccess.h> 
     21#include <linux/ioport.h> 
     22#include <asm/io.h> 
     23#include <asm/arch/pxa-regs.h> 
     24#include "gpio_driver.h" 
     25 
     26extern void kernel_restart(char *cmd); 
     27 
     28extern int pxa_gpio_mode( int gpio_mode ); 
     29extern int pxa_gpio_get_value(unsigned gpio); 
     30extern void pxa_gpio_set_value(unsigned gpio, int value); 
     31//extern void pxa_set_pwrmode(unsigned int nPwrMode); 
     32 
     33static void HandleWriteCameraFrameData(int nFrameBufferAddress) 
     34{ 
     35        unsigned long * pulStartOfFrameBufferLine = (unsigned long*)nFrameBufferAddress; 
     36        unsigned long * pulCurrentFrameBufferPosistion = pulStartOfFrameBufferLine; 
     37 
     38        unsigned long ulCICR0data = CICR0; 
     39        unsigned long ulCISRdata; 
     40        unsigned long ulCIBR0data; 
     41        unsigned long ulCIFRdata; 
     42 
     43        unsigned long ulPixelData; 
     44        unsigned int ulPrintCount = 0; 
     45 
     46        int nIgnore; 
     47 
     48        int nNumberOfLines = 0; 
     49        int nNumberOfPixels = 0; 
     50 
     51        printk(KERN_INFO "HandleWriteCameraFrameData 0x%lX:0x%lX\n",(unsigned long) pulStartOfFrameBufferLine,(unsigned long) CICR1); 
     52        ulCICR0data |= 0x10000000; 
     53 
     54        CICR0 = ulCICR0data; 
     55 
     56        //find start of frame 
     57        do 
     58        { 
     59                ulCISRdata = CISR; 
     60 
     61        }while((ulCISRdata & 0x10) == 0); 
     62 
     63        //writeback to clear sticky bit 
     64        CISR = ulCISRdata; 
     65 
     66 
     67        //find start of frame 
     68        do 
     69        { 
     70                ulCISRdata = CISR; 
     71 
     72                ulCIBR0data = CIBR0; 
     73 
     74        }while((ulCISRdata & 0x1000) == 0); 
     75 
     76        //writeback to clear sticky bit 
     77        CISR = ulCISRdata; 
     78 
     79 
     80        printk(KERN_INFO "Camera get frame data.\n"); 
     81 
     82 
     83        do 
     84        { 
     85                nNumberOfPixels = 0; 
     86 
     87                do 
     88                { 
     89                        do 
     90                        { 
     91                                ulCIFRdata = CIFR; 
     92 
     93                        }while((ulCIFRdata & 0xfc00) == 0); 
     94 
     95 
     96                        ulCIBR0data = CIBR0; 
     97 
     98                        ulPixelData = ((ulCIBR0data & 0xffff0000) >> 16) | ((ulCIBR0data & 0x0000ffff) << 16); 
     99 
     100                        ulPrintCount++; 
     101 
     102                        nIgnore = copy_to_user((u32 *) pulCurrentFrameBufferPosistion, &ulPixelData, sizeof(u32)); 
     103                        pulCurrentFrameBufferPosistion++; 
     104 
     105                        nNumberOfPixels += 2; 
     106 
     107                        ulCISRdata = CISR; 
     108 
     109                }while((ulCISRdata & 0x100) == 0); 
     110 
     111                //writeback to clear sticky bit 
     112                CISR = ulCISRdata & 0x100; 
     113 
     114                ulCISRdata = CISR; 
     115 
     116                nNumberOfLines++; 
     117 
     118        }while((ulCISRdata & 0x8) == 0); 
     119 
     120        printk(KERN_INFO "Camera %d:%d \n",nNumberOfPixels,nNumberOfLines); 
     121 
     122} 
     123 
     124static void SetPwmClockEnable(int nEnable) 
     125{ 
     126  pxa_set_cken(CKEN0_PWM0, nEnable); 
     127} 
     128 
     129static void SetPwmPrescale(int nPWM, int nPrescaleValue) 
     130{ 
     131   switch(nPWM) 
     132   { 
     133      case 0: 
     134       PWM_CTRL0 = (nPrescaleValue & 0x7F); 
     135       break; 
     136      case 1: 
     137       PWM_CTRL1 = (nPrescaleValue & 0x7F); 
     138       break; 
     139      case 2: 
     140       PWM_CTRL2 = (nPrescaleValue & 0x7F); 
     141       break; 
     142   } 
     143} 
     144 
     145static void SetPwmDutyCycle(int nPWM, int nDutyCycle) 
     146{ 
     147   switch(nPWM) 
     148   { 
     149     case 0: 
     150      PWM_PWDUTY0 = nDutyCycle & 0x7FF; 
     151      break; 
     152     case 1: 
     153      PWM_PWDUTY1 = nDutyCycle & 0x7FF; 
     154      break; 
     155     case 2: 
     156      PWM_PWDUTY2 = nDutyCycle & 0x7FF; 
     157      break; 
     158   } 
     159} 
     160 
     161static void SetPwmPeriod(int nPWM, int nPeriod) 
     162{ 
     163  switch(nPWM) 
     164  { 
     165    case 0: 
     166     PWM_PERVAL0 = nPeriod & 0x3FF; 
     167     break; 
     168    case 1: 
     169     PWM_PERVAL1 = nPeriod & 0x3FF; 
     170     break; 
     171    case 2: 
     172     PWM_PERVAL2 = nPeriod & 0x3FF; 
     173     break; 
     174  } 
     175} 
     176 
     177static void SetGpioMode(int nGpio, gpioMode gmMode) 
     178{ 
     179     int nGpioMode = nGpio; 
     180 
     181     switch(gmMode) 
     182     { 
     183       case GPIO_MODE_INPUT: 
     184                    nGpioMode |= GPIO_IN; 
     185                    pxa_gpio_mode(nGpioMode); 
     186 
     187                    if(nGpio < 32) 
     188                                GPDR0 &= ~GPIO_bit(nGpio); 
     189                        else if(nGpio < 64) 
     190                                GPDR1 &= ~GPIO_bit(nGpio); 
     191                        else if(nGpio < 96) 
     192                                GPDR2 &= ~GPIO_bit(nGpio); 
     193                        else if(nGpio < 128) 
     194                                GPDR3 &= ~GPIO_bit(nGpio); 
     195 
     196            break; 
     197 
     198       case GPIO_MODE_OUTPUT: 
     199                    nGpioMode |= GPIO_OUT; 
     200                    pxa_gpio_mode(nGpioMode); 
     201 
     202                    if(nGpio < 32) 
     203                                GPDR0 |= GPIO_bit(nGpio); 
     204                        else if(nGpio < 64) 
     205                                GPDR1 |= GPIO_bit(nGpio); 
     206                        else if(nGpio < 96) 
     207                                GPDR2 |= GPIO_bit(nGpio); 
     208                        else if(nGpio < 128) 
     209                                GPDR3 |= GPIO_bit(nGpio); 
     210 
     211            break; 
     212 
     213       case GPIO_MODE_ALT_FUNC_1_IN: 
     214            nGpioMode |= GPIO_ALT_FN_1_IN; 
     215                        pxa_gpio_mode(nGpioMode); 
     216            break; 
     217 
     218       case GPIO_MODE_ALT_FUNC_1_OUT: 
     219            nGpioMode |= GPIO_ALT_FN_1_OUT; 
     220                        pxa_gpio_mode(nGpioMode); 
     221            break; 
     222 
     223       case GPIO_MODE_ALT_FUNC_2_IN: 
     224            nGpioMode |= GPIO_ALT_FN_2_IN; 
     225                        pxa_gpio_mode(nGpioMode); 
     226            break; 
     227 
     228       case GPIO_MODE_ALT_FUNC_2_OUT: 
     229            nGpioMode |= GPIO_ALT_FN_2_OUT; 
     230                        pxa_gpio_mode(nGpioMode); 
     231            break; 
     232 
     233       case GPIO_MODE_ALT_FUNC_3_IN: 
     234            nGpioMode |= GPIO_ALT_FN_3_IN; 
     235                        pxa_gpio_mode(nGpioMode); 
     236            break; 
     237 
     238       case GPIO_MODE_ALT_FUNC_3_OUT: 
     239            nGpioMode |= GPIO_ALT_FN_3_OUT; 
     240                        pxa_gpio_mode(nGpioMode); 
     241          break; 
     242     }//end switch statement 
     243#if 0 
     244         printk(KERN_NOTICE "nGpioMode 0x%x \n",nGpioMode); 
     245 
     246         nRegData = GAFR0_L; 
     247         printk(KERN_NOTICE "GAFR0_L 0x%x \n",nRegData); 
     248         nRegData = GAFR0_U; 
     249         printk(KERN_NOTICE "GAFR0_U 0x%x \n",nRegData); 
     250 
     251         nRegData = GAFR1_L; 
     252         printk(KERN_NOTICE "GAFR1_L 0x%x \n",nRegData); 
     253         nRegData = GAFR1_U; 
     254         printk(KERN_NOTICE "GAFR1_U 0x%x \n",nRegData); 
     255 
     256         nRegData = GAFR2_L; 
     257         printk(KERN_NOTICE "GAFR2_L 0x%x \n",nRegData); 
     258         nRegData = GAFR2_U; 
     259         printk(KERN_NOTICE "GAFR2_U 0x%x \n",nRegData); 
     260 
     261         nRegData = GAFR3_L; 
     262         printk(KERN_NOTICE "GAFR3_L 0x%x \n",nRegData); 
     263         nRegData = GAFR3_U; 
     264         printk(KERN_NOTICE "GAFR3_U 0x%x \n",nRegData); 
     265 
     266     nRegData = GPDR0; 
     267         printk(KERN_NOTICE "GPDR0 0x%x \n",nRegData); 
     268 
     269     nRegData = GPDR1; 
     270         printk(KERN_NOTICE "GPDR1 0x%x \n",nRegData); 
     271 
     272         nRegData = GPDR2; 
     273         printk(KERN_NOTICE "GPDR2 0x%x \n",nRegData); 
     274 
     275         nRegData = GPDR3; 
     276         printk(KERN_NOTICE "GPDR3 0x%x \n",nRegData); 
     277#endif 
     278} 
     279 
     280 
     281static struct file_operations gpio_driver_fops = { 
     282                owner:                  THIS_MODULE, 
     283                llseek:                 no_llseek, 
     284                read:                   gpio_read_method, 
     285                write:          gpio_write_method, 
     286        ioctl:          gpio_ioctl_method, 
     287        open:           gpio_open_method, 
     288        release:        gpio_release_method, 
     289}; 
     290 
     291 
     292static int __init gpio_driver_init(void) 
     293{ 
     294        int rc; 
     295 
     296        printk(KERN_NOTICE "Register GPIO driver...\n"); 
     297        rc = register_chrdev(GPIO_MAJOR,"gpio",&gpio_driver_fops); 
     298 
     299        return rc; 
     300} 
     301 
     302static void __exit gpio_driver_exit(void) 
     303{ 
     304        printk(KERN_NOTICE "Remove GPIO driver...\n"); 
     305    unregister_chrdev(GPIO_MAJOR,"gpio"); 
     306 
     307 
     308} 
     309 
     310/* FILE FOPS */ 
     311static ssize_t gpio_read_method (struct file *file, char *buf, size_t count, loff_t *offset) 
     312{ 
     313  int ret = 0; 
     314 
     315  return ret; 
     316} 
     317 
     318static ssize_t gpio_write_method (struct file *file, const char *buf, size_t count, loff_t *offset) 
     319{ 
     320        int ret = 0; 
     321 
     322        return ret; 
     323} 
     324 
     325static unsigned long ulIoWriteAddress = 0; 
     326 
     327static int gpio_ioctl_method (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) 
     328{ 
     329        int nRtnValue = 0; 
     330        int nVersion = GPIO_IOCTL_API_VERSION; 
     331        int nUserArg; 
     332 
     333        int nGpio; 
     334        int nValue; 
     335 
     336        int nIgnore; 
     337 
     338        nIgnore = copy_from_user(&nUserArg, (u32 *) arg, sizeof(int)); 
     339 
     340        switch(cmd) 
     341        { 
     342                case GPIO_DRV_GETVERSION: 
     343                        nIgnore = copy_to_user((u32 *) arg, &nVersion, sizeof(u32)); 
     344                        break; 
     345 
     346                case GPIO_DRV_SET_GPIO: 
     347                        nGpio = (nUserArg & 0xffff0000) >> 16; 
     348                        nValue  = (nUserArg & 0x00000001); 
     349 
     350                        //printk(KERN_NOTICE "gpio_ioctl_method pxa_gpio_set_value GPIO=%d, Value=0x%x...\n",nGpio,nValue); 
     351 
     352                        pxa_gpio_set_value(nGpio,nValue); 
     353 
     354                        break; 
     355                case GPIO_DRV_GET_GPIO: 
     356                        nGpio = (nUserArg & 0xffff0000) >> 16; 
     357 
     358                        nUserArg = (int)pxa_gpio_get_value(nGpio); 
     359 
     360//                      printk(KERN_NOTICE "gpio_ioctl_method pxa_gpio_get_value GPIO=%d, Value=0x%x...\n",nGpio,nUserArg); 
     361 
     362                        nIgnore = copy_to_user((u32 *) arg, &nUserArg, sizeof(u32)); 
     363                        break; 
     364 
     365                case GPIO_DRV_SET_MODE: 
     366                        nGpio = (nUserArg & 0xffff0000) >> 16; 
     367                        nValue  = (nUserArg & 0x0000ffff); 
     368 
     369                        //printk(KERN_NOTICE "gpio_ioctl_method pxa_gpio_mode GPIO=%d, Value=0x%x...\n",nGpio,nValue); 
     370 
     371                        SetGpioMode(nGpio, (gpioMode)nValue); 
     372                        break; 
     373 
     374        case GPIO_DRV_SET_PWM_PRESCALE: 
     375            nGpio = (nUserArg & 0xffff0000) >> 16; 
     376            nValue = (nUserArg & 0x0000ffff); 
     377            SetPwmPrescale(nGpio, nValue); 
     378            break; 
     379 
     380        case GPIO_DRV_SET_PWM_DUTYCYCLE: 
     381            nGpio = (nUserArg & 0xffff0000) >> 16; 
     382            nValue = (nUserArg & 0x0000ffff); 
     383            SetPwmDutyCycle(nGpio, nValue); 
     384            break; 
     385 
     386        case GPIO_DRV_SET_PWM_PERIOD: 
     387            nGpio = (nUserArg & 0xffff0000) >> 16; 
     388            nValue = (nUserArg & 0x0000ffff); 
     389            SetPwmPeriod(nGpio, nValue); 
     390            break; 
     391 
     392        case GPIO_DRV_SET_PWM_CLK_ENABLE: 
     393            SetPwmClockEnable(nUserArg); 
     394             break; 
     395 
     396                case GPIO_DRV_SET_PWRMODE: 
     397                        nUserArg &= 0x0f; 
     398 
     399                        printk(KERN_NOTICE "gpio_ioctl_method GPIO_DRV_SET_PWRMODE mode=0x%x...\n",nUserArg); 
     400 
     401                        asm( "mcr p14, 0, %0, c7, c0, 0" :: "r" (nUserArg) ); 
     402                        break; 
     403 
     404                case GPIO_DRV_SET_CLKCFG: 
     405                        nUserArg &= 0x0f; 
     406 
     407                        printk(KERN_NOTICE "gpio_ioctl_method GPIO_DRV_SET_CLKCFG mode=0x%x...\n",nUserArg); 
     408 
     409                        asm( "mcr p14, 0, %0, c6, c0, 0" :: "r" (nUserArg) ); 
     410                        break; 
     411 
     412                case GPIO_DRV_IO_READ: 
     413 
     414                        if(nUserArg < 0x80000000) 
     415                                nUserArg = __REG(nUserArg); 
     416 
     417                        nIgnore = copy_to_user((u32 *) arg, &nUserArg, sizeof(u32)); 
     418                        break; 
     419 
     420                case GPIO_DRV_SET_IO_WRITE_ADDRESS: 
     421                        if(nUserArg < 0x80000000) 
     422                                ulIoWriteAddress = (unsigned long)nUserArg; 
     423                        break; 
     424 
     425                case GPIO_DRV_IO_WRITE: 
     426 
     427                        if((ulIoWriteAddress > 0) && (ulIoWriteAddress < 0x80000000)) 
     428                                 __REG(ulIoWriteAddress) = nUserArg; 
     429 
     430                        break; 
     431 
     432                case GPIO_DRV_GET_CAMERA_FRAME: 
     433                        HandleWriteCameraFrameData(nUserArg); 
     434                        break; 
     435 
     436                case GPIO_DRV_RESET_SYSTEM: 
     437                        kernel_restart(NULL); 
     438 
     439                        break; 
     440 
     441                default: 
     442                        printk(KERN_NOTICE "gpio_ioctl_method cmd=0x%x, arg=0x%x...\n",cmd,nUserArg); 
     443                        break; 
     444        } 
     445 
     446        return nRtnValue; 
     447} 
     448 
     449static int gpio_open_method (struct inode *inode, struct file *file) 
     450{ 
     451        int nRtnValue = 0; 
     452 
     453        return nRtnValue; 
     454} 
     455 
     456static int gpio_release_method (struct inode *inode, struct file *file) 
     457{ 
     458        int nRtnValue = 0; 
     459 
     460        return nRtnValue; 
     461} 
     462 
     463module_init(gpio_driver_init); 
     464module_exit(gpio_driver_exit); 
     465 
     466#if 0 
     467 
     468void cntrlFrontPanelLed(fpLed_e eWhichLed, ledControl_e eOn) 
     469{ 
     470        setGpio(2,(char)eWhichLed,(char)eOn); 
     471} 
     472 
     473 
     474 
     475EXPORT_SYMBOL(cntrlFrontPanelLed); 
     476#endif 
     477 
     478MODULE_AUTHOR("Aeronix"); 
     479MODULE_LICENSE("GPL"); 
  • /dev/null

    old new  
     1#ifndef __GPIO_DRIVER_H_ 
     2#define __GPIO_DRIVER_H_ 
     3 
     4 
     5#define GPIO_MAJOR 101 
     6 
     7/* FILE FOPS */ 
     8static ssize_t gpio_read_method (struct file *file, char *buf, size_t count, loff_t *offset); 
     9static ssize_t gpio_write_method (struct file *file, const char *buf, size_t count, loff_t *offset); 
     10static int gpio_ioctl_method (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); 
     11static int gpio_open_method (struct inode *inode, struct file *file); 
     12static int gpio_release_method (struct inode *inode, struct file *file); 
     13 
     14 
     15#endif //__GPIO_DRIVER_H_ 
     16 
  • a/drivers/mmc/mmc.c

    old new  
    709709        resp[2] = card->raw_scr[0]; 
    710710 
    711711        scr_struct = UNSTUFF_BITS(resp, 60, 4); 
    712         if (scr_struct != 0) { 
     712 
     713        printk("%s: SCR structure version %d\n",mmc_hostname(card->host), scr_struct); 
     714        if (scr_struct > 1) { 
    713715                printk("%s: unrecognised SCR structure version %d\n", 
    714716                        mmc_hostname(card->host), scr_struct); 
    715717                mmc_card_set_bad(card); 
     
    15191521 */ 
    15201522void mmc_detect_change(struct mmc_host *host, unsigned long delay) 
    15211523{ 
     1524        printk(KERN_INFO"mmc_detect_change delay = %d \n",delay); 
     1525 
    15221526        mmc_schedule_delayed_work(&host->detect, delay); 
    15231527} 
    15241528 
     
    15341538 
    15351539        mmc_claim_host(host); 
    15361540 
     1541 
     1542        printk(KERN_INFO"mmc_rescan...\n"); 
     1543 
    15371544        /* 
    15381545         * Check for removed cards and newly inserted ones. We check for 
    15391546         * removed cards first so we can intelligently re-select the VDD. 
     
    15741581                        if (mmc_register_card(card)) 
    15751582                                mmc_card_set_dead(card); 
    15761583                        else 
     1584                        { 
    15771585                                mmc_card_set_present(card); 
     1586 
     1587//                              printk(KERN_INFO"CARD FOUND send ADD event 0x%x\n",&host->parent->kobj); 
     1588 
     1589//                              kobject_uevent(&host->parent->kobj, KOBJ_CHANGE); 
     1590                        } 
    15781591                } 
    15791592 
    15801593                /* 
     
    15831596                if (mmc_card_dead(card)) { 
    15841597                        list_del(&card->node); 
    15851598                        mmc_remove_card(card); 
     1599 
     1600//                      printk(KERN_INFO"CARD REMOVED send ADD event 0x%x\n",&host->parent->kobj); 
     1601//                      kobject_uevent(&host->parent->kobj, KOBJ_CHANGE); 
    15861602                } 
    15871603        } 
    15881604 
  • a/drivers/mmc/mmc_block.c

    old new  
    4444 */ 
    4545#define MMC_SHIFT       3 
    4646 
    47 static int major; 
     47//static int major; 
     48static int major = 179; 
    4849 
    4950/* 
    5051 * There is one mmc_blk_data per slot. 
  • a/drivers/mmc/mmc_queue.c

    old new  
    2828        struct mmc_queue *mq = q->queuedata; 
    2929        int ret = BLKPREP_KILL; 
    3030 
    31         if (blk_special_request(req)) { 
    32                 /* 
    33                  * Special commands already have the command 
    34                  * blocks already setup in req->special. 
    35                  */ 
    36                 BUG_ON(!req->special); 
    37  
    38                 ret = BLKPREP_OK; 
    39         } else if (blk_fs_request(req) || blk_pc_request(req)) { 
    40                 /* 
    41                  * Block I/O requests need translating according 
    42                  * to the protocol. 
    43                  */ 
    44                 ret = mq->prep_fn(mq, req); 
    45         } else { 
    46                 /* 
    47                  * Everything else is invalid. 
    48                  */ 
    49                 blk_dump_rq_flags(req, "MMC bad request"); 
    50         } 
     31        if(mq) 
     32        { 
     33                if (blk_special_request(req)) { 
     34                        /* 
     35                         * Special commands already have the command 
     36                         * blocks already setup in req->special. 
     37                         */ 
     38                        BUG_ON(!req->special); 
     39 
     40                        ret = BLKPREP_OK; 
     41                } else if (blk_fs_request(req) || blk_pc_request(req)) { 
     42                        /* 
     43                         * Block I/O requests need translating according 
     44                         * to the protocol. 
     45                         */ 
     46                        ret = mq->prep_fn(mq, req); 
     47                } else { 
     48                        /* 
     49                         * Everything else is invalid. 
     50                         */ 
     51                        blk_dump_rq_flags(req, "MMC bad request"); 
     52                } 
     53        }//end check for mq 
    5154 
    5255        if (ret == BLKPREP_OK) 
    5356                req->cmd_flags |= REQ_DONTPREP; 
  • a/drivers/mtd/chips/cfi_cmdset_0001.c

    old new  
    220220        } 
    221221} 
    222222 
     223static void fixup_intel_unlock(struct mtd_info *mtd, void *param) 
     224{ 
     225        /* unlock partitions */ 
     226        mtd->flags |= MTD_STUPID_LOCK; 
     227} 
     228 
    223229static struct cfi_fixup cfi_fixup_table[] = { 
    224230#ifdef CMDSET0001_DISABLE_ERASE_SUSPEND_ON_WRITE 
    225231        { CFI_MFR_ANY, CFI_ID_ANY, fixup_intel_strataflash, NULL }, 
     
    232238#endif 
    233239        { CFI_MFR_ST, 0x00ba, /* M28W320CT */ fixup_st_m28w320ct, NULL }, 
    234240        { CFI_MFR_ST, 0x00bb, /* M28W320CB */ fixup_st_m28w320cb, NULL }, 
     241        { CFI_MFR_ANY, CFI_ID_ANY, fixup_intel_unlock, NULL }, 
    235242        { 0, 0, NULL, NULL } 
    236243}; 
    237244 
  • a/drivers/mtd/maps/mainstone-flash.c

    old new  
    3636static void mainstone_map_inval_cache(struct map_info *map, unsigned long from, 
    3737                                      ssize_t len) 
    3838{ 
    39         consistent_sync((char *)map->cached + from, len, DMA_FROM_DEVICE); 
     39 
     40//      printk(KERN_NOTICE "TEST: 0x%08lX, 0x%08lX, 0x%08lX, 0x%08lX\n", map, map->cached, from, len); 
     41//      consistent_sync((char *)map->cached + from, len, DMA_FROM_DEVICE); 
    4042} 
    4143 
    4244static struct map_info mainstone_maps[2] = { { 
     
    5254static struct mtd_partition mainstone_partitions[] = { 
    5355        { 
    5456                .name =         "Bootloader", 
    55                 .size =         0x00040000, 
     57                .size =         0x00010000, 
    5658                .offset =       0, 
    57               .mask_flags =   MTD_WRITEABLE  /* force read-only */ 
     59/* JWK in production, we may want this protected              .mask_flags =   MTD_WRITEABLE  /* force read-only */ 
    5860        },{ 
    5961                .name =         "Kernel", 
    60                 .size =         0x00400000, 
    61                 .offset =       0x00040000, 
     62                .size =         0x00230000, 
     63                .offset =       0x00010000, 
    6264        },{ 
    6365                .name =         "Filesystem", 
    6466                .size =         MTDPART_SIZ_FULL, 
    65                 .offset =       0x00440000 
     67                .offset =       0x00240000 
    6668        } 
    6769}; 
    6870 
     
    8789        printk(KERN_NOTICE "Mainstone configured to boot from %s\n", 
    8890               mainstone_maps[0].name); 
    8991 
    90         for (i = 0; i < 2; i++) { 
     92        for (i = 0; i < 1; i++) { 
    9193                mainstone_maps[i].virt = ioremap(mainstone_maps[i].phys, 
    9294                                                 WINDOW_SIZE); 
     95        printk(KERN_NOTICE "Mainstone configured: 0x%08lX, 0x%08lX, 0x%08lX \n", mainstone_maps[i].phys, mainstone_maps[i].virt, WINDOW_SIZE); 
     96 
    9397                if (!mainstone_maps[i].virt) { 
    9498                        printk(KERN_WARNING "Failed to ioremap %s\n", 
    9599                               mainstone_maps[i].name); 
     
    97101                                ret = -ENOMEM; 
    98102                        continue; 
    99103                } 
     104/* 
    100105                mainstone_maps[i].cached = 
    101106                        ioremap_cached(mainstone_maps[i].phys, WINDOW_SIZE); 
    102107                if (!mainstone_maps[i].cached) 
    103108                        printk(KERN_WARNING "Failed to ioremap cached %s\n", 
    104109                               mainstone_maps[i].name); 
     110*/ 
    105111                simple_map_init(&mainstone_maps[i]); 
    106112 
    107113                printk(KERN_NOTICE 
     
    132138        if (!mymtds[0] && !mymtds[1]) 
    133139                return ret; 
    134140 
    135         for (i = 0; i < 2; i++) { 
     141        for (i = 0; i < 1; i++) { 
    136142                if (!mymtds[i]) { 
    137143                        printk(KERN_WARNING "%s is absent. Skipping\n", 
    138144                               mainstone_maps[i].name); 
     
    156162static void __exit cleanup_mainstone(void) 
    157163{ 
    158164        int i; 
    159         for (i = 0; i < 2; i++) { 
     165        for (i = 0; i < 1; i++) { 
    160166                if (!mymtds[i]) 
    161167                        continue; 
    162168 
  • a/drivers/video/fbmem.c

    old new  
    5757/* 
    5858 * Helpers 
    5959 */ 
     60extern const struct linux_logo logo_zipit_clut224; 
     61 
     62const struct linux_logo *fb_find_zipit_logo() 
     63{ 
     64        const struct linux_logo *logo = NULL; 
     65 
     66        logo = &logo_zipit_clut224; 
     67 
     68        return logo; 
     69} 
     70 
    6071 
    6172int fb_get_color_depth(struct fb_var_screeninfo *var, 
    6273                       struct fb_fix_screeninfo *fix) 
     
    404415        } else if (rotate == FB_ROTATE_CCW) { 
    405416                for (x = 0; x < num_online_cpus() && 
    406417                             x * (fb_logo.logo->width + 8) <= 
    407                              info->var.yres - fb_logo.logo->width; x++) { 
     418                             (info->var.yres + 10) - fb_logo.logo->width; x++) { 
    408419                        info->fbops->fb_imageblit(info, image); 
    409420                        image->dy -= fb_logo.logo->width + 8; 
    410421                } 
     
    450461        } 
    451462 
    452463        /* Return if no suitable logo was found */ 
    453         fb_logo.logo = fb_find_logo(depth); 
     464        fb_logo.logo = fb_find_zipit_logo(); 
    454465 
    455466        if (!fb_logo.logo) { 
    456467                return 0; 
    457468        } 
    458          
     469 
    459470        if (rotate == FB_ROTATE_UR || rotate == FB_ROTATE_UD) 
    460471                yres = info->var.yres; 
    461472        else 
     
    472483        else if (fb_logo.logo->type == LINUX_LOGO_VGA16) 
    473484                fb_logo.depth = 4; 
    474485        else 
    475                 fb_logo.depth = 1;              
     486                fb_logo.depth = 1; 
    476487        return fb_logo.logo->height; 
    477488} 
    478489 
     
    486497        if (fb_logo.logo == NULL || info->state != FBINFO_STATE_RUNNING) 
    487498                return 0; 
    488499 
     500        printk(KERN_NOTICE "ZIPIT2 - SHOW LOGO \n"); 
    489501        image.depth = 8; 
    490502        image.data = fb_logo.logo->data; 
    491503 
    492504        if (fb_logo.needs_cmapreset) 
    493505                fb_set_logocmap(info, fb_logo.logo); 
    494506 
    495         if (fb_logo.needs_truepalette ||  
     507        if (fb_logo.needs_truepalette || 
    496508            fb_logo.needs_directpalette) { 
    497509                palette = kmalloc(256 * 4, GFP_KERNEL); 
    498510                if (palette == NULL) 
     
    508520        } 
    509521 
    510522        if (fb_logo.depth <= 4) { 
    511                 logo_new = kmalloc(fb_logo.logo->width * fb_logo.logo->height,  
     523                logo_new = kmalloc(fb_logo.logo->width * fb_logo.logo->height, 
    512524                                   GFP_KERNEL); 
    513525                if (logo_new == NULL) { 
    514526                        kfree(palette); 
     
    520532                fb_set_logo(info, fb_logo.logo, logo_new, fb_logo.depth); 
    521533        } 
    522534 
    523         image.dx = 0; 
    524         image.dy = 0; 
    525535        image.width = fb_logo.logo->width; 
    526536        image.height = fb_logo.logo->height; 
    527537 
     538        image.dx = 0; 
     539        image.dy = 0; 
     540 
    528541        if (rotate) { 
    529542                logo_rotate = kmalloc(fb_logo.logo->width * 
    530543                                      fb_logo.logo->height, GFP_KERNEL); 
     
    532545                        fb_rotate_logo(info, logo_rotate, &image, rotate); 
    533546        } 
    534547 
     548        //center image on screen 
     549        image.dx = (info->var.xres - image.width)>>1; 
     550        image.dy = (info->var.yres - image.height)>>1; 
     551 
    535552        fb_do_show_logo(info, &image, rotate); 
    536553 
    537554        kfree(palette); 
     
    587604 
    588605        if (info->fbops->fb_read) 
    589606                return info->fbops->fb_read(file, buf, count, ppos); 
    590          
     607 
    591608        total_size = info->screen_size; 
    592609 
    593610        if (total_size == 0) 
     
    662679 
    663680        if (info->fbops->fb_write) 
    664681                return info->fbops->fb_write(file, buf, count, ppos); 
    665          
     682 
    666683        total_size = info->screen_size; 
    667684 
    668685        if (total_size == 0) 
     
    729746#ifdef CONFIG_KMOD 
    730747static void try_to_load(int fb) 
    731748{ 
     749        printk(KERN_NOTICE "ZIPIT2 - try_to_load \n"); 
    732750        request_module("fb%d", fb); 
    733751} 
    734752#endif /* CONFIG_KMOD */ 
     
    844862 
    845863int 
    846864fb_blank(struct fb_info *info, int blank) 
    847 {       
     865{ 
    848866        int ret = -EINVAL; 
    849867 
    850868        if (blank > FB_BLANK_POWERDOWN) 
     
    864882        return ret; 
    865883} 
    866884 
    867 static int  
     885static int 
    868886fb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 
    869887         unsigned long arg) 
    870888{ 
     
    878896        struct fb_event event; 
    879897        void __user *argp = (void __user *)arg; 
    880898        int i; 
    881          
     899 
    882900        if (!fb) 
    883901                return -ENODEV; 
    884902        switch (cmd) { 
     
    898916                        return -EFAULT; 
    899917                return 0; 
    900918        case FBIOGET_FSCREENINFO: 
     919                printk(KERN_NOTICE "ZIPIT2 - fb_ioctl FBIOGET_FSCREENINFO \n"); 
    901920                return copy_to_user(argp, &info->fix, 
    902921                                    sizeof(fix)) ? -EFAULT : 0; 
    903922        case FBIOPUTCMAP: 
     
    10991118                break; 
    11001119 
    11011120        case FBIOGET_FSCREENINFO: 
     1121                printk(KERN_NOTICE "ZIPIT2 - fb_compat_ioctl FBIOGET_FSCREENINFO \n"); 
    11021122                ret = fb_get_fscreeninfo(inode, file, cmd, arg); 
    11031123                break; 
    11041124 
     
    11171137} 
    11181138#endif 
    11191139 
    1120 static int  
     1140static int 
    11211141fb_mmap(struct file *file, struct vm_area_struct * vma) 
    11221142{ 
    11231143        int fbidx = iminor(file->f_path.dentry->d_inode); 
     
    11281148        unsigned long start; 
    11291149        u32 len; 
    11301150#endif 
     1151        printk(KERN_NOTICE "ZIPIT2 - fb_mmap....\n"); 
    11311152 
    11321153        if (vma->vm_pgoff > (~0UL >> PAGE_SHIFT)) 
    11331154                return -EINVAL; 
     
    12201241        struct fb_info *info; 
    12211242        int res = 0; 
    12221243 
     1244        printk(KERN_NOTICE "ZIPIT2 - fb_open \n"); 
     1245 
    12231246        if (fbidx >= FB_MAX) 
    12241247                return -ENODEV; 
    12251248#ifdef CONFIG_KMOD 
     
    12271250                try_to_load(fbidx); 
    12281251#endif /* CONFIG_KMOD */ 
    12291252        if (!(info = registered_fb[fbidx])) 
     1253        { 
     1254                printk(KERN_NOTICE "ZIPIT2 - error getting registered fb(1) \n"); 
    12301255                return -ENODEV; 
     1256        } 
    12311257        if (!try_module_get(info->fbops->owner)) 
     1258        { 
     1259                printk(KERN_NOTICE "ZIPIT2 - error getting registered fb(2) \n"); 
    12321260                return -ENODEV; 
     1261        } 
    12331262        file->private_data = info; 
    12341263        if (info->fbops->fb_open) { 
    12351264                res = info->fbops->fb_open(info,1); 
     
    12391268        return res; 
    12401269} 
    12411270 
    1242 static int  
     1271static int 
    12431272fb_release(struct inode *inode, struct file *file) 
    12441273{ 
    12451274        struct fb_info * const info = file->private_data; 
     
    12871316        struct fb_event event; 
    12881317        struct fb_videomode mode; 
    12891318 
     1319        printk(KERN_NOTICE "ZIPIT2 - register_framebuffer \n"); 
    12901320        if (num_registered_fb == FB_MAX) 
    12911321                return -ENXIO; 
    12921322        num_registered_fb++; 
     
    13051335                fb_init_device(fb_info); 
    13061336 
    13071337        if (fb_info->pixmap.addr == NULL) { 
     1338                printk(KERN_WARNING "ZIPIT2 - pixmap.addr == NULL \n"); 
    13081339                fb_info->pixmap.addr = kmalloc(FBPIXMAPSIZE, GFP_KERNEL); 
    13091340                if (fb_info->pixmap.addr) { 
    13101341                        fb_info->pixmap.size = FBPIXMAPSIZE; 
     
    13131344                        fb_info->pixmap.access_align = 32; 
    13141345                        fb_info->pixmap.flags = FB_PIXMAP_DEFAULT; 
    13151346                } 
    1316         }       
     1347        } 
    13171348        fb_info->pixmap.offset = 0; 
    13181349 
    13191350        if (!fb_info->modelist.prev || !fb_info->modelist.next) 
     
    13251356 
    13261357        event.info = fb_info; 
    13271358        fb_notifier_call_chain(FB_EVENT_FB_REGISTERED, &event); 
     1359 
     1360        fb_prepare_logo(fb_info,3); 
     1361        fb_show_logo(fb_info,3); 
     1362 
     1363        pxa_backlight(1); 
     1364 
    13281365        return 0; 
    13291366} 
    13301367 
     
    13971434static int __init 
    13981435fbmem_init(void) 
    13991436{ 
     1437        printk(KERN_NOTICE "ZIPIT2 - fbmem_init.. \n"); 
     1438 
    14001439        create_proc_read_entry("fb", 0, NULL, fbmem_read_proc, NULL); 
    14011440 
    14021441        if (register_chrdev(FB_MAJOR,"fb",&fb_fops)) 
  • a/drivers/video/logo/Kconfig

    old new  
    2525        depends on LOGO 
    2626        default y 
    2727 
     28config LOGO_ZIPIT 
     29       bool "Zipit2 Logo" 
     30       depends on LOGO 
     31       default y 
     32 
    2833config LOGO_DEC_CLUT224 
    2934        bool "224-color Digital Equipment Corporation Linux logo" 
    3035        depends on LOGO && (MACH_DECSTATION || ALPHA) 
  • a/drivers/video/logo/Makefile

    old new  
    1313obj-$(CONFIG_LOGO_SUPERH_VGA16)         += logo_superh_vga16.o 
    1414obj-$(CONFIG_LOGO_SUPERH_CLUT224)       += logo_superh_clut224.o 
    1515obj-$(CONFIG_LOGO_M32R_CLUT224)         += logo_m32r_clut224.o 
    16  
     16obj-$(CONFIG_LOGO_ZIPIT)                += logo_zipit_clut224.o 
    1717# How to generate logo's 
    1818 
    1919# Use logo-cfiles to retrieve list of .c files to be built 
  • /dev/null

    old new  
     1P3 
     298 118 
     3255 
     4255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
     5255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
     6255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
     7255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 255 255 255 255 255 255 255 255 255 
     8255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 32 32 64 255 255 255 255 255 255 255 255 255 
     9255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 128 128 128 128 128 128 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 160 160 164 32 64 64 32 64 64 255 255 255 255 255 255 255 255 255 
     10255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 128 128 128 160 160 164 160 160 164 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 32 64 128 32 64 128 255 255 255 255 255 255 255 255 255 
     11255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 160 160 164 192 192 192 192 192 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 192 220 192 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     12255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 192 192 192 220 192 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     13255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     14255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     15255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     16255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     17255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     18255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     19255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     20255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 96 128 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     21255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     22255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     23255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     24255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     25255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 96 128 128 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     26255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     27255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     28255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     29255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     30255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     31255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     32255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 128 128 96 96 128 96 96 128 96 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 251 240 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 96 96 128 96 96 128 96 96 128 128 128 192 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     33255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     34255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     35255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     36255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     37255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 96 96 128 96 96 128 96 96 128 96 96 128 96 96 128 96 96 128 96 96 128 96 96 128 96 96 128 96 96 128 64 96 128 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     38255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 160 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 128 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     39255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 160 160 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 128 128 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     40255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 160 160 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     41255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 96 128 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     42255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     43255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 160 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 128 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     44255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 128 160 192 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 128 128 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     45255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 160 160 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     46255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     47255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     48255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 160 160 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 128 128 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     49255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 160 160 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     50255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     51255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     52255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 251 240 192 192 192 192 192 192 192 192 192 255 251 240 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 160 192 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 251 240 192 192 192 192 192 192 192 192 192 255 251 240 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     53255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 160 192 192 96 128 128 64 96 128 64 64 128 64 64 128 96 96 128 160 160 192 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 128 160 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 160 160 192 96 96 128 64 96 128 64 64 128 64 64 128 96 96 128 160 160 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     54255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 128 160 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 128 128 192 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 128 160 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 128 128 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     55255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 160 160 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 160 160 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     56255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 128 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 128 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 128 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     57255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 160 160 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 128 128 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     58255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 128 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 160 160 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     59255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     60255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 128 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 128 128 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     61255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 160 192 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 160 160 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 128 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     62255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 160 160 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 128 160 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 160 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 160 160 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     63255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 160 160 164 96 96 128 64 96 128 64 96 128 128 128 192 192 192 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 96 128 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 192 220 192 128 128 192 96 96 128 64 96 128 64 96 128 128 128 192 192 192 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     64255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     65255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 160 160 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 128 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     66255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 128 160 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 128 160 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     67255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 160 160 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     68255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 96 128 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     69255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     70255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 160 160 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 128 128 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     71255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 128 160 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 128 160 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     72255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 96 128 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 160 160 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     73255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     74255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 96 128 128 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     75255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 160 160 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 128 128 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     76255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 160 160 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     77255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     78255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     79255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 160 160 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 128 128 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     80255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 160 160 164 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     81255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     82255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     83255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 160 192 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 96 128 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     84255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 128 128 192 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 128 128 128 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     85255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 128 160 192 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     86255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     87255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     88255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     89255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 64 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     90255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 128 128 192 192 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     91255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 251 240 255 251 240 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     92255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 160 160 192 160 160 192 160 160 192 160 160 192 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 240 160 160 192 160 160 192 160 160 192 160 192 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     93255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     94255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     95255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     96255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     97255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 192 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 220 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     98255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 160 160 192 255 255 255 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 255 251 240 192 192 192 64 96 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     99255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 128 128 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 160 160 192 128 160 192 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     100255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     101255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     102255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     103255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 96 96 128 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     104255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 96 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 64 96 128 96 128 192 192 220 192 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     105255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     106255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     107255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     108255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     109255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     110255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     111255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     112255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     113255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     114255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     115255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     116255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 128 128 128 160 160 164 192 192 192 192 220 192 255 251 240 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     117255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 32 32 64 32 64 64 32 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     118255 255 255 255 255 255 255 255 255 32 32 64 32 32 64 32 32 64 32 64 64 32 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 64 64 128 255 255 255 255 255 255 255 255 255 
     119255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
     120255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
     121255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
  • a/drivers/video/pxafb.c

    old new  
    730730        return 0; 
    731731} 
    732732 
     733void pxa_backlight(int on) 
     734{ 
     735        if(on) 
     736                GPSR0 = (1 << 11); 
     737        else 
     738                GPSR0 = ~(1 << 11); 
     739 
     740} 
     741EXPORT_SYMBOL(pxa_backlight); 
     742 
    733743/* 
    734744 * NOTE!  The following functions are purely helpers for set_ctrlr_state. 
    735745 * Do not call them directly; set_ctrlr_state does the correct serialisation 
     
    740750{ 
    741751        pr_debug("pxafb: backlight o%s\n", on ? "n" : "ff"); 
    742752 
    743       if (pxafb_backlight_power) 
    744               pxafb_backlight_power(on); 
     753//    if (pxafb_backlight_power) 
     754 //           pxafb_backlight_power(on); 
    745755} 
    746756 
    747757static inline void __pxafb_lcd_power(struct pxafb_info *fbi, int on) 
     
    13411351#ifdef DEBUG_VAR 
    13421352        /* Check for various illegal bit-combinations. Currently only 
    13431353         * a warning is given. */ 
     1354        printk(KERN_NOTICE "ZIPIT2 lccr0 = 0x%x \n",inf->lccr0); 
     1355        printk(KERN_NOTICE "ZIPIT2 lccr3 = 0x%x \n",inf->lccr3); 
    13441356 
    13451357        if (inf->lccr0 & LCCR0_INVALID_CONFIG_MASK) 
    13461358                dev_warn(&dev->dev, "machine LCCR0 setting contains illegal bits: %08x\n", 
     
    14601472 
    14611473int __devinit pxafb_init(void) 
    14621474{ 
     1475        int ret; 
    14631476#ifndef MODULE 
    14641477        char *option = NULL; 
    14651478 
     
    14671480                return -ENODEV; 
    14681481        pxafb_setup(option); 
    14691482#endif 
    1470         return platform_driver_register(&pxafb_driver); 
     1483        ret =  platform_driver_register(&pxafb_driver); 
     1484 
     1485        if(ret < 0) 
     1486           printk(KERN_NOTICE "ERROR registering PXAFB driver...\n"); 
     1487        else 
     1488           printk(KERN_NOTICE "PXAFB driver registered...\n"); 
    14711489} 
    14721490 
    14731491module_init(pxafb_init); 
  • a/include/asm-arm/arch-pxa/pxa-regs.h

    old new  
    11111111#define PWM_PWDUTY1     __REG(0x40C00004)  /* PWM 1 Duty Cycle Register */ 
    11121112#define PWM_PERVAL1     __REG(0x40C00008)  /* PWM 1 Period Control Register */ 
    11131113 
     1114/* AERONIX added for Zipit2*/ 
     1115#define PWM_CTRL2       __REG(0x40B00010) 
     1116#define PWM_PWDUTY2     __REG(0x40B00014) 
     1117#define PWM_PERVAL2     __REG(0x40B00018) 
    11141118 
    11151119/* 
    11161120 * Interrupt Controller 
  • a/include/asm-arm/arch-pxa/pxafb.h

    old new  
    7878void set_pxa_fb_info(struct pxafb_mach_info *hard_pxa_fb_info); 
    7979void set_pxa_fb_parent(struct device *parent_dev); 
    8080unsigned long pxafb_get_hsync_time(struct device *dev); 
     81 
     82 
     83/* PIXCLOCK --- unit 10khz*/ 
     84/* Modified for Z2 Optrex */ 
     85#define ZIPIT2 
     86 
     87#if 1   /*Z2 rev 2 LCD*/ 
     88#define LCD_PIXCLOCK    688 
     89/*JWK test new Z2 LCD 041607 #define LCD_PIXCLOCK               576 */ 
     90#define LCD_BPP                         16 
     91#define LCD_XRES                        240 
     92#define LCD_YRES                        320 
     93#define LCD_HORIZONTAL_SYNC_PULSE_WIDTH 4 
     94#define LCD_VERTICAL_SYNC_PULSE_WIDTH   4 
     95#define LCD_BEGIN_OF_LINE_WAIT_COUNT    4 
     96#define LCD_BEGIN_FRAME_WAIT_COUNT      4 
     97#define LCD_END_OF_LINE_WAIT_COUNT      8 
     98#define LCD_END_OF_FRAME_WAIT_COUNT     8 
     99#define LCD_SYNC                        (FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT) 
     100#else /*Z2 rev 1 LCD*/ 
     101#define LCD_PIXCLOCK                    576 
     102#define LCD_BPP                         16 
     103#define LCD_XRES                        240 
     104#define LCD_YRES                        320 
     105#define LCD_HORIZONTAL_SYNC_PULSE_WIDTH 2 
     106#define LCD_VERTICAL_SYNC_PULSE_WIDTH   2 
     107#define LCD_BEGIN_OF_LINE_WAIT_COUNT    1 
     108#define LCD_BEGIN_FRAME_WAIT_COUNT      1 
     109#define LCD_END_OF_LINE_WAIT_COUNT      10 
     110#define LCD_END_OF_FRAME_WAIT_COUNT     1 
     111#define LCD_SYNC                        (FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT) 
     112#endif 
     113 
     114 
     115//#define LCD_LCCR0             0x1B00A78 
     116//#define LCD_LCCR3             0x4008000 
     117 
     118//#define LCD_LCCR0             (LCCR0_OUC | LCCR0_CMDIM | LCCR0_RDSTM | \ 
     119                         LCCR0_OUM | LCCR0_BM | LCCR0_QDM | LCCR0_PAS | \ 
     120                         LCCR0_EFM | LCCR0_IUM | LCCR0_SFM | LCCR0_LDM) 
     121 
     122/* Z2 -- Removed Active setting */ 
     123/*#define LCD_LCCR0             (LCCR0_OUC | LCCR0_CMDIM | LCCR0_RDSTM | \ 
     124                         LCCR0_OUM | LCCR0_BM | LCCR0_QDM | \ 
     125                         LCCR0_EFM | LCCR0_IUM | LCCR0_SFM | LCCR0_LDM) 
     126*/ 
     127#define LCD_LCCR0 0x05B00AF8 // per Frank W."older than IEEE"  Tinklepaugh 
     128 
     129/*#define LCD_LCCR3         (LCCR3_PCP | LCCR3_HSP | LCCR3_VSP ) 
     130*/ 
     131#if 0 /*Z2 rev 1 LCD*/ 
     132#define LCD_LCCR3 0x04f00009 
     133#else  /*Z2 rev 2 LCD*/ 
     134#define LCD_LCCR3 0x04b00006 
     135#endif 
  • /dev/null

    old new  
     1 
     2#ifndef __GPIO_IOCTL_H_ 
     3#define __GPIO_IOCTL_H_ 
     4 
     5#include <linux/ioctl.h> 
     6 
     7#define GPIO_IOCTL_API_VERSION (1 << 16 | 0) 
     8 
     9#define GPIO_IOCTL_BASE 'O' 
     10 
     11#define GPIO_DRV_GETVERSION                                             _IOR(GPIO_IOCTL_BASE,  0, __u32) 
     12#define GPIO_DRV_SET_GPIO                                               _IOW(GPIO_IOCTL_BASE,  1, __u32) 
     13#define GPIO_DRV_GET_GPIO                                               _IOW(GPIO_IOCTL_BASE,  2, __u32) 
     14#define GPIO_DRV_SET_MODE                       _IOW(GPIO_IOCTL_BASE,  3, __u32) 
     15#define GPIO_DRV_SET_PWM_PRESCALE               _IOW(GPIO_IOCTL_BASE,  4, __u32) 
     16#define GPIO_DRV_SET_PWM_DUTYCYCLE              _IOW(GPIO_IOCTL_BASE,  5, __u32) 
     17#define GPIO_DRV_SET_PWM_PERIOD                 _IOW(GPIO_IOCTL_BASE,  6, __u32) 
     18#define GPIO_DRV_SET_PWM_CLK_ENABLE             _IOW(GPIO_IOCTL_BASE,  7, __u32) 
     19#define GPIO_DRV_SET_PWRMODE                        _IOW(GPIO_IOCTL_BASE,  8, __u32) 
     20#define GPIO_DRV_IO_READ                                    _IOW(GPIO_IOCTL_BASE,  9, __u32) 
     21#define GPIO_DRV_SET_IO_WRITE_ADDRESS           _IOW(GPIO_IOCTL_BASE, 10, __u32) 
     22#define GPIO_DRV_IO_WRITE                                   _IOW(GPIO_IOCTL_BASE, 11, __u32) 
     23#define GPIO_DRV_GET_CAMERA_FRAME                   _IOW(GPIO_IOCTL_BASE, 12, __u32) 
     24#define GPIO_DRV_RESET_SYSTEM                       _IOW(GPIO_IOCTL_BASE, 13, __u32) 
     25#define GPIO_DRV_SET_CLKCFG                                 _IOW(GPIO_IOCTL_BASE, 14, __u32) 
     26 
     27 
     28typedef enum 
     29{ 
     30   GPIO_MODE_INPUT, 
     31   GPIO_MODE_OUTPUT, 
     32   GPIO_MODE_ALT_FUNC_1_IN, 
     33   GPIO_MODE_ALT_FUNC_1_OUT, 
     34   GPIO_MODE_ALT_FUNC_2_IN, 
     35   GPIO_MODE_ALT_FUNC_2_OUT, 
     36   GPIO_MODE_ALT_FUNC_3_IN, 
     37   GPIO_MODE_ALT_FUNC_3_OUT 
     38}gpioMode; 
     39 
     40typedef enum 
     41{ 
     42        PWRMODE_IDLE = 0x01, 
     43        PWRMODE_STANDBY, 
     44        PWRMODE_SLEEP, 
     45        PWRMODE_DEEPSLEEP = 0x7 
     46}pwrMode; 
     47 
     48 
     49#endif // __GPIO_IOCTL_H_ 
     50 
  • a/init/initramfs.c

    old new  
    543543 
    544544static int __init populate_rootfs(void) 
    545545{ 
     546        printk(KERN_INFO "populate_rootfs...initramfs: start: 0x%08lX, end: 0x%08lX\n", __initramfs_start, __initramfs_end); 
    546547        char *err = unpack_to_rootfs(__initramfs_start, 
    547548                         __initramfs_end - __initramfs_start, 0); 
    548549        if (err) 
  • a/kernel/hrtimer.c

    old new  
    4343#include <linux/tick.h> 
    4444#include <linux/seq_file.h> 
    4545#include <linux/err.h> 
     46#include <linux/delay.h> 
    4647 
    4748#include <asm/uaccess.h> 
    4849 
     
    304305 
    305306/* High resolution timer related functions */ 
    306307#ifdef CONFIG_HIGH_RES_TIMERS 
    307  
    308308/* 
    309309 * High resolution timer enabled ? 
    310310 */ 
     
    13321332        if (!timespec_valid(&tu)) 
    13331333                return -EINVAL; 
    13341334 
     1335#if 1 //AERONIX added to fix bug with nano sleep(would only allow 10ms resolution) 
     1336        if(tu.tv_sec == 0 && tu.tv_nsec <= 2000000L && current->policy != SCHED_NORMAL) 
     1337        { 
     1338           udelay((tu.tv_nsec + 999) / 1000); 
     1339           return 0; 
     1340        } 
     1341#endif 
    13351342        return hrtimer_nanosleep(&tu, rmtp, HRTIMER_MODE_REL, CLOCK_MONOTONIC); 
    13361343} 
    13371344 
  • a/kernel/module.c

    old new  
    941941 
    942942static inline int same_magic(const char *amagic, const char *bmagic) 
    943943{ 
     944        return 1; 
    944945        return strcmp(amagic, bmagic) == 0; 
    945946} 
    946947#endif /* CONFIG_MODVERSIONS */