Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание xls 
:(
    Опции темы
Alfer
Дата 27.6.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 27.6.2006

Репутация: нет
Всего: нет



 smile 
Хочу получить простой код на c++ (без левых библиотек), который я введу в блокноте, откомпилю (под Linux) и у меня на жестком диске создасться файл "x.xls" (В формате Excel), где будут заполнены несколько ячеек.

Если мне кто-нибудь это сделает, то он будет по праву считаться спасителем Интернета всего мира? потому? что все касающееся xls форматов по всему интернету такое бездарное? что мне стыдно за И-нет!
 
PM MAIL   Вверх
MAKCim
Дата 27.6.2006, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата

Хочу получить простой код на c++ (без левых библиотек), который я введу в блокноте, откомпилю (под Linux) и у меня на жестком диске создасться файл "x.xls" (В формате Excel), где будут заполнены несколько ячеек.

при чем здесь C++?

Добавлено @ 10:03 
Код

#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>

int main(int argc, char* argv[])
{
    int fd=open(argv[1],O_CREAT,O_WRONLY);
    char buffer[1024]={0};
    size_t size;
    /* заполняем буфер, реальное количество записанных в него байт в size */
    write(fd,buffer,size);
    close(fd);
    return 0;
}
  
уж что вставлять в буфер ищи сам  smile  

Это сообщение отредактировал(а) MAKCim - 27.6.2006, 10:07


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Xenon
Дата 27.6.2006, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



MAKCim, А как пихать в какую-то конкретную ячейку? И если писать "подряд", то как будут они заполнятся? 


--------------------
user posted image  
PM MAIL   Вверх
MAKCim
Дата 27.6.2006, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата

А как пихать в какую-то конкретную ячейку? И если писать "подряд", то как будут они заполнятся?  

я откуда знаю  smile 
я написал код для *ix, который создаст файл и запишет в него некоторые данные
а уж какие это будут данные мне не известно, т. к не знаю формат xls 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Xenon
Дата 27.6.2006, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



MAKCim, а *.xls ли это вообще? smile 


--------------------
user posted image  
PM MAIL   Вверх
MAKCim
Дата 27.6.2006, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата

а *.xls ли это вообще?

не понял 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Earnest
Дата 27.6.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Чтобы писать в xls-файл придется подключиться через Automation к Excel. Формат является закрытым и достаточно сложным, и прямой доступ не приветствуется разработчиком. В любом случае без "левых" библиотек не получится (для прямого доступа тоже, наверняка, можно найти библиотеки). А Automation работает не быстро.
Но если структура твоих данных - простая таблица, используй формат CSV: каждая строка файла == строка таблицы, элементы в строке разделены точкой с запятой. Excel такие файлы считает своими и открывает без проблем.  


--------------------
...
PM   Вверх
586
Дата 27.6.2006, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 10
Всего: 146



Цитата(Alfer @  27.6.2006,  10:24 Найти цитируемый пост)
Хочу получить простой код на c++ (без левых библиотек), который я введу в блокноте, откомпилю (под Linux) и у меня на жестком диске создасться файл "x.xls" (В формате Excel), где будут заполнены несколько ячеек.

Код
#include <windows.h>

#pragma comment(linker, "/ENTRY:main")
#pragma warning(disable:4305)
#pragma warning(disable:4309)

static char data[]={
0xD0,0xCF,0x11,0xE0,0xA1,0xB1,0x1A,0xE1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x3E,0,3,0,0xFE,0xFF,9,0,6,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
0x19,0,0,0,0,0,0,0,0,0x10,0,0,0xFE,0xFF,0xFF,0xFF,0,0,0,0,0xFE,0xFF,0xFF,0xFF,
0,0,0,0,0x18,0,0,0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,9,8,0x10,0,0,6,5,0,0x46,0x18,0xCD,7,0xC9,0x80,0,0,
6,2,0,0,0xE1,0,2,0,0xB0,4,0xC1,0,2,0,0,0,0xE2,0,0,0,0x5C,0,0x70,0,
5,0,0,0x42,0x6F,0x72,0x69,0x73,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x42,0,2,0,0xB0,4,0x61,1,
2,0,0,0,0xC0,1,0,0,0x3D,1,6,0,1,0,2,0,3,0,0x9C,0,2,0,14,0,
0x19,0,2,0,0,0,0x12,0,2,0,0,0,0x13,0,2,0,0,0,0xAF,1,2,0,0,0,
0xBC,1,2,0,0,0,0x3D,0,0x12,0,0x78,0,0x78,0,0x1F,0x3B,0x54,0x24,0x38,0,0,0,0,0,
1,0,0x58,2,0x40,0,2,0,0,0,0x8D,0,2,0,0,0,0x22,0,2,0,0,0,14,0,
2,0,1,0,0xB7,1,2,0,0,0,0xDA,0,2,0,0,0,0x31,0,0x1A,0,0xC8,0,0,0,
0xFF,0x7F,0x90,1,0,0,0,0,0,0,5,1,0x41,0,0x72,0,0x69,0,0x61,0,0x6C,0,0x31,0,
0x1A,0,0xC8,0,0,0,0xFF,0x7F,0x90,1,0,0,0,0,0,0,5,1,0x41,0,0x72,0,0x69,0,
0x61,0,0x6C,0,0x31,0,0x1A,0,0xC8,0,0,0,0xFF,0x7F,0x90,1,0,0,0,0,0,0,5,1,
0x41,0,0x72,0,0x69,0,0x61,0,0x6C,0,0x31,0,0x1A,0,0xC8,0,0,0,0xFF,0x7F,0x90,1,0,0,
0,0,0,0,5,1,0x41,0,0x72,0,0x69,0,0x61,0,0x6C,0,0x1E,4,0x2F,0,5,0,0x15,0,
1,0x23,0,0x2C,0,0x23,0,0x23,0,0x30,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x3B,0,0x5C,0,0x2D,
0,0x23,0,0x2C,0,0x23,0,0x23,0,0x30,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x1E,4,0x39,0,6,
0,0x1A,0,1,0x23,0,0x2C,0,0x23,0,0x23,0,0x30,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x3B,0,
0x5B,0,0x52,0,0x65,0,0x64,0,0x5D,0,0x5C,0,0x2D,0,0x23,0,0x2C,0,0x23,0,0x23,0,0x30,0,
0x22,0,0x40,4,0x2E,0,0x22,0,0x1E,4,0x3B,0,7,0,0x1B,0,1,0x23,0,0x2C,0,0x23,0,0x23,
0,0x30,0,0x2E,0,0x30,0,0x30,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x3B,0,0x5C,0,0x2D,0,0x23,
0,0x2C,0,0x23,0,0x23,0,0x30,0,0x2E,0,0x30,0,0x30,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x1E,
4,0x45,0,8,0,0x20,0,1,0x23,0,0x2C,0,0x23,0,0x23,0,0x30,0,0x2E,0,0x30,0,0x30,0,
0x22,0,0x40,4,0x2E,0,0x22,0,0x3B,0,0x5B,0,0x52,0,0x65,0,0x64,0,0x5D,0,0x5C,0,0x2D,0,
0x23,0,0x2C,0,0x23,0,0x23,0,0x30,0,0x2E,0,0x30,0,0x30,0,0x22,0,0x40,4,0x2E,0,0x22,0,
0x1E,4,0x6B,0,0x2A,0,0x33,0,1,0x5F,0,0x2D,0,0x2A,0,0x20,0,0x23,0,0x2C,0,0x23,0,0x23,
0,0x30,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x5F,0,0x2D,0,0x3B,0,0x5C,0,0x2D,0,0x2A,0,0x20,
0,0x23,0,0x2C,0,0x23,0,0x23,0,0x30,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x5F,0,0x2D,0,0x3B,
0,0x5F,0,0x2D,0,0x2A,0,0x20,0,0x22,0,0x2D,0,0x22,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x5F,
0,0x2D,0,0x3B,0,0x5F,0,0x2D,0,0x40,0,0x5F,0,0x2D,0,0x1E,4,0x6B,0,0x29,0,0x33,0,1,
0x5F,0,0x2D,0,0x2A,0,0x20,0,0x23,0,0x2C,0,0x23,0,0x23,0,0x30,0,0x5F,0,0x40,4,0x5F,0,
0x2E,0,0x5F,0,0x2D,0,0x3B,0,0x5C,0,0x2D,0,0x2A,0,0x20,0,0x23,0,0x2C,0,0x23,0,0x23,0,
0x30,0,0x5F,0,0x40,4,0x5F,0,0x2E,0,0x5F,0,0x2D,0,0x3B,0,0x5F,0,0x2D,0,0x2A,0,0x20,0,
0x22,0,0x2D,0,0x22,0,0x5F,0,0x40,4,0x5F,0,0x2E,0,0x5F,0,0x2D,0,0x3B,0,0x5F,0,0x2D,0,
0x40,0,0x5F,0,0x2D,0,0x1E,4,0x7B,0,0x2C,0,0x3B,0,1,0x5F,0,0x2D,0,0x2A,0,0x20,0,0x23,
0,0x2C,0,0x23,0,0x23,0,0x30,0,0x2E,0,0x30,0,0x30,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x5F,
0,0x2D,0,0x3B,0,0x5C,0,0x2D,0,0x2A,0,0x20,0,0x23,0,0x2C,0,0x23,0,0x23,0,0x30,0,0x2E,
0,0x30,0,0x30,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x5F,0,0x2D,0,0x3B,0,0x5F,0,0x2D,0,0x2A,
0,0x20,0,0x22,0,0x2D,0,0x22,0,0x3F,0,0x3F,0,0x22,0,0x40,4,0x2E,0,0x22,0,0x5F,0,0x2D,
0,0x3B,0,0x5F,0,0x2D,0,0x40,0,0x5F,0,0x2D,0,0x1E,4,0x7B,0,0x2B,0,0x3B,0,1,0x5F,0,
0x2D,0,0x2A,0,0x20,0,0x23,0,0x2C,0,0x23,0,0x23,0,0x30,0,0x2E,0,0x30,0,0x30,0,0x5F,0,
0x40,4,0x5F,0,0x2E,0,0x5F,0,0x2D,0,0x3B,0,0x5C,0,0x2D,0,0x2A,0,0x20,0,0x23,0,0x2C,0,
0x23,0,0x23,0,0x30,0,0x2E,0,0x30,0,0x30,0,0x5F,0,0x40,4,0x5F,0,0x2E,0,0x5F,0,0x2D,0,
0x3B,0,0x5F,0,0x2D,0,0x2A,0,0x20,0,0x22,0,0x2D,0,0x22,0,0x3F,0,0x3F,0,0x5F,0,0x40,4,
0x5F,0,0x2E,0,0x5F,0,0x2D,0,0x3B,0,0x5F,0,0x2D,0,0x40,0,0x5F,0,0x2D,0,0x1E,4,0x1C,0,
0xA4,0,0x17,0,0,0x22,0x24,0x22,0x23,0x2C,0x23,0x23,0x30,0x5F,0x29,0x3B,0x5C,0x28,0x22,0x24,0x22,0x23,0x2C,0x23,
0x23,0x30,0x5C,0x29,0x1E,4,0x21,0,0xA5,0,0x1C,0,0,0x22,0x24,0x22,0x23,0x2C,0x23,0x23,0x30,0x5F,0x29,0x3B,
0x5B,0x52,0x65,0x64,0x5D,0x5C,0x28,0x22,0x24,0x22,0x23,0x2C,0x23,0x23,0x30,0x5C,0x29,0x1E,4,0x22,0,0xA6,0,0x1D,
0,0,0x22,0x24,0x22,0x23,0x2C,0x23,0x23,0x30,0x2E,0x30,0x30,0x5F,0x29,0x3B,0x5C,0x28,0x22,0x24,0x22,0x23,0x2C,0x23,
0x23,0x30,0x2E,0x30,0x30,0x5C,0x29,0x1E,4,0x27,0,0xA7,0,0x22,0,0,0x22,0x24,0x22,0x23,0x2C,0x23,0x23,0x30,
0x2E,0x30,0x30,0x5F,0x29,0x3B,0x5B,0x52,0x65,0x64,0x5D,0x5C,0x28,0x22,0x24,0x22,0x23,0x2C,0x23,0x23,0x30,0x2E,0x30,0x30,
0x5C,0x29,0x1E,4,0x37,0,0xA8,0,0x32,0,0,0x5F,0x28,0x22,0x24,0x22,0x2A,0x20,0x23,0x2C,0x23,0x23,0x30,0x5F,
0x29,0x3B,0x5F,0x28,0x22,0x24,0x22,0x2A,0x20,0x5C,0x28,0x23,0x2C,0x23,0x23,0x30,0x5C,0x29,0x3B,0x5F,0x28,0x22,0x24,0x22,
0x2A,0x20,0x22,0x2D,0x22,0x5F,0x29,0x3B,0x5F,0x28,0x40,0x5F,0x29,0x1E,4,0x2E,0,0xA9,0,0x29,0,0,0x5F,0x28,
0x2A,0x20,0x23,0x2C,0x23,0x23,0x30,0x5F,0x29,0x3B,0x5F,0x28,0x2A,0x20,0x5C,0x28,0x23,0x2C,0x23,0x23,0x30,0x5C,0x29,0x3B,
0x5F,0x28,0x2A,0x20,0x22,0x2D,0x22,0x5F,0x29,0x3B,0x5F,0x28,0x40,0x5F,0x29,0x1E,4,0x3F,0,0xAA,0,0x3A,0,0,
0x5F,0x28,0x22,0x24,0x22,0x2A,0x20,0x23,0x2C,0x23,0x23,0x30,0x2E,0x30,0x30,0x5F,0x29,0x3B,0x5F,0x28,0x22,0x24,0x22,0x2A,
0x20,0x5C,0x28,0x23,0x2C,0x23,0x23,0x30,0x2E,0x30,0x30,0x5C,0x29,0x3B,0x5F,0x28,0x22,0x24,0x22,0x2A,0x20,0x22,0x2D,0x22,
0x3F,0x3F,0x5F,0x29,0x3B,0x5F,0x28,0x40,0x5F,0x29,0x1E,4,0x36,0,0xAB,0,0x31,0,0,0x5F,0x28,0x2A,0x20,0x23,
0x2C,0x23,0x23,0x30,0x2E,0x30,0x30,0x5F,0x29,0x3B,0x5F,0x28,0x2A,0x20,0x5C,0x28,0x23,0x2C,0x23,0x23,0x30,0x2E,0x30,0x30,
0x5C,0x29,0x3B,0x5F,0x28,0x2A,0x20,0x22,0x2D,0x22,0x3F,0x3F,0x5F,0x29,0x3B,0x5F,0x28,0x40,0x5F,0x29,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
1,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
1,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
2,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
2,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,0xF5,0xFF,0x20,0,0,0xF4,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
0,0,0,0,1,0,0x20,0,0,0,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
1,0,0xAB,0,0xF5,0xFF,0x20,0,0,0xF8,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
1,0,0xA9,0,0xF5,0xFF,0x20,0,0,0xF8,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
1,0,0xAA,0,0xF5,0xFF,0x20,0,0,0xF8,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
1,0,0xA8,0,0xF5,0xFF,0x20,0,0,0xF8,0,0,0,0,0,0,0,0,0xC0,0x20,0xE0,0,0x14,0,
1,0,9,0,0xF5,0xFF,0x20,0,0,0xF8,0,0,0,0,0,0,0,0,0xC0,0x20,0x93,2,4,0,
0x10,0x80,3,0xFF,0x93,2,4,0,0x11,0x80,6,0xFF,0x93,2,4,0,0x12,0x80,4,0xFF,0x93,2,4,0,
0x13,0x80,7,0xFF,0x93,2,4,0,0,0x80,0,0xFF,0x93,2,4,0,0x14,0x80,5,0xFF,0x60,1,2,0,
1,0,0x85,0,14,0,0x82,8,0,0,0,0,6,0,0x53,0x68,0x65,0x65,0x74,0x31,0x85,0,14,0,
0xC7,9,0,0,0,0,6,0,0x53,0x68,0x65,0x65,0x74,0x32,0x85,0,14,0,0xCE,10,0,0,0,0,
6,0,0x53,0x68,0x65,0x65,0x74,0x33,0x8C,0,4,0,1,0,7,0,0xC1,1,8,0,0xC1,1,0,0,
0x80,0x38,1,0,0xFC,0,0x18,0,2,0,0,0,2,0,0,0,5,0,0,0x48,0x65,0x6C,0x6C,0x6F,
5,0,0,0x77,0x6F,0x72,0x6C,0x64,0xFF,0,10,0,8,0,0x60,8,0,0,12,0,0,0,10,0,
0,0,9,8,0x10,0,0,6,0x10,0,0x46,0x18,0xCD,7,0xC9,0x80,0,0,6,2,0,0,11,2,
0x14,0,0,0,0,0,0,0,0,0,1,0,0,0,0x3E,9,0,0,0x86,9,0,0,13,0,
2,0,1,0,12,0,2,0,0x64,0,15,0,2,0,1,0,0x11,0,2,0,0,0,0x10,0,
8,0,0xFC,0xA9,0xF1,0xD2,0x4D,0x62,0x50,0x3F,0x5F,0,2,0,1,0,0x2A,0,2,0,0,0,0x2B,0,
2,0,0,0,0x82,0,2,0,1,0,0x80,0,8,0,0,0,0,0,0,0,0,0,0x25,2,
4,0,0,0,0xFF,0,0x81,0,2,0,0xC1,4,0x14,0,0,0,0x15,0,0,0,0x83,0,2,0,
0,0,0x84,0,2,0,0,0,0xA1,0,0x22,0,0,0,0xFF,0,1,0,1,0,1,0,4,0,
0,0,0,0,0,0,0,0,0,0,0xE0,0x3F,0,0,0,0,0,0,0xE0,0x3F,0,0,0x55,0,
2,0,8,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,8,2,
0x10,0,0,0,0,0,2,0,0xFF,0,0,0,0,0,0,1,15,0,0xFD,0,10,0,0,0,
0,0,15,0,0,0,0,0,0xFD,0,10,0,0,0,1,0,15,0,1,0,0,0,0xD7,0,
6,0,0x30,0,0,0,0,0,0x3E,2,0x12,0,0xB6,6,0,0,0,0,0x40,0,0,0,0,0,
0,0,0,0,0,0,0x1D,0,15,0,3,0,0,1,0,0,0,1,0,0,0,0,0,1,
1,0xEF,0,6,0,0,0,0x37,0,0,0,10,0,0,0,9,8,0x10,0,0,6,0x10,0,0x46,
0x18,0xCD,7,0xC9,0x80,0,0,6,2,0,0,11,2,0x10,0,0,0,0,0,0,0,0,0,0,
0,0,0,0x7F,10,0,0,13,0,2,0,1,0,12,0,2,0,0x64,0,15,0,2,0,1,
0,0x11,0,2,0,0,0,0x10,0,8,0,0xFC,0xA9,0xF1,0xD2,0x4D,0x62,0x50,0x3F,0x5F,0,2,0,1,
0,0x2A,0,2,0,0,0,0x2B,0,2,0,0,0,0x82,0,2,0,1,0,0x80,0,8,0,0,
0,0,0,0,0,0,0,0x25,2,4,0,0,0,0xFF,0,0x81,0,2,0,0xC1,4,0x14,0,0,
0,0x15,0,0,0,0x83,0,2,0,0,0,0x84,0,2,0,0,0,0xA1,0,0x22,0,0,0,0xFF,
0,1,0,1,0,1,0,4,0,0,1,1,1,0,0,0,0,0,0,0xE0,0x3F,0,0,0,
0,0,0,0xE0,0x3F,0,0,0x55,0,2,0,8,0,0,2,14,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0x3E,2,0x12,0,0xB6,0,0,0,0,0,0x40,0,0,0,0,0,0,
0,0,0,0,0,0x1D,0,15,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0xEF,0,6,0,0,0,0x37,0,0,0,10,0,0,0,9,8,0x10,0,0,6,0x10,0,0x46,0x18,
0xCD,7,0xC9,0x80,0,0,6,2,0,0,11,2,0x10,0,0,0,0,0,0,0,0,0,0,0,
0,0,0x86,11,0,0,13,0,2,0,1,0,12,0,2,0,0x64,0,15,0,2,0,1,0,
0x11,0,2,0,0,0,0x10,0,8,0,0xFC,0xA9,0xF1,0xD2,0x4D,0x62,0x50,0x3F,0x5F,0,2,0,1,0,
0x2A,0,2,0,0,0,0x2B,0,2,0,0,0,0x82,0,2,0,1,0,0x80,0,8,0,0,0,
0,0,0,0,0,0,0x25,2,4,0,0,0,0xFF,0,0x81,0,2,0,0xC1,4,0x14,0,0,0,
0x15,0,0,0,0x83,0,2,0,0,0,0x84,0,2,0,0,0,0xA1,0,0x22,0,0,0,0xFF,0,
1,0,1,0,1,0,4,0,0,0,0,0,0,0,0,0,0,0,0xE0,0x3F,0,0,0,0,
0,0,0xE0,0x3F,0,0,0x55,0,2,0,8,0,0,2,14,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x3E,2,0x12,0,0xB6,0,0,0,0,0,0x40,0,0,0,0,0,0,0,
0,0,0,0,0x1D,0,15,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0xEF,
0,6,0,0,0,0x37,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0xFE,0xFF,0,0,5,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1,0,0,0,0xE0,0x85,0x9F,0xF2,0xF9,0x4F,0x68,0x10,0xAB,0x91,8,0,0x2B,0x27,0xB3,0xD9,0x30,0,0,0,
0x9C,0,0,0,7,0,0,0,1,0,0,0,0x40,0,0,0,4,0,0,0,0x48,0,0,0,
8,0,0,0,0x54,0,0,0,0x12,0,0,0,0x64,0,0,0,12,0,0,0,0x7C,0,0,0,
13,0,0,0,0x88,0,0,0,0x13,0,0,0,0x94,0,0,0,2,0,0,0,0xE3,4,0,0,
0x1E,0,0,0,1,0,0,0,0,0,0x73,0,0x1E,0,0,0,6,0,0,0,0x42,0x6F,0x72,0x69,
0x73,0,0x66,0,0x1E,0,0,0,0x10,0,0,0,0x4D,0x69,0x63,0x72,0x6F,0x73,0x6F,0x66,0x74,0x20,0x45,0x78,
0x63,0x65,0x6C,0,0x40,0,0,0,0,0x94,0xF8,0x19,0x28,0xBA,0xBB,1,0x40,0,0,0,0x80,0x83,0x5D,0x19,
0xBF,0x99,0xC6,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFE,0xFF,0,0,5,1,2,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0xD5,0xCD,0xD5,
0x9C,0x2E,0x1B,0x10,0x93,0x97,8,0,0x2B,0x2C,0xF9,0xAE,0x30,0,0,0,0xD8,0,0,0,9,0,0,0,
1,0,0,0,0x50,0,0,0,15,0,0,0,0x58,0,0,0,0x17,0,0,0,0x64,0,0,0,
11,0,0,0,0x6C,0,0,0,0x10,0,0,0,0x74,0,0,0,0x13,0,0,0,0x7C,0,0,0,
0x16,0,0,0,0x84,0,0,0,13,0,0,0,0x8C,0,0,0,12,0,0,0,0xB5,0,0,0,
2,0,0,0,0xE3,4,0,0,0x1E,0,0,0,1,0,0,0,0,0,0x33,0,3,0,0,0,
0x41,10,10,0,11,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,11,0,0,0,
0,0,0,0,11,0,0,0,0,0,0,0,0x1E,0x10,0,0,3,0,0,0,7,0,0,0,
0x53,0x68,0x65,0x65,0x74,0x31,0,7,0,0,0,0x53,0x68,0x65,0x65,0x74,0x32,0,7,0,0,0,0x53,0x68,
0x65,0x65,0x74,0x33,0,12,0x10,0,0,2,0,0,0,0x1E,0,0,0,11,0,0,0,0x57,0x6F,0x72,
0x6B,0x73,0x68,0x65,0x65,0x74,0x73,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,
5,0,0,0,6,0,0,0,7,0,0,0,0xFE,0xFF,0xFF,0xFF,9,0,0,0,10,0,0,0,
11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0xFE,0xFF,0xFF,0xFF,
0x11,0,0,0,0x12,0,0,0,0x13,0,0,0,0x14,0,0,0,0x15,0,0,0,0x16,0,0,0,
0x17,0,0,0,0xFE,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x52,0,0x6F,0,0x6F,0,0x74,0,
0x20,0,0x45,0,0x6E,0,0x74,0,0x72,0,0x79,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x16,0,5,1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,2,0,0,0,
0x20,8,2,0,0,0,0,0,0xC0,0,0,0,0,0,0,0x46,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0xFE,0xFF,0xFF,0xFF,0,0,0,0,0,0,0,0,
0x57,0,0x6F,0,0x72,0,0x6B,0,0x62,0,0x6F,0,0x6F,0,0x6B,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x12,0,2,1,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x10,0,0,0,0,0,0,5,0,0x53,0,0x75,0,0x6D,0,0x6D,0,0x61,0,0x72,0,0x79,0,
0x49,0,0x6E,0,0x66,0,0x6F,0,0x72,0,0x6D,0,0x61,0,0x74,0,0x69,0,0x6F,0,0x6E,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x28,0,2,1,1,0,0,0,3,0,0,0,0xFF,0xFF,0xFF,0xFF,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,8,0,0,0,0,0x10,0,0,0,0,0,0,5,0,0x44,0,0x6F,0,0x63,0,
0x75,0,0x6D,0,0x65,0,0x6E,0,0x74,0,0x53,0,0x75,0,0x6D,0,0x6D,0,0x61,0,0x72,0,0x79,0,
0x49,0,0x6E,0,0x66,0,0x6F,0,0x72,0,0x6D,0,0x61,0,0x74,0,0x69,0,0x6F,0,0x6E,0,0,0,
0,0,0,0,0,0,0,0,0x38,0,2,1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x10,0,0,0,0,0x10,0,0,0,0,0,0
};

int __stdcall main()
{
 HANDLE f;
 DWORD BytesWritten; 
 f=CreateFile("file.xls", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); 
 WriteFile(f, data, sizeof(data), &BytesWritten, 0);
 CloseHandle(f);
 Beep(0x1FF, 50);
 ShellExecute(0, "open", "file.xls", 0, 0, 5);
 return 0;
}

Без лишних библиотег!!!  smile  
PM   Вверх
MAKCim
Дата 27.6.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



586
только надо для Linux  smile

Добавлено @ 11:51 
Цитата

В любом случае без "левых" библиотек не получится 

всегда получится
основная трудность - найти спецификацию формата 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Alfer
Дата 27.6.2006, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 27.6.2006

Репутация: нет
Всего: нет



Я нашел спецификацию формата, но там такое счастье, что лазать там не охота.

586
Ты это просто через hex воткнул????
А как мне в конкретные ячейки писать?????? 
PM MAIL   Вверх
586
Дата 27.6.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 10
Всего: 146



Alfer, 
Смотри, вот фрагмент дампа того xls-файла:

0A50: 8038 0100 FC00 1800 0200 0000 0200 0000   .8..............
0A60: 0500 0048 656C 6C6F 0500 0077 6F72 6C64   ...Hello...world
0A70: FF00 0A00 0800 6008 0000 0C00 0000 0A00   ......`.........
0A80: 0000 0908 1000 0006 1000 4618 CD07 C980   ..........F.....

Понятия не имею, как сюда можно всавить другую строку.
Например, строка "Hello" по смещению 0A63, почемуто заканчивается байтом 05, а строка "world" байтом FF.
Хотя может быть, пара 0500 и FF00 - это какая-нибудь служебная разметка, а дальше - 0A00 - начало новой строки. (crlf - 0D0A)
Но это только мои догадки. Я этого формата не знаю. 
А вообще, бери HEX-редактор, и эксперементируй. Примерное смещение ты знаешь.
Где-то есть указатели на эти строки.
А лучше не парься, и возьми DLL.

Выложи спецификацию формата - интересно взглянуть. 
PM   Вверх
sergejzr
Дата 27.6.2006, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Ребята, если формул в XLS нет, то файл может иметь формат:

Цитата

ячейка11\tячейка21\tячейкаX1\n
ячейка12\tячейка22\tячейкаX2\n
ячейка13\tячейка23\tячейкаX3\n
ячейка14\tячейка24\tячейкаX4\n


Сохраняешь файл как .xls и всё.

Дла работы с ячейками достаточно написать пару простеньких классов.  


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergejzr
Дата 29.6.2006, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Вот, проверенный и работающий вариант
Код


#include <string>
#include <iostream>
#include <fstream>

using namespace std;

class XLSTable
 {
  private:
  string **cells;
  int rows,cols;
  public:
  XLSTable(int rows,int cols)
  {
    this->cells=new string*[rows];
    for(int i=0;i<rows;i++)
    this->cells[i]=new string[cols];
    this->cols=cols;
    this->rows=rows;
  }
  void setCell(int row, int col, string &value)
  {
    cells[row-1][col-1]=value; //row-1, потому что excel считает с 1
  }

   void setExcelCell(int row, char col, string &value)
  {
    int x;
    if(col>='A'&&col<='Z')
    x=col-'A';
    else
        if(col>='a'&&col<='z')
        x=col-'a';
        else throw "only Aa-Zz accepted as column";
    cells[row-1][x]=value; //row-1, потому что excel считает с 1
  }
  string toXLS()
  {
    string s="";
    for(int i=0;i<rows;i++)
     {
       for(int n=0;n<cols;n++)
        {
         s+=cells[i][n];
         if(n<cols-1)
           s+='\t'; //Между ячейками табулятор
        }
       s+='\n';//между строками переход
    }
   return s;
  } 
};
int main()
{
  XLSTable *table=new XLSTable(10,20);
  string str("cell x=");
  //str+x+"y="+y
  //заполняем чем попало
  for(int y=1;y<=10;y++)
      for(int x=1;x<=20;x++)
  table->setCell(y,x,string("sdgsdgf"));
      
  //или конкретно ячейку
  table->setCell(2,3,string("checkit"));//сажаем ячейку 2,3

  // ну и бонусная функция (раз уж я сел за компилер :))
  table->setExcelCell(3,'D',string("checkitD"));//сажаем ячейку 3,D


  //выписываем в файл
 
  ofstream out("test.xls");
  out<<table->toXLS();
  out.flush();// и как он там закрывается :)
  return 0;
 }
 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Dark Elf
Дата 29.6.2006, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 26.12.2003
Где: Брисбен

Репутация: 9
Всего: 10



sergej.z, хоть и не я этот вопрос задавал но тебе за пример +1 smile  


--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0666 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.