diff -Nru ukui-search-5.0.0.4/README.md ukui-search-5.0.0.5/README.md
--- ukui-search-5.0.0.4/README.md	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/README.md	2025-02-28 10:30:38.000000000 +0800
@@ -337,20 +337,33 @@
         QVector<DescriptionInfo> description;
         QString actionKey;
         int type;
-        ResultInfo(const QIcon &iconToSet = QIcon(), const QString &nameToSet = QString(),
+        size_t searchID;
+        explicit ResultInfo(const QIcon &iconToSet = QIcon(),
+                   const QString &nameToSet = QString(),
+                   const QString &toolTipToSet = QString(),
+                   const QString &resourceTypeToSet = QString(),
                    const QVector<DescriptionInfo> &descriptionToSet = QVector<DescriptionInfo>(),
-                   const QString &actionKeyToSet = QString(), const int &typeToSet = 0) {
+                   const QString &actionKeyToSet = QString(),
+                   const int &typeToSet = 0,
+                   const bool showInBestMatchToSet = true,
+                   const bool displayNameAsUrlToSet = false,
+                   const size_t &searchIDToSet = 0) {
             icon = iconToSet;
             name = nameToSet;
+            toolTip = toolTipToSet;
+            resourceType = resourceTypeToSet;
             description = descriptionToSet;
             actionKey = actionKeyToSet;
             type = typeToSet;
+            showInBestMatch = showInBestMatchToSet;
+            displayNameAsUrl = displayNameAsUrlToSet;
+            searchID = searchIDToSet;
         }
     };
 
     virtual ~SearchPluginIface() {}
     virtual QString getPluginName() = 0;
-    virtual void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) = 0;
+    virtual size_t KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) = 0;
     virtual void stopSearch() = 0;
     virtual QList<Actioninfo> getActioninfo(int type) = 0;
     virtual void openAction(int actionkey, QString key, int type) = 0;
@@ -373,13 +386,15 @@
 子类需要上面两个接口类的所有虚函数,其中,
 
 ```c++
-virtual void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) = 0;
+virtual size_t KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) = 0;
 ```
 
 函数会被UI直接调用,如果你的搜索功能十分费时,请在子线程里实现搜索,不要阻塞UI;
 
 `ResultInfo`代表每一个结果项,`DataQueue`是前端取结果的数据队列。
 
+返回值为每次搜索的searchID, 用于校验搜索结果属于哪一次搜索。
+
 ```c++
 virtual QList<Actioninfo> getActioninfo(int type) = 0;
 ```
diff -Nru ukui-search-5.0.0.4/debian/changelog ukui-search-5.0.0.5/debian/changelog
--- ukui-search-5.0.0.4/debian/changelog	2025-02-10 09:43:12.000000000 +0800
+++ ukui-search-5.0.0.5/debian/changelog	2025-02-28 10:40:28.000000000 +0800
@@ -1,3 +1,16 @@
+ukui-search (5.0.0.5-ok0.1) huanghe; urgency=medium
+
+  * Issues:无
+  * 其他改动:
+    - perf(web-search):将http改为https
+    - fix(translations):修改蒙文翻译文件名称以解决蒙文下控制面板找不到翻译文件的无问题
+    - fix(frontend):字体较大时索引弹窗内容被遮挡
+    - fix(frontend):搜索会显示前一次搜索的结果
+  * 其他改动影响域:
+    - 全局搜索应用
+
+ -- iaom <zhangpengfei@kylinos.cn>  Fri, 28 Feb 2025 10:40:28 +0800
+
 ukui-search (5.0.0.4-ok0.1) huanghe; urgency=medium
 
   * Issues:无
diff -Nru ukui-search-5.0.0.4/frontend/control/create-index-ask-dialog.cpp ukui-search-5.0.0.5/frontend/control/create-index-ask-dialog.cpp
--- ukui-search-5.0.0.4/frontend/control/create-index-ask-dialog.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/frontend/control/create-index-ask-dialog.cpp	2025-02-28 10:30:38.000000000 +0800
@@ -22,6 +22,8 @@
 #include "create-index-ask-dialog.h"
 #include <QPainterPath>
 #include <KWindowSystem>
+#include <QGuiApplication>
+#include <QDebug>
 #include "icon-loader.h"
 
 #define MAIN_SIZE QSize(380, 202)
@@ -44,6 +46,9 @@
     initUi();
 
     this->installEventFilter(this);
+    connect(qGuiApp, &QGuiApplication::fontChanged, this, [ & ] (const QFont& font) {
+        resizeHeight(font);
+    });
 }
 
 void CreateIndexAskDialog::initUi() {
@@ -97,6 +102,7 @@
     m_tipLabel->setWordWrap(true);
     m_tipLabel->setAlignment(Qt::AlignVCenter);
     m_tipLabel->setMinimumHeight(TIP_LABEL_HEIGHT);
+    this->resizeHeight(qGuiApp->font());
     m_contentLyt->addWidget(m_tipLabel);
 
     m_checkFrame = new QFrame(m_contentFrame);
@@ -174,3 +180,13 @@
     }
     return QDialog::eventFilter(watched, event);
 }
+
+void CreateIndexAskDialog::resizeHeight(const QFont &font) {
+    QFontMetrics fontMetrics(font);
+    QRect textRect = fontMetrics.boundingRect({0, 0, MAIN_SIZE.width() - 64, 0}, Qt::TextWordWrap, m_tipLabel->text());
+    if (textRect.height() > TIP_LABEL_HEIGHT) {
+        this->setFixedHeight(MAIN_SIZE.height() + (textRect.height() + 20 - TIP_LABEL_HEIGHT));
+    } else {
+        this->setFixedHeight(MAIN_SIZE.height());
+    }
+}
diff -Nru ukui-search-5.0.0.4/frontend/control/create-index-ask-dialog.h ukui-search-5.0.0.5/frontend/control/create-index-ask-dialog.h
--- ukui-search-5.0.0.4/frontend/control/create-index-ask-dialog.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/frontend/control/create-index-ask-dialog.h	2025-02-28 10:30:38.000000000 +0800
@@ -42,6 +42,7 @@
 
 private:
     void initUi();
+    void resizeHeight(const QFont& font);
 
     QVBoxLayout * m_mainLyt = nullptr;
     //标题栏
diff -Nru ukui-search-5.0.0.4/frontend/model/search-result-manager.cpp ukui-search-5.0.0.5/frontend/model/search-result-manager.cpp
--- ukui-search-5.0.0.4/frontend/model/search-result-manager.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/frontend/model/search-result-manager.cpp	2025-02-28 10:30:38.000000000 +0800
@@ -30,7 +30,7 @@
     initConnections();
 }
 
-void SearchResultManager::startSearch(const QString &keyword)
+size_t SearchResultManager::startSearch(const QString &keyword)
 {
     qDebug()<<m_pluginId<<"started";
     if(! m_getResultThread->isRunning()) {
@@ -38,7 +38,7 @@
     }
     m_resultQueue->clear();
     SearchPluginIface *plugin = SearchPluginManager::getInstance()->getPlugin(m_pluginId);
-    plugin->KeywordSearch(keyword, m_resultQueue);
+    return plugin->KeywordSearch(keyword, m_resultQueue);
 }
 
 /**
diff -Nru ukui-search-5.0.0.4/frontend/model/search-result-manager.h ukui-search-5.0.0.5/frontend/model/search-result-manager.h
--- ukui-search-5.0.0.4/frontend/model/search-result-manager.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/frontend/model/search-result-manager.h	2025-02-28 10:30:38.000000000 +0800
@@ -55,7 +55,7 @@
     ~SearchResultManager() = default;
 
 public Q_SLOTS:
-    void startSearch(const QString &);
+    size_t startSearch(const QString &);
     void stopSearch();
 
 private:
diff -Nru ukui-search-5.0.0.4/frontend/model/search-result-model.cpp ukui-search-5.0.0.5/frontend/model/search-result-model.cpp
--- ukui-search-5.0.0.4/frontend/model/search-result-model.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/frontend/model/search-result-model.cpp	2025-02-28 10:30:38.000000000 +0800
@@ -24,6 +24,7 @@
 
 SearchResultModel::SearchResultModel(const QString &plugin_id)
 {
+    m_searchID = 0;
     m_plugin_id = plugin_id;
     m_search_manager = new SearchResultManager(plugin_id);
     m_timer = new QTimer(this);
@@ -85,6 +86,10 @@
 
 void SearchResultModel::appendInfo(const SearchPluginIface::ResultInfo &info)//TODO 代码逻辑可尝试梳理优化
 {
+    if (m_searchID != info.searchID) {
+        return;
+    }
+
     if (m_items.length() > 5 //搜索结果大于5个并且搜索结果处于收起状态时只存储数据无需刷新UI
             and !m_isExpanded) {
         m_items.append(new OneResult(info));
@@ -117,7 +122,7 @@
         this->endResetModel();
         Q_EMIT this->itemListChanged(m_items.length());
     }
-    m_search_manager->startSearch(keyword);
+    m_searchID = m_search_manager->startSearch(keyword);
 }
 
 void SearchResultModel::initConnections()
diff -Nru ukui-search-5.0.0.4/frontend/model/search-result-model.h ukui-search-5.0.0.5/frontend/model/search-result-model.h
--- ukui-search-5.0.0.4/frontend/model/search-result-model.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/frontend/model/search-result-model.h	2025-02-28 10:30:38.000000000 +0800
@@ -64,6 +64,7 @@
     SearchResultManager * m_search_manager = nullptr;
     bool m_isExpanded = false;
     QTimer * m_timer;
+    size_t m_searchID;
 };
 }
 
diff -Nru ukui-search-5.0.0.4/libsearch/CMakeLists.txt ukui-search-5.0.0.5/libsearch/CMakeLists.txt
--- ukui-search-5.0.0.4/libsearch/CMakeLists.txt	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/CMakeLists.txt	2025-02-28 10:30:38.000000000 +0800
@@ -84,8 +84,6 @@
         libsearch_global.h
         log-utils.cpp log-utils.h
         notesearch/note-search-plugin.cpp notesearch/note-search-plugin.h
-        parser/binary-parser.cpp parser/binary-parser.h
-        parser/common.h
         plugininterface/action-label.cpp plugininterface/action-label.h
         plugininterface/action-transmiter.cpp plugininterface/action-transmiter.h
         plugininterface/data-queue.h
diff -Nru ukui-search-5.0.0.4/libsearch/aisearch/ai-search-plugin.cpp ukui-search-5.0.0.5/libsearch/aisearch/ai-search-plugin.cpp
--- ukui-search-5.0.0.4/libsearch/aisearch/ai-search-plugin.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/aisearch/ai-search-plugin.cpp	2025-02-28 10:30:38.000000000 +0800
@@ -74,7 +74,7 @@
     return tr("Content-Aware Search");
 }
 
-void AiSearchPlugin::KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult)
+size_t AiSearchPlugin::KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult)
 {
     mutex.lock();
     uniqueSymbolAi++;
@@ -82,6 +82,7 @@
     m_keyword = keyword;
     m_searchResult = searchResult;
     m_timer->start();
+    return uniqueSymbolAi;
 }
 
 void AiSearchPlugin::stopSearch()
@@ -345,6 +346,7 @@
         ri.displayNameAsUrl = true;
         AiSearchPlugin::mutex.lock();
         if (m_uniqueSymbol == AiSearchPlugin::uniqueSymbolAi) {
+            ri.searchID = m_uniqueSymbol;
             m_searchResult->enqueue(ri);
         }
         AiSearchPlugin::mutex.unlock();
@@ -391,6 +393,7 @@
             if (createResultInfo(ri, aResult.toObject().value("filepath").toString())) {
                 AiSearchPlugin::mutex.lock();
                 if (m_uniqueSymbol == AiSearchPlugin::uniqueSymbolAi) {
+                    ri.searchID = m_uniqueSymbol;
                     m_searchResult->enqueue(ri);
                     AiSearchPlugin::mutex.unlock();
                 } else {
diff -Nru ukui-search-5.0.0.4/libsearch/aisearch/ai-search-plugin.h ukui-search-5.0.0.5/libsearch/aisearch/ai-search-plugin.h
--- ukui-search-5.0.0.4/libsearch/aisearch/ai-search-plugin.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/aisearch/ai-search-plugin.h	2025-02-28 10:30:38.000000000 +0800
@@ -54,7 +54,7 @@
     bool isEnable() override { return m_enable; }
     QString getPluginName() override;
 
-    void KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult) override;
+    size_t KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult) override;
 
     void stopSearch() override;
 
diff -Nru ukui-search-5.0.0.4/libsearch/appsearch/app-search-plugin.cpp ukui-search-5.0.0.5/libsearch/appsearch/app-search-plugin.cpp
--- ukui-search-5.0.0.4/libsearch/appsearch/app-search-plugin.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/appsearch/app-search-plugin.cpp	2025-02-28 10:30:38.000000000 +0800
@@ -69,7 +69,7 @@
     return tr("Applications Search");
 }
 
-void AppSearchPlugin::KeywordSearch(QString keyword, DataQueue<SearchPluginIface::ResultInfo> *searchResult)
+size_t AppSearchPlugin::KeywordSearch(QString keyword, DataQueue<SearchPluginIface::ResultInfo> *searchResult)
 {
     if (!this->isRunning()) {
         this->start();
@@ -77,7 +77,7 @@
     m_searchResult = searchResult;
     m_appSearchTask->clearKeyWords();
     m_appSearchTask->addKeyword(keyword);
-    m_appSearchTask->startSearch(SearchProperty::SearchType::Application);
+    return m_appSearchTask->startSearch(SearchProperty::SearchType::Application);
 
 //    AppSearch *appsearch = new AppSearch(searchResult, m_appSearchResults, m_appSearchTask, keyword, uniqueSymbol);
 //    m_pool.start(appsearch);
@@ -205,6 +205,7 @@
             } else {
                 ri.actionKey = data.value(SearchProperty::SearchResultProperty::ApplicationDesktopPath).toString();
             }
+            ri.searchID = oneResult.getSearchId();
             m_searchResult->enqueue(ri);
         }
     }
diff -Nru ukui-search-5.0.0.4/libsearch/appsearch/app-search-plugin.h ukui-search-5.0.0.5/libsearch/appsearch/app-search-plugin.h
--- ukui-search-5.0.0.4/libsearch/appsearch/app-search-plugin.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/appsearch/app-search-plugin.h	2025-02-28 10:30:38.000000000 +0800
@@ -53,7 +53,7 @@
     bool isEnable() {return m_enable;}
     QString getPluginName();
 
-    void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
+    size_t KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
     void stopSearch();
     QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
     void openAction(int actionkey, QString key, int type);
diff -Nru ukui-search-5.0.0.4/libsearch/index/file-search-plugin.cpp ukui-search-5.0.0.5/libsearch/index/file-search-plugin.cpp
--- ukui-search-5.0.0.4/libsearch/index/file-search-plugin.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/index/file-search-plugin.cpp	2025-02-28 10:30:38.000000000 +0800
@@ -112,7 +112,7 @@
     return tr("File Search");
 }
 
-void UkuiSearch::FileSearchPlugin::KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult)
+size_t UkuiSearch::FileSearchPlugin::KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult)
 {
     SearchManager::m_mutexFile.lock();
     ++SearchManager::uniqueSymbolFile;
@@ -127,6 +127,7 @@
         directSearch = new DirectSearch(keyword, searchResult, FILE_SEARCH_VALUE, SearchManager::uniqueSymbolFile);
         m_pool.start(directSearch);
     }
+    return SearchManager::uniqueSymbolFile;
 }
 
 void FileSearchPlugin::stopSearch()
@@ -334,7 +335,7 @@
     return tr("Dir Search");
 }
 
-void UkuiSearch::DirSearchPlugin::KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult)
+size_t UkuiSearch::DirSearchPlugin::KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult)
 {
     SearchManager::m_mutexDir.lock();
     ++SearchManager::uniqueSymbolDir;
@@ -349,6 +350,7 @@
         directSearch = new DirectSearch(keyword, searchResult, DIR_SEARCH_VALUE, SearchManager::uniqueSymbolDir);
         m_pool.start(directSearch);
     }
+    return SearchManager::uniqueSymbolDir;
 }
 
 void DirSearchPlugin::stopSearch()
@@ -540,7 +542,7 @@
     return tr("File content search");
 }
 
-void UkuiSearch::FileContentSearchPlugin::KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult)
+size_t UkuiSearch::FileContentSearchPlugin::KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult)
 {
     SearchManager::m_mutexContent.lock();
     ++SearchManager::uniqueSymbolContent;
@@ -552,6 +554,7 @@
         fileContentSearch = new FileContentSearch(searchResult, SearchManager::uniqueSymbolContent, keyword, FileIndexerConfig::getInstance()->isFuzzySearchEnable(), 0, 5);
         m_pool.start(fileContentSearch);
     }
+    return SearchManager::uniqueSymbolContent;
 }
 
 void FileContentSearchPlugin::stopSearch()
diff -Nru ukui-search-5.0.0.4/libsearch/index/file-search-plugin.h ukui-search-5.0.0.5/libsearch/index/file-search-plugin.h
--- ukui-search-5.0.0.4/libsearch/index/file-search-plugin.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/index/file-search-plugin.h	2025-02-28 10:30:38.000000000 +0800
@@ -51,7 +51,7 @@
     bool isEnable() override {return m_enable;}
     QString getPluginName() override;
 
-    void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) override;
+    size_t KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) override;
     void stopSearch() override;
     QList<SearchPluginIface::Actioninfo> getActioninfo(int type) override;
     void openAction(int actionkey, QString key, int type = 0) override;
@@ -106,7 +106,7 @@
     bool isEnable() override {return m_enable;}
     QString getPluginName() override;
 
-    void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) override;
+    size_t KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) override;
     void stopSearch() override;
     QList<SearchPluginIface::Actioninfo> getActioninfo(int type) override;
     void openAction(int actionkey, QString key, int type = 0) override;
@@ -161,7 +161,7 @@
     bool isEnable() override {return m_enable;}
     QString getPluginName() override;
 
-    void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) override;
+    size_t KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) override;
     void stopSearch() override;
     QList<SearchPluginIface::Actioninfo> getActioninfo(int type) override;
     void openAction(int actionkey, QString key, int type = 0) override;
diff -Nru ukui-search-5.0.0.4/libsearch/index/search-manager.cpp ukui-search-5.0.0.5/libsearch/index/search-manager.cpp
--- ukui-search-5.0.0.4/libsearch/index/search-manager.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/index/search-manager.cpp	2025-02-28 10:30:38.000000000 +0800
@@ -198,6 +198,7 @@
             case 1:
                 SearchManager::m_mutexDir.lock();
                 if(m_uniqueSymbol == SearchManager::uniqueSymbolDir) {
+                    ri.searchID = m_uniqueSymbol;
                     m_search_result->enqueue(ri);
                     SearchManager::m_mutexDir.unlock();
                 } else {
@@ -209,6 +210,7 @@
             case 0:
                 SearchManager::m_mutexFile.lock();
                 if(m_uniqueSymbol == SearchManager::uniqueSymbolFile) {
+                    ri.searchID = m_uniqueSymbol;
                     m_search_result->enqueue(ri);
                     SearchManager::m_mutexFile.unlock();
                 } else {
@@ -368,6 +370,7 @@
 
         SearchManager::m_mutexContent.lock();
         if(m_uniqueSymbol == SearchManager::uniqueSymbolContent) {
+            ri.searchID = m_uniqueSymbol;
             m_search_result->enqueue(ri);
             SearchManager::m_mutexContent.unlock();
         } else {
@@ -436,13 +439,30 @@
                 }
                 bfs.enqueue(i.absoluteFilePath());
             }
-            SearchManager::m_mutexDir.lock();
-            if(m_uniqueSymbol == SearchManager::uniqueSymbolDir) {
-                match(i);
-                SearchManager::m_mutexDir.unlock();
-            } else {
-                SearchManager::m_mutexDir.unlock();
-                return;
+
+            switch (m_value.toInt()) {
+                case 0:
+                    SearchManager::m_mutexFile.lock();
+                    if (m_uniqueSymbol == SearchManager::uniqueSymbolFile) {
+                        match(i);
+                        SearchManager::m_mutexFile.unlock();
+                        break;
+                    } else {
+                        SearchManager::m_mutexFile.unlock();
+                        return;
+                    }
+                case 1:
+                    SearchManager::m_mutexDir.lock();
+                    if(m_uniqueSymbol == SearchManager::uniqueSymbolDir) {
+                        match(i);
+                        SearchManager::m_mutexDir.unlock();
+                        break;
+                    } else {
+                        SearchManager::m_mutexDir.unlock();
+                        return;
+                    }
+                default:
+                    break;
             }
         }
     }
@@ -454,6 +474,7 @@
         if((info.isDir() && m_value == DIR_SEARCH_VALUE) || (info.isFile() && m_value == FILE_SEARCH_VALUE)) {
             SearchPluginIface::ResultInfo ri;
             if(SearchManager::creatResultInfo(ri,info.absoluteFilePath())) {
+                ri.searchID  = m_uniqueSymbol;
                 m_searchResult->enqueue(ri);
             }
         }
diff -Nru ukui-search-5.0.0.4/libsearch/notesearch/note-search-plugin.cpp ukui-search-5.0.0.5/libsearch/notesearch/note-search-plugin.cpp
--- ukui-search-5.0.0.4/libsearch/notesearch/note-search-plugin.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/notesearch/note-search-plugin.cpp	2025-02-28 10:30:38.000000000 +0800
@@ -52,7 +52,7 @@
     return tr("Note Search");
 }
 
-void NoteSearchPlugin::KeywordSearch(QString keyword, DataQueue<SearchPluginIface::ResultInfo> *searchResult)
+size_t NoteSearchPlugin::KeywordSearch(QString keyword, DataQueue<SearchPluginIface::ResultInfo> *searchResult)
 {
     g_mutex.lock();
     ++g_uniqueSymbol;
@@ -60,6 +60,7 @@
     m_keyword = keyword;
     NoteSearch *ns = new NoteSearch(searchResult, keyword, g_uniqueSymbol);
     m_pool.start(ns);
+    return g_uniqueSymbol;
 }
 
 void NoteSearchPlugin::stopSearch()
@@ -213,11 +214,14 @@
     QDBusReply<QVariantMap> reply = qi.call("keywordMatch", keywordList);
 
     if(reply.isValid()) {
+        g_mutex.lock();
         if (m_uniqueSymbol ^ g_uniqueSymbol) {
             qDebug() << m_uniqueSymbol << g_uniqueSymbol;
+            g_mutex.unlock();
             return;
         } else {
             qDebug() << m_uniqueSymbol << g_uniqueSymbol;
+            g_mutex.unlock();
 
             for (std::pair<QString, QVariant> it : reply.value().toStdMap()) {
                 qDebug() << it.first;
@@ -239,17 +243,19 @@
                         name.replace("\r", " ").replace("\n", " "),
                         name,
                         QStringLiteral("ukui-note"),
-                        QVector<SearchPluginIface::DescriptionInfo>() << SearchPluginIface::DescriptionInfo {
-                                key : QString(tr("Note Description:")),
-                                value : str.at(0)
-                        },
+                        QVector<SearchPluginIface::DescriptionInfo>()
+                                << SearchPluginIface::DescriptionInfo {QString(tr("Note Description:")), str.at(0)},
                         it.first
                 );
+                g_mutex.lock();
                 if (m_uniqueSymbol ^ g_uniqueSymbol) {
                     qDebug() << m_uniqueSymbol << g_uniqueSymbol;
+                    g_mutex.unlock();
                     return;
                 } else {
+                    ri.searchID = m_uniqueSymbol;
                     m_searchResult->enqueue(ri);
+                    g_mutex.unlock();
                 }
             }
         }
diff -Nru ukui-search-5.0.0.4/libsearch/notesearch/note-search-plugin.h ukui-search-5.0.0.5/libsearch/notesearch/note-search-plugin.h
--- ukui-search-5.0.0.4/libsearch/notesearch/note-search-plugin.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/notesearch/note-search-plugin.h	2025-02-28 10:30:38.000000000 +0800
@@ -59,7 +59,7 @@
     bool isEnable() {return m_enable;}
     QString getPluginName();
 
-    void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
+    size_t KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
     void stopSearch();
     QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
     void openAction(int actionkey, QString key, int type);
diff -Nru ukui-search-5.0.0.4/libsearch/parser/binary-parser.cpp ukui-search-5.0.0.5/libsearch/parser/binary-parser.cpp
--- ukui-search-5.0.0.4/libsearch/parser/binary-parser.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/parser/binary-parser.cpp	1970-01-01 08:00:00.000000000 +0800
@@ -1,5441 +0,0 @@
-/*
- *
- * Copyright (C) 2023, KylinSoft Co., Ltd.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- *
- * Authors: iaom <zhangpengfei@kylinos.cn>
- */
-#include "binary-parser.h"
-#include <iostream>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "limits.h"
-#include <sys/stat.h>
-#include "common.h"
-
-#include <QtCore>
-using namespace std;
-
-// 字符匹配算法调用
-//#define USE_STDFIND
-#define USE_QT_CC
-
-static QDateTime DtFlag1;
-
-struct Properties {
-    ushort category         : 8; /* 5 needed */
-    ushort line_break_class : 8; /* 6 needed */
-    ushort direction        : 8; /* 5 needed */
-    ushort combiningClass   : 8;
-    ushort joining          : 2;
-    signed short digitValue : 6; /* 5 needed */
-    ushort unicodeVersion   : 4;
-    ushort lowerCaseSpecial : 1;
-    ushort upperCaseSpecial : 1;
-    ushort titleCaseSpecial : 1;
-    ushort caseFoldSpecial  : 1; /* currently unused */
-    signed short mirrorDiff    : 16;
-    signed short lowerCaseDiff : 16;
-    signed short upperCaseDiff : 16;
-    signed short titleCaseDiff : 16;
-    signed short caseFoldDiff  : 16;
-    ushort graphemeBreak    : 8; /* 4 needed */
-    ushort wordBreak        : 8; /* 4 needed */
-    ushort sentenceBreak    : 8; /* 4 needed */
-};
-
-static const unsigned short uc_property_trie[] = {
-    // 0 - 0x11000
-
-    6256, 6288, 6320, 6352, 6384, 6416, 6448, 6480,
-    6512, 6544, 6576, 6608, 6640, 6672, 6704, 6736,
-    6768, 6800, 6832, 6864, 6896, 6928, 6960, 6992,
-    7024, 7056, 7088, 7120, 7152, 7184, 7216, 7248,
-    7280, 7312, 7344, 6512, 7376, 6512, 7408, 7440,
-    7472, 7504, 7536, 7568, 7600, 7632, 7664, 7696,
-    7728, 7760, 7792, 7824, 7856, 7888, 7920, 7952,
-    7984, 8016, 8048, 8080, 8112, 8144, 8176, 8208,
-    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
-    8272, 8304, 8336, 8368, 8400, 8432, 8464, 8496,
-    8528, 8560, 8592, 8624, 8656, 8688, 8720, 8752,
-    8400, 8784, 8816, 8848, 8880, 8912, 8944, 8976,
-    9008, 9040, 9072, 9104, 9136, 9168, 9200, 9232,
-    9136, 9264, 9296, 9104, 9328, 9360, 9392, 9424,
-    9456, 9488, 9520, 9552, 9584, 9616, 9648, 9552,
-    9680, 9712, 9744, 9776, 9808, 9840, 9872, 9552,
-
-    9904, 9936, 9968, 9552, 9552, 10000, 10032, 10064,
-    10096, 10096, 10128, 10160, 10160, 10192, 10224, 10256,
-    10288, 10320, 10352, 10320, 10384, 10416, 10448, 10480,
-    10512, 10320, 10544, 10576, 10608, 10320, 10320, 10640,
-    10672, 10320, 10320, 10320, 10320, 10320, 10320, 10320,
-    10320, 10320, 10320, 10320, 10320, 10320, 10320, 10320,
-    10320, 10320, 10320, 10704, 10736, 10320, 10320, 10768,
-    10800, 10832, 10864, 10896, 9904, 10928, 10960, 10992,
-    11024, 10320, 11056, 11088, 10320, 11120, 9552, 9552,
-    11152, 11184, 11216, 11248, 11280, 11312, 11344, 11376,
-    11408, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    11440, 11472, 11504, 11536, 9552, 9552, 9552, 9552,
-    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    11568, 11600, 11632, 11664, 11696, 11728, 11760, 11792,
-    6512, 6512, 6512, 6512, 11824, 6512, 6512, 11856,
-    11888, 11920, 11952, 11984, 12016, 12048, 12080, 12112,
-
-    12144, 12176, 12208, 12240, 12272, 12304, 12336, 12368,
-    12400, 12432, 12464, 12496, 12528, 12560, 12592, 12624,
-    12656, 12688, 12720, 12752, 12784, 12816, 12848, 12880,
-    12912, 12944, 12976, 13008, 13040, 13072, 13104, 13136,
-    13168, 13200, 13232, 13264, 13296, 13328, 13360, 13392,
-    13168, 13168, 13168, 13168, 13424, 13456, 13488, 13520,
-    13552, 13168, 13168, 13584, 13616, 13648, 9552, 9552,
-    13680, 13712, 13744, 13776, 13808, 13840, 13872, 13904,
-    13936, 13936, 13936, 13936, 13936, 13936, 13936, 13936,
-    13968, 13968, 13968, 13968, 14000, 14032, 14064, 14096,
-    13968, 14128, 13968, 14160, 14192, 14224, 14256, 14288,
-    14320, 14352, 9552, 9552, 9552, 9552, 9552, 9552,
-    14384, 14416, 14448, 14480, 14512, 14512, 14512, 14544,
-    14576, 14608, 14640, 14672, 14704, 14736, 14736, 9552,
-    14768, 9552, 9552, 9552, 14800, 14832, 14832, 14864,
-    14832, 14832, 14832, 14832, 14832, 14832, 14896, 14928,
-
-    14960, 14992, 15024, 15056, 15088, 15120, 15152, 15184,
-    15216, 15248, 15280, 15280, 15312, 15344, 15376, 15408,
-    15440, 15472, 15504, 15536, 15472, 15568, 15600, 15632,
-    15664, 15664, 15664, 15696, 15664, 15664, 15728, 15760,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
-    15792, 15792, 15792, 15792, 15792, 15824, 11376, 11376,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 15856, 15856, 15856, 15856, 15888, 9552, 9552,
-
-    15920, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
-    15952, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
-    15952, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
-    15952, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
-    15952, 15952, 15952, 15952, 15984, 16016, 16048, 9552,
-    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    16080, 16112, 9552, 9552, 9552, 9552, 9552, 9552,
-    16144, 16176, 16208, 16240, 9552, 9552, 9552, 9552,
-    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
-    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
-    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
-    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
-
-    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
-    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
-    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
-    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
-    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
-    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
-    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
-    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
-    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
-    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
-    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
-    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
-    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
-    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
-    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
-    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
-
-    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
-    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
-    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
-    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
-    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
-    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
-    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
-    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
-    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
-    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
-    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
-    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
-    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
-    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
-    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
-    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
-
-    16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
-    16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
-    16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
-    16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
-    16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
-    16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
-    16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
-    16304, 16336, 16368, 16400, 16432, 16496, 9552, 9552,
-    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
-    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
-    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
-    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
-    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
-    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
-    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
-    16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
-
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
-    15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
-    15856, 16592, 16624, 16656, 16688, 16688, 16720, 9552,
-    16752, 16784, 16816, 16848, 16848, 16880, 16912, 16848,
-    16848, 16848, 16848, 16848, 16848, 16848, 16848, 16848,
-    16848, 16944, 16976, 16848, 17008, 16848, 17040, 17072,
-    17104, 17136, 17168, 17200, 16848, 16848, 16848, 17232,
-    17264, 17296, 17328, 17360, 17392, 17424, 17456, 17488,
-
-    17520, 17552, 17584, 9552, 17616, 17616, 17616, 17648,
-    17680, 17712, 17744, 17776, 17808, 9552, 9552, 9552,
-    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    17840, 17872, 17904, 9552, 17936, 14640, 17968, 9552,
-    18000, 18032, 18064, 17616, 18096, 18128, 9552, 9552,
-    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
-    18160, 18192, 8240, 8240, 8240, 8240, 8240, 8240,
-    18224, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
-    18256, 18288, 18320, 8240, 8240, 8240, 8240, 8240,
-    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
-    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
-    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
-    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
-    8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
-
-    // 0x11000 - 0x110000
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18608, 18608, 18608, 18864, 19120, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    19376, 19632, 19888, 20144, 20400, 20656, 20912, 21168,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
-    21680, 21680, 21680, 21680, 21680, 21680, 21936, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    21680, 21680, 22192, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    22448, 22704, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
-    18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 23216,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
-    22960, 22960, 22960, 22960, 22960, 22960, 22960, 23216,
-
-
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 1, 2, 3, 4, 5, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 6, 6, 6, 7,
-
-    8, 9, 10, 11, 12, 13, 14, 15,
-    16, 17, 14, 18, 19, 20, 21, 22,
-    23, 24, 25, 26, 27, 28, 29, 30,
-    31, 32, 33, 34, 35, 36, 37, 9,
-
-    14, 38, 38, 38, 38, 38, 38, 38,
-    38, 38, 38, 38, 38, 38, 38, 38,
-    38, 38, 38, 38, 38, 38, 38, 38,
-    38, 38, 38, 39, 40, 41, 42, 43,
-
-    42, 44, 44, 44, 44, 44, 44, 44,
-    44, 44, 44, 44, 44, 44, 44, 44,
-    44, 44, 44, 44, 44, 44, 44, 44,
-    44, 44, 44, 39, 45, 41, 36, 0,
-
-    0, 0, 0, 0, 0, 46, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-
-    47, 14, 48, 12, 12, 12, 49, 49,
-    42, 49, 50, 51, 36, 52, 49, 42,
-    53, 54, 55, 56, 57, 58, 49, 59,
-    42, 60, 50, 61, 62, 62, 62, 14,
-
-    38, 38, 38, 38, 38, 38, 38, 38,
-    38, 38, 38, 38, 38, 38, 38, 38,
-    38, 38, 38, 38, 38, 38, 38, 36,
-    38, 38, 38, 38, 38, 38, 38, 63,
-
-    44, 44, 44, 44, 44, 44, 44, 44,
-    44, 44, 44, 44, 44, 44, 44, 44,
-    44, 44, 44, 44, 44, 44, 44, 36,
-    44, 44, 44, 44, 44, 44, 44, 64,
-
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    67, 68, 65, 66, 65, 66, 65, 66,
-    50, 65, 66, 65, 66, 65, 66, 65,
-
-    66, 65, 66, 65, 66, 65, 66, 65,
-    66, 69, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    70, 65, 66, 65, 66, 65, 66, 71,
-
-    72, 73, 65, 66, 65, 66, 74, 65,
-    66, 75, 75, 65, 66, 50, 76, 77,
-    78, 65, 66, 75, 79, 80, 81, 82,
-    65, 66, 83, 50, 81, 84, 85, 86,
-
-    65, 66, 65, 66, 65, 66, 87, 65,
-    66, 87, 50, 50, 65, 66, 87, 65,
-    66, 88, 88, 65, 66, 65, 66, 89,
-    65, 66, 50, 90, 65, 66, 50, 91,
-
-    90, 90, 90, 90, 92, 93, 94, 92,
-    93, 94, 92, 93, 94, 65, 66, 65,
-    66, 65, 66, 65, 66, 65, 66, 65,
-    66, 65, 66, 65, 66, 95, 65, 66,
-
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    96, 92, 93, 94, 65, 66, 97, 98,
-    99, 100, 65, 66, 65, 66, 65, 66,
-
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    99, 100, 99, 100, 99, 100, 99, 100,
-
-    101, 102, 99, 100, 99, 100, 99, 100,
-    99, 100, 99, 100, 99, 100, 99, 100,
-    99, 100, 99, 100, 102, 102, 102, 103,
-    103, 103, 104, 105, 106, 107, 108, 103,
-
-    103, 105, 109, 110, 111, 112, 113, 109,
-    113, 109, 113, 109, 113, 109, 113, 109,
-    50, 50, 50, 114, 115, 50, 116, 116,
-    50, 117, 50, 118, 50, 50, 50, 50,
-
-    116, 50, 50, 119, 50, 50, 50, 50,
-    120, 121, 50, 122, 50, 50, 50, 121,
-    50, 50, 123, 50, 50, 124, 50, 50,
-    50, 50, 50, 50, 50, 125, 50, 50,
-
-    126, 50, 50, 126, 50, 50, 50, 50,
-    126, 127, 128, 128, 129, 50, 50, 50,
-    50, 50, 130, 50, 90, 50, 50, 50,
-    50, 50, 50, 50, 50, 50, 50, 50,
-
-    50, 50, 50, 50, 50, 50, 50, 50,
-    50, 131, 131, 131, 131, 131, 102, 102,
-    132, 132, 132, 132, 132, 132, 132, 132,
-    132, 133, 133, 134, 134, 134, 134, 134,
-
-    132, 132, 42, 42, 42, 42, 133, 133,
-    135, 133, 133, 133, 135, 133, 133, 133,
-    134, 134, 42, 42, 42, 42, 42, 42,
-    42, 42, 42, 42, 42, 42, 42, 136,
-
-    132, 132, 132, 132, 132, 42, 42, 42,
-    42, 42, 136, 136, 136, 136, 137, 138,
-    138, 138, 138, 138, 138, 138, 138, 138,
-    138, 138, 138, 138, 138, 138, 138, 138,
-
-    139, 139, 139, 139, 139, 139, 139, 139,
-    139, 139, 139, 139, 139, 139, 139, 139,
-    139, 139, 139, 139, 139, 140, 141, 141,
-    141, 141, 140, 142, 141, 141, 141, 141,
-
-    141, 143, 143, 141, 141, 141, 141, 143,
-    143, 141, 141, 141, 141, 141, 141, 141,
-    141, 141, 141, 141, 144, 144, 144, 144,
-    144, 141, 141, 141, 141, 139, 139, 139,
-
-    139, 139, 139, 139, 139, 145, 146, 147,
-    147, 147, 146, 146, 146, 147, 147, 148,
-    149, 149, 149, 150, 150, 150, 150, 149,
-    151, 152, 152, 153, 154, 155, 155, 156,
-
-    157, 157, 158, 159, 159, 159, 159, 159,
-    159, 159, 159, 159, 159, 159, 159, 159,
-    160, 160, 160, 160, 42, 42, 160, 160,
-    160, 160, 132, 161, 161, 161, 34, 160,
-
-    160, 160, 160, 160, 42, 42, 162, 14,
-    163, 163, 163, 160, 164, 160, 165, 165,
-    166, 38, 38, 38, 38, 38, 38, 38,
-    38, 38, 38, 38, 38, 38, 38, 38,
-
-    38, 38, 160, 38, 38, 38, 38, 38,
-    38, 38, 38, 38, 167, 168, 168, 168,
-    169, 44, 44, 44, 44, 44, 44, 44,
-    44, 44, 44, 44, 44, 44, 44, 44,
-
-    44, 44, 170, 44, 44, 44, 44, 44,
-    44, 44, 44, 44, 171, 172, 172, 160,
-    173, 174, 175, 175, 175, 176, 177, 131,
-    178, 179, 65, 100, 65, 100, 65, 100,
-
-    65, 100, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    180, 181, 182, 50, 183, 184, 185, 186,
-    187, 188, 186, 187, 103, 189, 189, 189,
-
-    190, 191, 191, 191, 191, 191, 191, 191,
-    191, 191, 191, 191, 191, 190, 191, 191,
-    38, 38, 38, 38, 38, 38, 38, 38,
-    38, 38, 38, 38, 38, 38, 38, 38,
-
-    38, 38, 38, 38, 38, 38, 38, 38,
-    38, 38, 38, 38, 38, 38, 38, 38,
-    44, 44, 44, 44, 44, 44, 44, 44,
-    44, 44, 44, 44, 44, 44, 44, 44,
-
-    44, 44, 44, 44, 44, 44, 44, 44,
-    44, 44, 44, 44, 44, 44, 44, 44,
-    192, 193, 193, 193, 193, 193, 193, 193,
-    193, 193, 193, 193, 193, 192, 193, 193,
-
-    65, 66, 194, 139, 139, 139, 139, 160,
-    195, 195, 178, 179, 99, 100, 99, 100,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-
-    196, 65, 66, 65, 66, 178, 179, 65,
-    66, 178, 179, 65, 66, 178, 179, 197,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 99, 100, 65, 66,
-    65, 66, 65, 66, 65, 66, 105, 106,
-    65, 66, 113, 109, 113, 109, 113, 109,
-
-    178, 179, 178, 179, 178, 179, 178, 179,
-    178, 179, 178, 179, 178, 179, 178, 179,
-    113, 109, 113, 109, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 198, 198, 198, 198, 198, 198, 198,
-    198, 198, 198, 198, 198, 198, 198, 198,
-
-    198, 198, 198, 198, 198, 198, 198, 198,
-    198, 198, 198, 198, 198, 198, 198, 198,
-    198, 198, 198, 198, 198, 198, 198, 160,
-    160, 134, 199, 199, 200, 199, 200, 199,
-
-    160, 201, 201, 201, 201, 201, 201, 201,
-    201, 201, 201, 201, 201, 201, 201, 201,
-    201, 201, 201, 201, 201, 201, 201, 201,
-    201, 201, 201, 201, 201, 201, 201, 201,
-
-    201, 201, 201, 201, 201, 201, 201, 202,
-    160, 203, 204, 160, 160, 160, 160, 160,
-    205, 206, 207, 207, 207, 207, 206, 207,
-    207, 207, 208, 206, 207, 207, 207, 207,
-
-    207, 207, 152, 206, 206, 206, 206, 206,
-    207, 207, 206, 207, 207, 208, 209, 207,
-    210, 211, 212, 213, 214, 215, 216, 217,
-    218, 219, 220, 221, 222, 223, 224, 225,
-
-    226, 227, 228, 226, 207, 152, 229, 230,
-    205, 205, 205, 205, 205, 205, 205, 205,
-    231, 231, 231, 231, 231, 231, 231, 231,
-    231, 231, 231, 231, 231, 231, 231, 231,
-
-    231, 231, 231, 231, 231, 231, 231, 231,
-    231, 231, 231, 205, 205, 205, 205, 205,
-    231, 231, 231, 232, 233, 205, 205, 205,
-    205, 205, 205, 205, 205, 205, 205, 205,
-
-    234, 234, 234, 234, 235, 235, 235, 235,
-    235, 235, 235, 236, 237, 238, 239, 239,
-    149, 149, 149, 149, 149, 149, 235, 235,
-    235, 235, 235, 240, 235, 235, 241, 242,
-
-    235, 243, 244, 244, 244, 244, 245, 244,
-    245, 244, 245, 245, 245, 245, 245, 244,
-    244, 244, 244, 245, 245, 245, 245, 245,
-    245, 245, 245, 235, 235, 235, 235, 235,
-
-    246, 245, 245, 245, 245, 245, 245, 245,
-    244, 245, 245, 247, 248, 249, 250, 251,
-    252, 253, 254, 146, 146, 147, 150, 149,
-    149, 153, 153, 153, 152, 153, 153, 235,
-
-    255, 256, 257, 258, 259, 260, 261, 262,
-    263, 264, 265, 266, 266, 267, 268, 268,
-    269, 244, 244, 244, 243, 244, 244, 244,
-    245, 245, 245, 245, 245, 245, 245, 245,
-
-    245, 245, 245, 245, 245, 245, 245, 245,
-    244, 244, 244, 244, 244, 244, 244, 244,
-    244, 244, 244, 244, 244, 244, 244, 244,
-    244, 244, 245, 245, 245, 245, 245, 245,
-
-    245, 245, 245, 245, 245, 245, 245, 245,
-    245, 245, 245, 245, 245, 245, 245, 245,
-    245, 245, 245, 245, 245, 245, 245, 245,
-    270, 270, 245, 245, 245, 245, 245, 270,
-
-    244, 245, 245, 244, 244, 244, 244, 244,
-    244, 244, 244, 244, 245, 244, 245, 271,
-    245, 245, 244, 244, 242, 244, 139, 139,
-    139, 139, 139, 139, 139, 272, 273, 139,
-
-    139, 139, 139, 141, 139, 274, 274, 139,
-    139, 49, 141, 139, 139, 141, 275, 275,
-    23, 24, 25, 26, 27, 28, 29, 30,
-    31, 32, 270, 270, 270, 276, 276, 277,
-
-    278, 278, 278, 279, 279, 279, 279, 279,
-    279, 279, 279, 279, 279, 279, 235, 280,
-    271, 281, 270, 270, 270, 271, 271, 271,
-    271, 271, 270, 270, 270, 270, 271, 270,
-
-    270, 270, 270, 270, 270, 270, 270, 270,
-    271, 270, 271, 270, 271, 277, 277, 275,
-    146, 147, 146, 146, 147, 146, 146, 147,
-    147, 147, 146, 147, 147, 146, 147, 146,
-
-    146, 146, 147, 146, 147, 146, 147, 146,
-    147, 146, 146, 235, 235, 275, 277, 277,
-    282, 282, 282, 282, 282, 282, 282, 282,
-    282, 283, 283, 283, 282, 282, 282, 282,
-
-    282, 282, 282, 282, 282, 282, 282, 282,
-    282, 282, 282, 283, 283, 282, 235, 235,
-    235, 235, 235, 235, 235, 235, 235, 235,
-    235, 235, 235, 235, 235, 235, 235, 235,
-
-    284, 284, 284, 284, 284, 284, 284, 284,
-    284, 284, 284, 284, 284, 284, 284, 284,
-    284, 284, 284, 284, 284, 284, 284, 284,
-    284, 284, 284, 284, 284, 284, 284, 284,
-
-    284, 284, 284, 284, 284, 284, 285, 285,
-    285, 285, 285, 285, 285, 285, 285, 285,
-    285, 286, 235, 235, 235, 235, 235, 235,
-    235, 235, 235, 235, 235, 235, 235, 235,
-
-    287, 288, 289, 290, 291, 292, 293, 294,
-    295, 296, 297, 297, 297, 297, 297, 297,
-    297, 297, 297, 297, 297, 297, 297, 297,
-    297, 297, 297, 297, 297, 297, 297, 297,
-
-    297, 297, 297, 297, 297, 297, 297, 297,
-    297, 297, 297, 298, 298, 298, 298, 298,
-    298, 298, 299, 298, 300, 300, 301, 302,
-    303, 304, 305, 205, 205, 205, 205, 205,
-
-    205, 205, 205, 205, 205, 205, 205, 205,
-    205, 205, 205, 205, 205, 205, 205, 205,
-    205, 205, 205, 205, 205, 205, 205, 205,
-    205, 205, 205, 205, 205, 205, 205, 205,
-
-    160, 306, 306, 307, 308, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 160, 160, 309, 90, 307, 307,
-
-    307, 306, 306, 306, 306, 306, 306, 306,
-    306, 307, 307, 307, 307, 310, 160, 160,
-    90, 139, 141, 139, 139, 160, 160, 160,
-    90, 90, 90, 90, 90, 90, 90, 90,
-
-    90, 90, 306, 306, 311, 311, 312, 313,
-    314, 315, 316, 317, 318, 319, 320, 321,
-    199, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 322, 322, 323, 322, 322,
-
-    160, 306, 307, 307, 160, 90, 90, 90,
-    90, 90, 90, 90, 90, 160, 160, 90,
-    90, 160, 160, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 160, 160, 160, 90, 90,
-    90, 90, 160, 160, 309, 308, 324, 307,
-
-    307, 306, 306, 306, 306, 160, 160, 307,
-    307, 160, 160, 307, 307, 310, 323, 160,
-    160, 160, 160, 160, 160, 160, 160, 324,
-    160, 160, 160, 160, 90, 90, 160, 90,
-
-    90, 90, 306, 306, 160, 160, 312, 313,
-    314, 315, 316, 317, 318, 319, 320, 321,
-    90, 90, 12, 12, 325, 325, 325, 325,
-    325, 325, 194, 160, 160, 160, 160, 160,
-
-    160, 326, 306, 327, 160, 90, 90, 90,
-    90, 90, 90, 160, 160, 160, 160, 90,
-    90, 160, 160, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 90, 160, 90, 90, 160,
-    90, 90, 160, 160, 309, 160, 307, 307,
-
-    307, 306, 306, 160, 160, 160, 160, 306,
-    306, 160, 160, 306, 306, 310, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 90, 90, 90, 90, 160, 90, 160,
-
-    160, 160, 160, 160, 160, 160, 312, 313,
-    314, 315, 316, 317, 318, 319, 320, 321,
-    306, 306, 90, 90, 90, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 306, 306, 307, 160, 90, 90, 90,
-    90, 90, 90, 90, 308, 90, 160, 90,
-    90, 90, 160, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 90, 160, 90, 90, 90,
-    90, 90, 160, 160, 309, 90, 307, 307,
-
-    307, 306, 306, 306, 306, 306, 160, 306,
-    306, 307, 160, 307, 307, 310, 160, 160,
-    90, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    90, 308, 326, 326, 160, 160, 312, 313,
-    314, 315, 316, 317, 318, 319, 320, 321,
-    160, 328, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 90, 160, 308, 90, 90,
-    90, 90, 160, 160, 309, 90, 324, 306,
-
-    307, 306, 306, 306, 160, 160, 160, 307,
-    307, 160, 160, 307, 307, 310, 160, 160,
-    160, 160, 160, 160, 160, 160, 306, 324,
-    160, 160, 160, 160, 90, 90, 160, 90,
-
-    90, 90, 160, 160, 160, 160, 312, 313,
-    314, 315, 316, 317, 318, 319, 320, 321,
-    194, 308, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 160, 306, 90, 160, 90, 90, 90,
-    90, 90, 90, 160, 160, 160, 90, 90,
-    90, 160, 90, 90, 90, 90, 160, 160,
-    160, 90, 90, 160, 90, 160, 90, 90,
-
-    160, 160, 160, 90, 90, 160, 160, 160,
-    90, 90, 90, 160, 160, 160, 90, 90,
-    90, 90, 90, 90, 90, 90, 323, 90,
-    90, 90, 160, 160, 160, 160, 324, 307,
-
-    306, 307, 307, 160, 160, 160, 307, 307,
-    307, 160, 307, 307, 307, 310, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 324,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 160, 160, 160, 160, 160, 329, 313,
-    314, 315, 316, 317, 318, 319, 320, 321,
-    325, 325, 325, 239, 239, 239, 239, 239,
-    239, 328, 239, 160, 160, 160, 160, 160,
-
-    160, 307, 307, 307, 160, 90, 90, 90,
-    90, 90, 90, 90, 90, 160, 90, 90,
-    90, 160, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 160, 90, 90, 90,
-    90, 90, 160, 160, 160, 160, 306, 306,
-
-    306, 307, 307, 307, 307, 160, 306, 306,
-    306, 160, 306, 306, 306, 310, 160, 160,
-    160, 160, 160, 160, 160, 330, 331, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    90, 90, 160, 160, 160, 160, 312, 313,
-    314, 315, 316, 317, 318, 319, 320, 321,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 160, 307, 307, 160, 90, 90, 90,
-    90, 90, 90, 90, 90, 160, 90, 90,
-    90, 160, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 160, 90, 90, 90,
-    90, 90, 160, 160, 332, 308, 307, 333,
-
-    307, 307, 324, 307, 307, 160, 333, 307,
-    307, 160, 307, 307, 306, 310, 160, 160,
-    160, 160, 160, 160, 160, 324, 324, 160,
-    160, 160, 160, 160, 160, 160, 90, 160,
-
-    90, 90, 334, 334, 160, 160, 312, 313,
-    314, 315, 316, 317, 318, 319, 320, 321,
-    160, 301, 301, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 160, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 160, 160, 160, 160, 324, 307,
-
-    307, 306, 306, 306, 160, 160, 307, 307,
-    307, 160, 307, 307, 307, 310, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 324,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 160, 335, 335, 160, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 160,
-    160, 160, 336, 336, 336, 336, 336, 336,
-
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 160, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 160, 336, 160, 160,
-
-    336, 336, 336, 336, 336, 336, 336, 160,
-    160, 160, 337, 160, 160, 160, 160, 338,
-    335, 335, 285, 285, 285, 160, 285, 160,
-    335, 335, 335, 335, 335, 335, 335, 338,
-
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 335, 335, 339, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 340, 340, 340, 340, 340, 340, 340,
-    340, 340, 340, 340, 340, 340, 340, 340,
-    340, 340, 340, 340, 340, 340, 340, 340,
-    340, 340, 340, 340, 340, 340, 340, 340,
-
-    340, 340, 340, 340, 340, 340, 340, 340,
-    340, 340, 340, 340, 340, 340, 340, 340,
-    340, 341, 340, 340, 341, 341, 341, 341,
-    342, 342, 343, 160, 160, 160, 160, 12,
-
-    340, 340, 340, 340, 340, 340, 344, 341,
-    345, 345, 345, 345, 341, 341, 341, 199,
-    312, 313, 314, 315, 316, 317, 318, 319,
-    320, 321, 346, 346, 160, 160, 160, 160,
-
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 340, 340, 160, 340, 160, 160, 340,
-    340, 160, 340, 160, 160, 340, 160, 160,
-    160, 160, 160, 160, 340, 340, 340, 340,
-    160, 340, 340, 340, 340, 340, 340, 340,
-
-    160, 340, 340, 340, 160, 340, 160, 340,
-    160, 160, 340, 340, 160, 340, 340, 340,
-    340, 341, 340, 340, 341, 341, 341, 341,
-    347, 347, 160, 341, 341, 340, 160, 160,
-
-    340, 340, 340, 340, 340, 160, 344, 160,
-    348, 348, 348, 348, 341, 341, 160, 160,
-    312, 313, 314, 315, 316, 317, 318, 319,
-    320, 321, 160, 160, 340, 340, 160, 160,
-
-    349, 350, 350, 350, 351, 352, 351, 351,
-    353, 351, 351, 354, 353, 355, 355, 355,
-    355, 355, 353, 356, 357, 356, 356, 356,
-    206, 206, 356, 356, 356, 356, 356, 356,
-
-    358, 359, 360, 361, 362, 363, 364, 365,
-    366, 367, 368, 368, 368, 368, 368, 368,
-    368, 368, 368, 368, 369, 206, 356, 206,
-    356, 370, 371, 372, 371, 372, 373, 373,
-
-    349, 349, 349, 349, 349, 349, 349, 349,
-    160, 349, 349, 349, 349, 349, 349, 349,
-    349, 349, 349, 349, 349, 349, 349, 349,
-    349, 349, 349, 349, 349, 349, 349, 349,
-
-    349, 349, 349, 349, 349, 349, 349, 349,
-    349, 349, 336, 160, 160, 160, 160, 160,
-    160, 374, 375, 376, 377, 376, 376, 376,
-    376, 376, 375, 375, 375, 375, 376, 378,
-
-    375, 376, 207, 207, 379, 354, 207, 207,
-    349, 349, 349, 349, 160, 160, 160, 160,
-    376, 376, 376, 376, 376, 376, 285, 376,
-    160, 376, 376, 376, 376, 376, 376, 376,
-
-    376, 376, 376, 376, 376, 376, 376, 376,
-    376, 376, 376, 376, 376, 376, 285, 285,
-    285, 376, 376, 376, 376, 376, 376, 376,
-    285, 376, 285, 285, 285, 160, 380, 380,
-
-    381, 381, 381, 381, 381, 381, 147, 381,
-    381, 381, 381, 381, 381, 160, 160, 381,
-    382, 382, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    383, 383, 383, 383, 383, 383, 383, 383,
-    383, 383, 383, 383, 383, 383, 383, 383,
-    383, 383, 383, 383, 383, 383, 383, 383,
-    383, 383, 383, 383, 383, 383, 383, 383,
-
-    383, 383, 160, 383, 383, 383, 383, 383,
-    160, 383, 383, 160, 384, 385, 385, 385,
-    385, 384, 385, 160, 160, 160, 385, 386,
-    384, 387, 160, 160, 160, 160, 160, 160,
-
-    388, 389, 390, 391, 392, 393, 394, 395,
-    396, 397, 398, 398, 339, 339, 339, 339,
-    383, 383, 383, 383, 383, 383, 384, 384,
-    385, 385, 160, 160, 160, 160, 160, 160,
-
-    399, 399, 399, 399, 399, 399, 399, 399,
-    399, 399, 399, 399, 399, 399, 399, 399,
-    399, 399, 399, 399, 399, 399, 399, 399,
-    399, 399, 399, 399, 399, 399, 399, 399,
-
-    399, 399, 399, 399, 399, 399, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 400,
-    400, 323, 323, 199, 401, 160, 160, 160,
-
-    402, 402, 402, 402, 402, 402, 402, 402,
-    402, 402, 402, 402, 402, 402, 402, 402,
-    402, 402, 402, 402, 402, 402, 402, 402,
-    402, 402, 402, 402, 402, 402, 402, 402,
-
-    402, 402, 402, 402, 402, 402, 402, 402,
-    402, 402, 402, 402, 402, 402, 402, 402,
-    402, 402, 402, 402, 402, 402, 402, 402,
-    402, 402, 160, 160, 160, 160, 160, 402,
-
-    403, 403, 403, 403, 403, 403, 403, 403,
-    403, 403, 403, 403, 403, 403, 403, 403,
-    403, 403, 403, 403, 403, 403, 403, 403,
-    403, 403, 403, 403, 403, 403, 403, 403,
-
-    403, 403, 403, 160, 160, 160, 160, 160,
-    404, 404, 404, 404, 404, 404, 404, 404,
-    404, 404, 404, 404, 404, 404, 404, 404,
-    404, 404, 404, 404, 404, 404, 404, 404,
-
-    404, 404, 404, 404, 404, 404, 404, 404,
-    404, 404, 404, 404, 404, 404, 404, 404,
-    404, 404, 404, 404, 404, 404, 404, 404,
-    404, 404, 404, 404, 404, 404, 404, 404,
-
-    404, 404, 404, 404, 404, 404, 404, 404,
-    404, 404, 404, 404, 404, 404, 404, 404,
-    404, 404, 404, 404, 404, 404, 404, 404,
-    404, 404, 160, 160, 160, 160, 160, 160,
-
-    336, 336, 336, 336, 336, 336, 336, 323,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-
-    336, 336, 336, 336, 336, 336, 336, 323,
-    336, 160, 336, 336, 336, 336, 160, 160,
-    336, 336, 336, 336, 336, 336, 336, 160,
-    336, 160, 336, 336, 336, 336, 160, 160,
-
-    336, 336, 336, 336, 336, 336, 336, 323,
-    336, 160, 336, 336, 336, 336, 160, 160,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 323,
-    336, 160, 336, 336, 336, 336, 160, 160,
-    336, 336, 336, 336, 336, 336, 336, 160,
-
-    336, 160, 336, 336, 336, 336, 160, 160,
-    336, 336, 336, 336, 336, 336, 336, 323,
-    336, 336, 336, 336, 336, 336, 336, 160,
-    336, 336, 336, 336, 336, 336, 336, 336,
-
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 323,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 323,
-    336, 160, 336, 336, 336, 336, 160, 160,
-    336, 336, 336, 336, 336, 336, 336, 323,
-
-    336, 336, 336, 336, 336, 336, 336, 323,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 160, 160, 160, 160, 153,
-
-    405, 406, 407, 339, 339, 339, 339, 407,
-    407, 408, 409, 410, 411, 412, 413, 414,
-    415, 416, 417, 417, 417, 417, 417, 417,
-    417, 417, 417, 417, 417, 160, 160, 160,
-
-    323, 323, 323, 323, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 323,
-    418, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 160, 160, 160, 160, 160, 160,
-
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 339, 407, 336,
-    336, 336, 336, 336, 336, 336, 336, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    419, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 420, 421, 160, 160, 160,
-
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 406, 406, 406, 422, 422,
-    422, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    400, 400, 400, 400, 400, 400, 400, 400,
-    400, 400, 400, 400, 400, 160, 400, 400,
-    400, 400, 423, 423, 424, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    400, 400, 400, 400, 400, 400, 400, 400,
-    400, 400, 400, 400, 400, 400, 400, 400,
-    400, 400, 423, 423, 424, 425, 425, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    400, 400, 400, 400, 400, 400, 400, 400,
-    400, 400, 400, 400, 400, 400, 400, 400,
-    400, 400, 423, 423, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    400, 400, 400, 400, 400, 400, 400, 400,
-    400, 400, 400, 400, 400, 160, 400, 400,
-    400, 160, 423, 423, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    383, 383, 383, 383, 383, 383, 383, 383,
-    383, 383, 383, 383, 383, 383, 383, 383,
-    383, 383, 383, 383, 426, 426, 384, 385,
-    385, 385, 385, 385, 385, 385, 384, 384,
-
-    384, 384, 384, 384, 384, 384, 385, 384,
-    384, 385, 385, 385, 385, 385, 385, 385,
-    385, 385, 387, 385, 406, 406, 427, 428,
-    406, 339, 406, 429, 383, 430, 160, 160,
-
-    388, 389, 390, 391, 392, 393, 394, 395,
-    396, 397, 160, 160, 160, 160, 160, 160,
-    431, 431, 431, 431, 431, 431, 431, 431,
-    431, 431, 160, 160, 160, 160, 160, 160,
-
-    432, 432, 433, 434, 433, 433, 435, 432,
-    433, 434, 432, 285, 285, 285, 436, 160,
-    388, 389, 390, 391, 392, 393, 394, 395,
-    396, 397, 160, 160, 160, 160, 160, 160,
-
-    336, 336, 336, 137, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 336, 336, 336, 336, 336, 336, 336,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    336, 336, 336, 336, 336, 336, 336, 336,
-    336, 437, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 160, 160, 160,
-
-    326, 326, 326, 327, 327, 327, 327, 326,
-    326, 438, 438, 438, 160, 160, 160, 160,
-    327, 327, 326, 327, 327, 327, 327, 327,
-    327, 439, 149, 150, 160, 160, 160, 160,
-
-    239, 160, 160, 160, 440, 440, 441, 442,
-    443, 444, 445, 446, 447, 448, 449, 450,
-    451, 451, 451, 451, 451, 451, 451, 451,
-    451, 451, 451, 451, 451, 451, 451, 451,
-
-    451, 451, 451, 451, 451, 451, 451, 451,
-    451, 451, 451, 451, 451, 451, 160, 160,
-    451, 451, 451, 451, 451, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    452, 452, 452, 452, 452, 452, 452, 452,
-    452, 452, 452, 452, 452, 452, 452, 452,
-    452, 452, 452, 452, 452, 452, 452, 452,
-    452, 452, 452, 452, 452, 452, 452, 452,
-
-    452, 452, 452, 452, 452, 452, 452, 452,
-    452, 452, 160, 160, 160, 160, 160, 160,
-    453, 453, 453, 453, 453, 453, 453, 453,
-    453, 453, 453, 453, 453, 453, 453, 453,
-
-    453, 452, 452, 452, 452, 452, 452, 452,
-    453, 453, 160, 160, 160, 160, 160, 160,
-    329, 454, 455, 456, 457, 458, 459, 460,
-    461, 462, 160, 160, 160, 160, 463, 463,
-
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-
-    323, 323, 323, 323, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 153,
-    152, 464, 464, 464, 160, 160, 465, 466,
-
-    334, 334, 334, 334, 467, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 468, 467, 334, 334,
-    334, 334, 334, 467, 334, 467, 467, 467,
-
-    467, 467, 334, 467, 469, 322, 322, 322,
-    322, 322, 322, 322, 160, 160, 160, 160,
-    470, 471, 472, 473, 474, 475, 476, 477,
-    478, 479, 480, 480, 481, 481, 480, 480,
-
-    481, 482, 482, 482, 482, 482, 482, 482,
-    482, 482, 482, 298, 299, 298, 298, 298,
-    298, 298, 298, 298, 482, 482, 482, 482,
-    482, 482, 482, 482, 482, 160, 160, 160,
-
-    102, 102, 102, 102, 102, 102, 102, 102,
-    102, 102, 102, 102, 102, 102, 102, 102,
-    102, 102, 102, 102, 102, 102, 102, 102,
-    102, 102, 102, 102, 102, 102, 102, 102,
-
-    102, 102, 102, 102, 102, 102, 102, 102,
-    102, 102, 102, 102, 483, 483, 483, 483,
-    483, 483, 483, 483, 483, 483, 483, 483,
-    483, 483, 483, 483, 483, 483, 483, 483,
-
-    483, 483, 483, 483, 483, 483, 483, 483,
-    483, 483, 483, 483, 483, 483, 483, 483,
-    483, 483, 483, 483, 483, 483, 483, 483,
-    483, 483, 483, 483, 483, 483, 483, 483,
-
-    483, 483, 102, 102, 102, 102, 102, 102,
-    102, 102, 102, 102, 103, 103, 103, 103,
-    103, 103, 103, 103, 103, 103, 103, 103,
-    484, 103, 103, 103, 103, 485, 103, 103,
-
-    103, 103, 103, 103, 103, 103, 103, 103,
-    103, 103, 103, 103, 103, 103, 103, 103,
-    103, 103, 103, 103, 103, 103, 103, 103,
-    103, 103, 103, 484, 484, 484, 484, 484,
-
-    484, 484, 484, 484, 484, 484, 484, 484,
-    484, 484, 484, 484, 484, 484, 484, 484,
-    484, 484, 484, 484, 484, 484, 484, 484,
-    484, 484, 484, 484, 484, 484, 484, 484,
-
-    153, 153, 152, 153, 298, 298, 298, 298,
-    298, 298, 299, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 298, 299,
-
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 486, 487,
-    488, 489, 490, 491, 160, 160, 160, 160,
-
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 65, 66, 65, 66, 65, 66,
-    65, 66, 160, 160, 160, 160, 160, 160,
-
-    492, 492, 492, 492, 492, 492, 492, 492,
-    493, 493, 493, 493, 493, 493, 493, 493,
-    492, 492, 492, 492, 492, 492, 160, 160,
-    493, 493, 493, 493, 493, 493, 160, 160,
-
-    492, 492, 492, 492, 492, 492, 492, 492,
-    493, 493, 493, 493, 493, 493, 493, 493,
-    492, 492, 492, 492, 492, 492, 492, 492,
-    493, 493, 493, 493, 493, 493, 493, 493,
-
-    492, 492, 492, 492, 492, 492, 160, 160,
-    493, 493, 493, 493, 493, 493, 160, 160,
-    494, 492, 495, 492, 496, 492, 497, 492,
-    160, 493, 160, 493, 160, 493, 160, 493,
-
-    492, 492, 492, 492, 492, 492, 492, 492,
-    493, 493, 493, 493, 493, 493, 493, 493,
-    498, 498, 499, 499, 499, 499, 500, 500,
-    501, 501, 502, 502, 503, 503, 160, 160,
-
-    504, 505, 506, 507, 508, 509, 510, 511,
-    512, 513, 514, 515, 516, 517, 518, 519,
-    520, 521, 522, 523, 524, 525, 526, 527,
-    528, 529, 530, 531, 532, 533, 534, 535,
-
-    536, 537, 538, 539, 540, 541, 542, 543,
-    544, 545, 546, 547, 548, 549, 550, 551,
-    492, 492, 552, 553, 554, 160, 555, 556,
-    493, 493, 557, 557, 558, 42, 559, 42,
-
-    42, 42, 560, 561, 562, 160, 563, 564,
-    565, 565, 565, 565, 566, 42, 42, 42,
-    492, 492, 567, 166, 160, 160, 568, 569,
-    493, 493, 570, 570, 160, 42, 42, 42,
-
-    492, 492, 571, 169, 572, 182, 573, 574,
-    493, 493, 575, 575, 576, 42, 42, 42,
-    160, 160, 577, 578, 579, 160, 580, 581,
-    582, 582, 583, 583, 584, 42, 42, 160,
-
-    585, 585, 585, 585, 585, 585, 585, 586,
-    585, 585, 585, 587, 588, 589, 590, 591,
-    592, 593, 592, 592, 594, 595, 14, 14,
-    596, 597, 598, 599, 596, 600, 598, 599,
-
-    14, 14, 14, 14, 601, 601, 601, 602,
-    603, 604, 605, 606, 607, 608, 609, 610,
-    13, 13, 13, 13, 13, 611, 611, 611,
-    14, 596, 600, 14, 612, 612, 14, 43,
-
-    43, 14, 14, 14, 613, 16, 17, 614,
-    615, 615, 432, 432, 432, 432, 616, 616,
-    616, 616, 185, 617, 618, 619, 620, 616,
-    620, 620, 620, 620, 619, 620, 620, 621,
-
-    622, 623, 623, 623, 160, 160, 160, 160,
-    160, 160, 624, 624, 624, 624, 624, 624,
-    625, 626, 160, 160, 627, 628, 629, 630,
-    631, 632, 633, 633, 36, 16, 17, 50,
-
-    625, 60, 55, 56, 627, 628, 629, 630,
-    631, 632, 633, 633, 36, 16, 17, 160,
-    484, 484, 484, 484, 484, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    12, 12, 12, 12, 12, 12, 12, 48,
-    12, 12, 12, 634, 635, 429, 429, 429,
-    636, 636, 637, 637, 637, 637, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    139, 139, 144, 144, 139, 139, 139, 139,
-    144, 144, 144, 139, 139, 273, 273, 273,
-
-    273, 139, 195, 195, 638, 639, 639, 159,
-    640, 159, 639, 641, 299, 299, 299, 299,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    49, 49, 175, 642, 49, 49, 49, 175,
-    49, 642, 50, 175, 175, 175, 50, 50,
-    175, 175, 175, 50, 49, 175, 643, 49,
-    49, 175, 175, 175, 175, 175, 49, 49,
-
-    49, 49, 49, 49, 175, 49, 644, 49,
-    175, 49, 645, 646, 175, 175, 647, 50,
-    175, 175, 648, 175, 50, 90, 90, 90,
-    90, 131, 649, 239, 103, 626, 650, 650,
-
-    185, 185, 185, 185, 185, 650, 626, 626,
-    626, 626, 651, 185, 418, 301, 652, 160,
-    160, 160, 160, 62, 62, 62, 62, 62,
-    62, 62, 62, 62, 62, 62, 62, 62,
-
-    653, 653, 653, 653, 653, 653, 653, 653,
-    653, 653, 653, 653, 653, 653, 653, 653,
-    654, 654, 654, 654, 654, 654, 654, 654,
-    654, 654, 654, 654, 654, 654, 654, 654,
-
-    655, 655, 655, 99, 109, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    36, 36, 36, 36, 36, 49, 49, 49,
-    49, 49, 36, 36, 49, 49, 49, 49,
-
-    36, 49, 49, 36, 49, 49, 36, 49,
-    49, 49, 49, 49, 49, 49, 36, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 36, 36,
-    49, 49, 36, 49, 36, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 649, 649, 649, 649, 649,
-    649, 649, 649, 649, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-
-    36, 36, 36, 36, 36, 36, 36, 36,
-    656, 656, 656, 657, 657, 657, 36, 36,
-    36, 36, 18, 54, 36, 658, 36, 36,
-    36, 36, 36, 36, 36, 36, 36, 36,
-
-    36, 36, 36, 36, 36, 36, 36, 36,
-    36, 36, 36, 36, 36, 36, 36, 36,
-    36, 36, 36, 36, 36, 36, 36, 36,
-    36, 36, 36, 36, 659, 660, 36, 36,
-
-    36, 36, 36, 661, 36, 36, 36, 36,
-    36, 36, 36, 36, 36, 36, 36, 36,
-    36, 36, 659, 660, 659, 660, 36, 36,
-    36, 36, 36, 36, 36, 36, 36, 36,
-
-    36, 36, 36, 36, 659, 660, 659, 660,
-    659, 660, 659, 660, 36, 36, 659, 660,
-    659, 660, 659, 660, 659, 660, 659, 660,
-    659, 660, 659, 660, 659, 660, 659, 660,
-
-    659, 660, 659, 660, 659, 660, 659, 660,
-    659, 660, 659, 660, 36, 36, 36, 659,
-    660, 659, 660, 36, 36, 36, 36, 36,
-    662, 36, 36, 36, 36, 36, 36, 36,
-
-    36, 36, 659, 660, 36, 36, 663, 36,
-    664, 665, 36, 665, 36, 36, 36, 36,
-    659, 660, 659, 660, 659, 660, 659, 660,
-    36, 36, 36, 36, 36, 36, 36, 36,
-
-    36, 36, 36, 36, 36, 36, 36, 36,
-    36, 659, 660, 659, 660, 666, 36, 36,
-    659, 660, 36, 36, 36, 36, 659, 660,
-    659, 660, 659, 660, 659, 660, 659, 660,
-
-    659, 660, 659, 660, 659, 660, 659, 660,
-    659, 660, 659, 660, 659, 660, 36, 36,
-    659, 660, 667, 667, 667, 185, 668, 668,
-    185, 185, 669, 669, 669, 670, 670, 185,
-
-    49, 649, 49, 49, 49, 49, 49, 49,
-    659, 660, 659, 660, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-
-    36, 36, 49, 49, 49, 49, 49, 49,
-    49, 16, 17, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 194, 194,
-    194, 194, 194, 194, 194, 194, 194, 194,
-
-    194, 194, 194, 194, 194, 194, 194, 194,
-    194, 194, 194, 194, 194, 194, 194, 194,
-    194, 194, 194, 194, 194, 194, 194, 194,
-    194, 194, 194, 194, 194, 194, 194, 194,
-
-    194, 194, 194, 194, 194, 194, 194, 194,
-    194, 194, 194, 194, 194, 194, 194, 194,
-    194, 194, 194, 194, 194, 194, 194, 194,
-    194, 194, 194, 649, 185, 649, 649, 649,
-
-    649, 649, 649, 649, 649, 649, 649, 649,
-    649, 649, 649, 649, 649, 649, 649, 649,
-    649, 649, 649, 649, 649, 381, 649, 649,
-    649, 649, 649, 185, 185, 185, 185, 185,
-
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 651, 651, 651, 651,
-    651, 651, 651, 651, 651, 651, 651, 651,
-
-    651, 651, 651, 651, 651, 651, 651, 651,
-    651, 651, 651, 651, 651, 651, 651, 239,
-    239, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 418, 418, 671, 671, 671, 671,
-
-    671, 671, 301, 301, 301, 301, 301, 301,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-
-    49, 49, 49, 49, 49, 649, 649, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    672, 673, 674, 675, 676, 677, 678, 679,
-    680, 62, 62, 62, 62, 62, 62, 62,
-    62, 62, 62, 62, 672, 673, 674, 675,
-    676, 677, 678, 679, 680, 62, 62, 62,
-
-    62, 62, 62, 62, 62, 62, 62, 62,
-    60, 55, 56, 627, 628, 629, 630, 631,
-    632, 681, 681, 681, 681, 681, 681, 681,
-    681, 681, 681, 681, 194, 194, 194, 194,
-
-    194, 194, 194, 194, 194, 194, 194, 194,
-    194, 194, 194, 194, 194, 194, 194, 194,
-    194, 194, 194, 194, 194, 194, 682, 682,
-    682, 682, 682, 682, 682, 682, 682, 682,
-
-    682, 682, 682, 682, 682, 682, 682, 682,
-    682, 682, 682, 682, 682, 682, 682, 682,
-    683, 683, 683, 683, 683, 683, 683, 683,
-    683, 683, 683, 683, 683, 683, 683, 683,
-
-    683, 683, 683, 683, 683, 683, 683, 683,
-    683, 683, 684, 685, 685, 685, 685, 685,
-    685, 685, 685, 685, 685, 686, 687, 688,
-    689, 690, 691, 692, 693, 694, 685, 695,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 651, 651,
-    651, 651, 651, 651, 651, 651, 651, 651,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 36,
-    49, 49, 49, 49, 49, 49, 49, 49,
-
-    49, 36, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    649, 649, 649, 649, 649, 649, 649, 649,
-    185, 185, 185, 185, 185, 185, 185, 185,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 239, 239, 651, 651,
-    418, 649, 49, 49, 49, 49, 49, 49,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 36,
-    649, 649, 651, 651, 651, 651, 651, 651,
-    651, 651, 651, 651, 651, 651, 418, 418,
-
-    651, 651, 651, 651, 651, 651, 651, 651,
-    651, 651, 239, 239, 239, 239, 239, 239,
-    239, 239, 418, 418, 418, 418, 418, 418,
-    418, 418, 418, 418, 418, 160, 160, 160,
-
-    239, 239, 418, 418, 418, 418, 418, 418,
-    418, 418, 418, 418, 405, 418, 418, 418,
-    418, 418, 301, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 49, 49, 49, 49, 160, 49, 49,
-    49, 49, 160, 160, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    160, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 160, 49, 160, 49,
-    49, 49, 49, 160, 160, 160, 49, 160,
-    49, 49, 49, 696, 696, 696, 696, 160,
-
-    160, 49, 697, 697, 49, 49, 49, 49,
-    698, 699, 698, 699, 698, 699, 698, 699,
-    698, 699, 698, 699, 698, 699, 672, 673,
-    674, 675, 676, 677, 678, 679, 680, 62,
-
-    672, 673, 674, 675, 676, 677, 678, 679,
-    680, 62, 672, 673, 674, 675, 676, 677,
-    678, 679, 680, 62, 49, 160, 160, 160,
-    49, 49, 49, 49, 49, 49, 49, 49,
-
-    49, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 49,
-    160, 49, 49, 49, 49, 49, 49, 49,
-    49, 49, 49, 49, 49, 49, 49, 160,
-
-    700, 700, 700, 701, 702, 703, 704, 671,
-    671, 671, 671, 160, 160, 160, 160, 160,
-    185, 185, 185, 185, 185, 705, 706, 185,
-    185, 185, 185, 185, 185, 705, 706, 185,
-
-    185, 185, 705, 706, 705, 706, 698, 699,
-    698, 699, 698, 699, 160, 160, 160, 160,
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-
-    381, 381, 381, 381, 381, 381, 381, 381,
-    381, 381, 381, 381, 381, 381, 381, 381,
-    381, 381, 381, 381, 381, 381, 381, 381,
-    381, 381, 381, 381, 381, 381, 381, 381,
-
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-
-    185, 185, 185, 698, 699, 698, 699, 698,
-    699, 698, 699, 698, 699, 707, 708, 709,
-    710, 698, 699, 698, 699, 698, 699, 698,
-    699, 185, 185, 185, 185, 185, 185, 185,
-
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-    711, 185, 185, 185, 185, 185, 185, 185,
-
-    705, 706, 185, 185, 705, 706, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 705,
-    706, 705, 706, 185, 705, 706, 185, 185,
-    698, 699, 698, 699, 185, 185, 185, 185,
-
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 712, 185, 185,
-    705, 706, 185, 185, 698, 699, 185, 185,
-
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 705, 706, 705, 706, 185,
-    185, 185, 185, 185, 705, 706, 185, 185,
-    185, 185, 185, 185, 705, 706, 185, 185,
-
-    185, 185, 185, 185, 705, 706, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 185,
-    185, 705, 706, 185, 185, 705, 706, 705,
-
-    706, 705, 706, 705, 706, 185, 185, 185,
-    185, 185, 185, 705, 706, 185, 185, 185,
-    185, 705, 706, 705, 706, 705, 706, 705,
-    706, 705, 706, 705, 706, 185, 185, 185,
-
-    185, 705, 706, 185, 185, 185, 705, 706,
-    705, 706, 705, 706, 705, 706, 185, 705,
-    706, 185, 185, 705, 706, 185, 185, 185,
-    185, 185, 185, 705, 706, 705, 706, 705,
-
-    706, 705, 706, 705, 706, 705, 706, 185,
-    185, 185, 185, 185, 185, 705, 706, 705,
-    706, 705, 706, 705, 706, 705, 706, 185,
-    185, 185, 185, 185, 185, 185, 713, 185,
-
-    185, 185, 185, 714, 715, 714, 185, 185,
-    185, 185, 185, 185, 705, 706, 185, 185,
-    185, 185, 185, 185, 185, 185, 185, 705,
-    706, 705, 706, 185, 185, 185, 185, 185,
-
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 418, 418,
-    418, 418, 418, 418, 301, 301, 301, 301,
-    301, 301, 301, 160, 160, 160, 160, 160,
-
-    301, 301, 301, 301, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    716, 716, 716, 716, 716, 716, 716, 716,
-    716, 716, 716, 716, 716, 716, 716, 716,
-    716, 716, 716, 716, 716, 716, 716, 716,
-    716, 716, 716, 716, 716, 716, 716, 716,
-
-    716, 716, 716, 716, 716, 716, 716, 716,
-    716, 716, 716, 716, 716, 716, 716, 160,
-    717, 717, 717, 717, 717, 717, 717, 717,
-    717, 717, 717, 717, 717, 717, 717, 717,
-
-    717, 717, 717, 717, 717, 717, 717, 717,
-    717, 717, 717, 717, 717, 717, 717, 717,
-    717, 717, 717, 717, 717, 717, 717, 717,
-    717, 717, 717, 717, 717, 717, 717, 160,
-
-    113, 109, 718, 719, 720, 721, 722, 113,
-    109, 113, 109, 113, 109, 160, 160, 160,
-    160, 160, 160, 160, 723, 113, 109, 723,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    105, 106, 105, 106, 105, 106, 105, 106,
-    105, 106, 105, 106, 105, 106, 105, 106,
-    105, 106, 105, 106, 105, 106, 105, 106,
-    105, 106, 105, 106, 105, 106, 105, 106,
-
-    105, 106, 105, 106, 103, 418, 418, 418,
-    418, 418, 418, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 620, 620, 620, 620, 724, 620, 620,
-
-    725, 725, 725, 725, 725, 725, 725, 725,
-    725, 725, 725, 725, 725, 725, 725, 725,
-    725, 725, 725, 725, 725, 725, 725, 725,
-    725, 725, 725, 725, 725, 725, 725, 725,
-
-    725, 725, 725, 725, 725, 725, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    323, 323, 323, 323, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 323,
-
-    323, 323, 323, 323, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 323,
-
-    323, 323, 323, 323, 323, 323, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 401,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    323, 323, 323, 323, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    323, 323, 323, 323, 323, 323, 323, 160,
-    323, 323, 323, 323, 323, 323, 323, 160,
-    323, 323, 323, 323, 323, 323, 323, 160,
-    323, 323, 323, 323, 323, 323, 323, 160,
-
-    726, 726, 727, 728, 727, 728, 726, 726,
-    726, 727, 728, 726, 727, 728, 620, 620,
-    620, 620, 620, 620, 620, 620, 619, 729,
-    160, 160, 160, 160, 727, 728, 160, 160,
-
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 160, 730, 730, 730, 730, 730,
-
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 730, 730,
-
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 160, 160, 160, 160,
-
-    731, 732, 733, 734, 735, 736, 737, 738,
-    16, 17, 16, 17, 16, 17, 16, 17,
-    16, 17, 735, 735, 16, 17, 16, 17,
-    16, 17, 16, 17, 739, 16, 17, 740,
-
-    735, 738, 738, 738, 738, 738, 738, 738,
-    738, 738, 741, 742, 140, 743, 744, 744,
-    745, 746, 746, 746, 746, 746, 735, 735,
-    747, 747, 747, 748, 749, 750, 730, 735,
-
-    160, 751, 737, 751, 737, 751, 737, 751,
-    737, 751, 737, 737, 737, 737, 737, 737,
-    737, 737, 737, 737, 737, 737, 737, 737,
-    737, 737, 737, 737, 737, 737, 737, 737,
-
-    737, 737, 737, 751, 737, 737, 737, 737,
-    737, 737, 737, 737, 737, 737, 737, 737,
-    737, 737, 737, 737, 737, 737, 737, 737,
-    737, 737, 737, 737, 737, 737, 737, 737,
-
-    737, 737, 737, 751, 737, 751, 737, 751,
-    737, 737, 737, 737, 737, 737, 751, 737,
-    737, 737, 737, 737, 737, 752, 752, 160,
-    160, 753, 753, 754, 754, 755, 755, 756,
-
-    757, 758, 759, 758, 759, 758, 759, 758,
-    759, 758, 759, 759, 759, 759, 759, 759,
-    759, 759, 759, 759, 759, 759, 759, 759,
-    759, 759, 759, 759, 759, 759, 759, 759,
-
-    759, 759, 759, 758, 759, 759, 759, 759,
-    759, 759, 759, 759, 759, 759, 759, 759,
-    759, 759, 759, 759, 759, 759, 759, 759,
-    759, 759, 759, 759, 759, 759, 759, 759,
-
-    759, 759, 759, 758, 759, 758, 759, 758,
-    759, 759, 759, 759, 759, 759, 758, 759,
-    759, 759, 759, 759, 759, 758, 758, 759,
-    759, 759, 759, 760, 761, 761, 761, 762,
-
-    160, 160, 160, 160, 160, 763, 763, 763,
-    763, 763, 763, 763, 763, 763, 763, 763,
-    763, 763, 763, 763, 763, 763, 763, 763,
-    763, 763, 763, 763, 763, 763, 763, 763,
-
-    763, 763, 763, 763, 763, 763, 763, 763,
-    763, 763, 763, 763, 763, 160, 160, 160,
-    160, 763, 763, 763, 763, 763, 763, 763,
-    763, 763, 763, 763, 763, 763, 763, 763,
-
-    763, 763, 763, 763, 763, 763, 763, 763,
-    763, 763, 763, 763, 763, 763, 763, 763,
-    763, 763, 763, 763, 763, 763, 763, 763,
-    763, 763, 763, 763, 763, 763, 763, 763,
-
-    763, 763, 763, 763, 763, 763, 763, 763,
-    763, 763, 763, 763, 763, 763, 763, 160,
-    764, 764, 765, 765, 765, 765, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-
-    766, 766, 766, 766, 766, 766, 766, 766,
-    766, 766, 766, 766, 766, 766, 766, 766,
-    766, 766, 766, 766, 766, 766, 766, 766,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    767, 767, 767, 767, 767, 767, 767, 767,
-    767, 767, 767, 767, 767, 767, 767, 767,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    768, 768, 768, 768, 768, 768, 768, 768,
-    768, 768, 768, 768, 768, 768, 768, 768,
-
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 769, 769, 160,
-
-    765, 765, 765, 765, 765, 765, 765, 765,
-    765, 765, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-
-    764, 764, 764, 764, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    769, 770, 770, 770, 770, 770, 770, 770,
-    770, 770, 770, 770, 770, 770, 770, 770,
-
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 769, 769, 767, 764,
-
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 770, 770, 770, 770, 770, 770, 770,
-    770, 770, 770, 770, 770, 770, 770, 770,
-
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 769, 769, 769, 769,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 160,
-
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 769,
-    769, 769, 769, 764, 764, 764, 764, 764,
-
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 769, 769,
-
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 764,
-    764, 764, 764, 764, 764, 764, 764, 769,
-
-    771, 771, 771, 771, 771, 771, 771, 771,
-    771, 771, 771, 771, 771, 771, 771, 771,
-    771, 771, 771, 771, 771, 771, 771, 771,
-    771, 771, 771, 771, 771, 771, 771, 771,
-
-    771, 771, 771, 771, 771, 771, 771, 771,
-    771, 771, 771, 771, 771, 771, 771, 771,
-    771, 771, 771, 771, 771, 771, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    737, 737, 737, 737, 737, 737, 737, 737,
-    737, 737, 737, 737, 737, 737, 737, 737,
-    737, 737, 737, 737, 737, 737, 737, 737,
-    737, 737, 737, 737, 737, 737, 737, 737,
-
-    737, 737, 737, 737, 737, 737, 772, 772,
-    772, 772, 772, 772, 772, 772, 772, 772,
-    772, 772, 772, 772, 772, 772, 772, 772,
-    772, 772, 772, 772, 160, 160, 160, 160,
-
-    766, 766, 766, 766, 766, 766, 766, 766,
-    766, 766, 766, 766, 766, 766, 766, 766,
-    766, 766, 766, 766, 766, 773, 766, 766,
-    766, 766, 766, 766, 766, 766, 766, 766,
-
-    766, 766, 766, 766, 766, 766, 766, 766,
-    766, 766, 766, 766, 766, 766, 766, 766,
-    766, 766, 766, 766, 766, 766, 766, 766,
-    766, 766, 766, 766, 766, 766, 766, 766,
-
-    766, 766, 766, 766, 766, 766, 766, 766,
-    766, 766, 766, 766, 766, 160, 160, 160,
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 730, 730,
-
-    730, 730, 774, 774, 730, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 730, 730,
-    730, 730, 730, 730, 774, 730, 730, 730,
-    730, 730, 730, 730, 730, 730, 730, 730,
-
-    730, 774, 730, 730, 730, 774, 730, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    775, 775, 775, 775, 775, 775, 775, 775,
-    775, 775, 775, 775, 775, 775, 775, 775,
-    775, 775, 775, 775, 775, 775, 775, 776,
-    776, 776, 776, 160, 160, 160, 160, 160,
-
-    777, 777, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    323, 323, 778, 323, 323, 323, 779, 323,
-    323, 323, 323, 780, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 323,
-    323, 323, 323, 323, 323, 323, 323, 323,
-
-    323, 323, 323, 464, 464, 780, 780, 464,
-    418, 418, 418, 418, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 781, 781, 304, 304,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    782, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 782, 783, 783, 783,
-
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-    782, 783, 783, 783, 783, 783, 783, 783,
-
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 782, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-    782, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 782, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-
-    783, 783, 783, 783, 783, 783, 783, 783,
-    782, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-
-    783, 783, 783, 783, 782, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-    783, 783, 783, 783, 783, 783, 783, 783,
-
-    783, 783, 783, 783, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    784, 784, 784, 784, 784, 784, 784, 784,
-    784, 784, 784, 784, 784, 784, 784, 784,
-    784, 784, 784, 784, 784, 784, 784, 784,
-    784, 784, 784, 784, 784, 784, 784, 784,
-
-    785, 785, 785, 785, 785, 785, 785, 785,
-    785, 785, 785, 785, 785, 785, 785, 785,
-    785, 785, 785, 785, 785, 785, 785, 785,
-    785, 785, 785, 785, 785, 785, 785, 785,
-
-    737, 737, 737, 737, 737, 737, 737, 737,
-    737, 737, 737, 737, 737, 737, 160, 160,
-    786, 786, 786, 786, 786, 786, 786, 786,
-    786, 786, 786, 786, 786, 786, 786, 786,
-
-    786, 786, 786, 786, 786, 786, 786, 786,
-    786, 786, 786, 786, 786, 786, 786, 786,
-    786, 786, 786, 786, 786, 786, 786, 786,
-    786, 786, 786, 786, 786, 786, 786, 786,
-
-    786, 786, 786, 786, 786, 786, 786, 786,
-    786, 786, 786, 160, 160, 160, 160, 160,
-    772, 772, 772, 772, 772, 772, 772, 772,
-    772, 772, 772, 772, 772, 772, 772, 772,
-
-    772, 772, 772, 772, 772, 772, 772, 772,
-    772, 772, 772, 772, 772, 772, 772, 772,
-    772, 772, 772, 772, 772, 772, 772, 772,
-    772, 772, 772, 772, 772, 772, 772, 772,
-
-    772, 772, 772, 772, 772, 772, 772, 772,
-    772, 772, 772, 772, 772, 772, 772, 772,
-    772, 772, 772, 772, 772, 772, 772, 772,
-    772, 772, 160, 160, 160, 160, 160, 160,
-
-    787, 788, 789, 790, 791, 792, 792, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 793, 794, 795, 796, 797,
-    160, 160, 160, 160, 160, 798, 799, 231,
-
-    231, 231, 231, 231, 231, 231, 231, 231,
-    231, 633, 231, 231, 231, 231, 231, 231,
-    231, 231, 231, 231, 231, 231, 231, 205,
-    231, 231, 231, 231, 231, 205, 231, 205,
-
-    231, 231, 205, 231, 231, 205, 231, 231,
-    231, 231, 231, 231, 231, 231, 231, 231,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 235, 235, 235, 235, 235, 235,
-    235, 235, 235, 235, 235, 235, 235, 235,
-
-    235, 235, 235, 235, 235, 235, 235, 235,
-    235, 235, 235, 235, 235, 235, 235, 235,
-    235, 235, 235, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 598, 740,
-
-    235, 235, 235, 235, 235, 235, 235, 235,
-    235, 235, 235, 235, 235, 235, 235, 235,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    235, 235, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-
-    243, 243, 243, 243, 243, 243, 243, 243,
-    235, 235, 235, 235, 235, 235, 235, 235,
-    800, 800, 800, 800, 800, 800, 800, 800,
-    800, 800, 800, 800, 800, 800, 800, 800,
-
-    800, 800, 800, 800, 800, 800, 800, 800,
-    800, 800, 800, 800, 800, 800, 800, 800,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 801, 239, 235, 235,
-
-    423, 423, 423, 423, 423, 423, 423, 423,
-    423, 423, 423, 423, 423, 423, 423, 423,
-    802, 803, 803, 802, 802, 804, 804, 805,
-    806, 807, 160, 160, 160, 160, 160, 160,
-
-    139, 139, 139, 139, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    734, 745, 745, 808, 808, 598, 740, 598,
-    740, 598, 740, 598, 740, 598, 740, 598,
-
-    740, 598, 740, 598, 740, 750, 750, 809,
-    810, 734, 734, 734, 734, 808, 808, 808,
-    811, 734, 812, 160, 760, 813, 9, 9,
-    745, 16, 17, 16, 17, 16, 17, 814,
-
-    734, 734, 815, 816, 817, 818, 819, 160,
-    734, 12, 13, 734, 160, 160, 160, 160,
-    243, 243, 243, 286, 243, 235, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 243, 243, 243,
-    243, 243, 243, 243, 243, 235, 235, 820,
-
-    160, 9, 734, 814, 12, 13, 734, 734,
-    16, 17, 734, 815, 811, 816, 812, 821,
-    822, 823, 824, 825, 826, 827, 828, 829,
-    830, 831, 813, 760, 832, 819, 833, 9,
-
-    734, 834, 834, 834, 834, 834, 834, 834,
-    834, 834, 834, 834, 834, 834, 834, 834,
-    834, 834, 834, 834, 834, 834, 834, 834,
-    834, 834, 834, 39, 734, 41, 835, 808,
-
-    835, 836, 836, 836, 836, 836, 836, 836,
-    836, 836, 836, 836, 836, 836, 836, 836,
-    836, 836, 836, 836, 836, 836, 836, 836,
-    836, 836, 836, 39, 819, 41, 819, 698,
-
-    699, 733, 16, 17, 732, 760, 837, 758,
-    758, 758, 758, 758, 758, 758, 758, 758,
-    761, 837, 837, 837, 837, 837, 837, 837,
-    837, 837, 837, 837, 837, 837, 837, 837,
-
-    837, 837, 837, 837, 837, 837, 837, 837,
-    837, 837, 837, 837, 837, 837, 837, 837,
-    837, 837, 837, 837, 837, 837, 837, 837,
-    837, 837, 837, 837, 837, 837, 761, 761,
-
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 90,
-    90, 90, 90, 90, 90, 90, 90, 160,
-
-    160, 160, 90, 90, 90, 90, 90, 90,
-    160, 160, 90, 90, 90, 90, 90, 90,
-    160, 160, 90, 90, 90, 90, 90, 90,
-    160, 160, 90, 90, 90, 160, 160, 160,
-
-    48, 12, 819, 835, 735, 12, 12, 160,
-    49, 36, 36, 36, 36, 49, 49, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 838, 838, 838, 839, 49, 840, 840,
-
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 160, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-
-    308, 308, 308, 308, 308, 308, 308, 160,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 160, 308, 308, 160, 308,
-
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 160, 160,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 160, 160,
-
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 160, 160, 160, 160, 160,
-
-    841, 842, 843, 160, 160, 160, 160, 844,
-    844, 844, 844, 844, 844, 844, 844, 844,
-    844, 844, 844, 844, 844, 844, 844, 844,
-    844, 844, 844, 844, 844, 844, 844, 844,
-
-    844, 844, 844, 844, 844, 844, 844, 844,
-    844, 844, 844, 844, 844, 844, 844, 844,
-    844, 844, 844, 844, 160, 160, 160, 845,
-    845, 845, 845, 845, 845, 845, 845, 845,
-
-    846, 846, 846, 846, 846, 846, 846, 846,
-    846, 846, 846, 846, 846, 846, 846, 846,
-    846, 846, 846, 846, 846, 846, 846, 846,
-    846, 846, 846, 846, 846, 846, 846, 846,
-
-    846, 846, 846, 846, 846, 846, 846, 846,
-    846, 846, 846, 846, 846, 846, 846, 846,
-    846, 846, 846, 846, 846, 724, 724, 724,
-    724, 418, 418, 418, 418, 418, 418, 418,
-
-    418, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 724, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    847, 847, 847, 847, 847, 847, 847, 847,
-    847, 847, 847, 847, 847, 847, 847, 847,
-    847, 847, 847, 847, 847, 847, 847, 847,
-    847, 847, 847, 847, 847, 847, 847, 160,
-
-    848, 848, 848, 848, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    847, 847, 847, 847, 847, 847, 847, 847,
-    847, 847, 847, 847, 847, 847, 847, 847,
-
-    847, 849, 847, 847, 847, 847, 847, 847,
-    847, 847, 849, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 160, 841,
-
-    323, 323, 323, 323, 160, 160, 160, 160,
-    323, 323, 323, 323, 323, 323, 323, 323,
-    465, 850, 850, 850, 850, 850, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    851, 851, 851, 851, 851, 851, 851, 851,
-    851, 851, 851, 851, 851, 851, 851, 851,
-    851, 851, 851, 851, 851, 851, 851, 851,
-    851, 851, 851, 851, 851, 851, 851, 851,
-
-    851, 851, 851, 851, 851, 851, 852, 852,
-    853, 853, 853, 853, 853, 853, 853, 853,
-    853, 853, 853, 853, 853, 853, 853, 853,
-    853, 853, 853, 853, 853, 853, 853, 853,
-
-    853, 853, 853, 853, 853, 853, 853, 853,
-    853, 853, 853, 853, 853, 853, 854, 854,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 308, 308,
-    308, 308, 308, 308, 308, 308, 160, 160,
-
-    441, 442, 443, 444, 445, 446, 447, 448,
-    449, 450, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    855, 855, 855, 855, 855, 855, 205, 205,
-    855, 205, 855, 855, 855, 855, 855, 855,
-    855, 855, 855, 855, 855, 855, 855, 855,
-    855, 855, 855, 855, 855, 855, 855, 855,
-
-    855, 855, 855, 855, 855, 855, 855, 855,
-    855, 855, 855, 855, 855, 855, 855, 855,
-    855, 855, 855, 855, 855, 855, 205, 855,
-    855, 205, 205, 205, 855, 205, 205, 855,
-
-    856, 856, 856, 856, 856, 856, 856, 856,
-    856, 856, 856, 856, 856, 856, 856, 856,
-    856, 856, 856, 856, 856, 856, 857, 857,
-    857, 857, 205, 205, 205, 205, 205, 858,
-
-    859, 780, 780, 780, 205, 780, 780, 205,
-    205, 205, 205, 205, 780, 152, 780, 153,
-    859, 859, 859, 859, 205, 859, 859, 859,
-    205, 859, 859, 859, 859, 859, 859, 859,
-
-    859, 859, 859, 859, 859, 859, 859, 859,
-    859, 859, 859, 859, 859, 859, 859, 859,
-    859, 859, 859, 859, 205, 205, 205, 205,
-    153, 641, 152, 205, 205, 205, 205, 779,
-
-    860, 861, 862, 863, 864, 864, 864, 864,
-    205, 205, 205, 205, 205, 205, 205, 205,
-    865, 865, 865, 865, 865, 865, 865, 865,
-    866, 205, 205, 205, 205, 205, 205, 205,
-
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 322,
-    322, 322, 322, 322, 322, 322, 322, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 867, 867, 867, 867, 867,
-    867, 867, 867, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    481, 481, 481, 481, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 160,
-    160, 160, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 869, 870, 871,
-    871, 871, 868, 868, 868, 872, 869, 869,
-    869, 869, 869, 873, 873, 873, 873, 873,
-    873, 873, 873, 874, 874, 874, 874, 874,
-    874, 874, 874, 868, 868, 875, 875, 875,
-    875, 875, 874, 874, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 875, 875, 875, 875, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 868, 868,
-    868, 868, 868, 868, 868, 868, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    418, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 418, 418, 418, 418, 418, 418,
-    418, 418, 153, 153, 153, 418, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 239,
-    239, 239, 239, 239, 239, 239, 239, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    876, 876, 876, 876, 876, 876, 876, 876,
-    876, 876, 876, 876, 876, 876, 876, 876,
-    876, 876, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 878, 878,
-    878, 878, 878, 878, 878, 160, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 877, 160, 877, 877,
-    160, 160, 877, 160, 160, 877, 877, 160,
-    160, 877, 877, 877, 877, 160, 877, 877,
-    877, 877, 877, 877, 877, 877, 878, 878,
-    878, 878, 160, 878, 160, 878, 878, 878,
-    878, 102, 878, 878, 160, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-
-    878, 878, 878, 878, 877, 877, 160, 877,
-    877, 877, 877, 160, 160, 877, 877, 877,
-    877, 877, 877, 877, 877, 160, 877, 877,
-    877, 877, 877, 877, 877, 160, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    877, 877, 160, 877, 877, 877, 877, 160,
-    877, 877, 877, 877, 877, 160, 877, 160,
-    160, 160, 877, 877, 877, 877, 877, 877,
-    877, 160, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-
-    878, 878, 878, 878, 878, 878, 878, 878,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 103, 103, 160, 160,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 879, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 879, 878, 878, 878, 878,
-    878, 878, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 879, 878, 878, 878, 878,
-
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 879, 878, 878,
-    878, 878, 878, 878, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 879, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 879,
-    878, 878, 878, 878, 878, 878, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 879,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 879, 878, 878, 878, 878, 878, 878,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 877, 877, 877, 877, 877, 877, 877,
-    877, 879, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 878, 878, 878, 878, 878,
-    878, 878, 878, 879, 878, 878, 878, 878,
-    878, 878, 880, 723, 160, 160, 881, 882,
-    883, 884, 885, 886, 887, 888, 889, 890,
-    881, 882, 883, 884, 885, 886, 887, 888,
-    889, 890, 881, 882, 883, 884, 885, 886,
-    887, 888, 889, 890, 881, 882, 883, 884,
-    885, 886, 887, 888, 889, 890, 881, 882,
-    883, 884, 885, 886, 887, 888, 889, 890,
-
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 891, 891,
-
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 892, 892,
-    892, 892, 892, 892, 892, 892, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    160, 873, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    873, 873, 873, 873, 873, 873, 873, 873,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    326, 326, 326, 326, 326, 326, 326, 326,
-    160, 160, 160, 160, 160, 160, 160, 160,
-    160, 160, 160, 160, 160, 160, 160, 160,
-
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 893, 893,
-    893, 893, 893, 893, 893, 893, 891, 891,
-};
-
-#define GET_PROP_INDEX(ucs4) \
-	   (ucs4 < 0x11000 \
-		? (uc_property_trie[uc_property_trie[ucs4>>5] + (ucs4 & 0x1f)]) \
-		: (uc_property_trie[uc_property_trie[((ucs4 - 0x11000)>>8) + 0x880] + (ucs4 & 0xff)]))
-
-#define GET_PROP_INDEX_UCS2(ucs2) \
-(uc_property_trie[uc_property_trie[ucs2>>5] + (ucs2 & 0x1f)])
-
-static const Properties uc_properties[] = {
-    { 10, 19, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0 },
-    { 10, 15, 8, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3 },
-    { 10, 30, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1 },
-    { 10, 31, 8, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3 },
-    { 10, 31, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3 },
-    { 10, 29, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1 },
-    { 10, 19, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0 },
-    { 10, 19, 8, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0 },
-    { 7, 28, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
-    { 26, 5, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 26, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
-    { 26, 11, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 28, 8, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 9, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10 },
-    { 22, 0, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
-    { 23, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
-    { 27, 8, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
-    { 21, 14, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8 },
-    { 26, 6, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 10, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 26, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
-    { 26, 7, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 3, 5 },
-    { 22, 0, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 10 },
-    { 26, 8, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 23, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 10 },
-    { 29, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 20, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -32, -32, 0, 0, 3, 4 },
-    { 27, 15, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 10, 11, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1 },
-    { 7, 3, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 28, 9, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
-    { 24, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 10 },
-    { 11, 15, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 30, 9, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 8, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 2, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 29, 16, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 743, 743, 775, 0, 3, 4 },
-    { 26, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
-    { 6, 11, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 25, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 10 },
-    { 6, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 121, 121, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -232, -232, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 85, 85, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -121, 0, 0, -121, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -300, -300, -268, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 195, 195, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 210, 0, 0, 210, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 206, 0, 0, 206, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 205, 0, 0, 205, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 79, 0, 0, 79, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 202, 0, 0, 202, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 203, 0, 0, 203, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 207, 0, 0, 207, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 97, 97, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 211, 0, 0, 211, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 209, 0, 0, 209, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 163, 163, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 213, 0, 0, 213, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 130, 130, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 214, 0, 0, 214, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 218, 0, 0, 218, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 217, 0, 0, 217, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 219, 0, 0, 219, 0, 3, 5 },
-    { 19, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 56, 56, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 2, 0, 1, 2, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 1, -1, 0, 1, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -2, -1, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -79, -79, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 96, 96, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, -97, 0, 0, -97, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, -56, 0, 0, -56, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, -130, 0, 0, -130, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 10795, 0, 0, 10795, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, -163, 0, 0, -163, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 10792, 0, 0, 10792, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -195, 0, 0, -195, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 69, 0, 0, 69, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 71, 0, 0, 71, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -210, -210, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -206, -206, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -205, -205, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -202, -202, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -203, -203, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -207, -207, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -209, -209, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -211, -211, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 10743, 10743, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -213, -213, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -214, -214, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 10727, 10727, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -218, -218, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -69, -69, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -217, -217, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -71, -71, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -219, -219, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
-    { 18, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
-    { 18, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 18, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 18, 16, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 29, 11, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 18, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 29, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 19, 17, 230, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 232, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 220, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 216, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 202, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 240, 0, -1, 1, 0, 0, 0, 0, 0, 0, 84, 84, 116, 4, 1, 0 },
-    { 1, 19, 17, 230, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 220, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 3, 17, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 230, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 220, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 232, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 220, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 230, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 3, 17, 233, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 3, 17, 234, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 3, 17, 233, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 3, 17, 234, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 3, 17, 233, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 230, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 14, 11, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 130, 130, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 38, 0, 0, 38, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 37, 0, 0, 37, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 64, 0, 0, 64, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 63, 0, 0, 63, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 88, 88, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -38, -38, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -37, -37, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 92, 92, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -31, -31, 1, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -64, -64, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -63, -63, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -62, -62, -30, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -57, -57, -25, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -47, -47, -15, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -54, -54, -22, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -86, -86, -54, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -80, -80, -48, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, -60, 0, 0, -60, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, -96, -96, -64, 0, 3, 4 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 15, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, -7, 0, 0, -7, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, -130, 0, 0, -130, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 80, 0, 0, 80, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 80, 0, 0, 80, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, -80, -80, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -80, -80, 0, 0, 3, 4 },
-    { 30, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 3, 19, 17, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 15, 0, 0, 15, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -15, -15, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 48, 0, 0, 48, 0, 3, 5 },
-    { 26, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -48, -48, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 52, 49, 0, 0, 3, 4 },
-    { 26, 7, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9 },
-    { 21, 15, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 14, 11, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 19, 17, 220, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 230, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 222, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 228, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 10, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 11, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 12, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 13, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 14, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 15, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 16, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 17, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 18, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 19, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 19, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 20, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 21, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 22, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 26, 15, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 19, 17, 23, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 26, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 19, 17, 24, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 25, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 26, 5, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 19, 17, 18, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 19, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 26, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 26, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
-    { 11, 11, 13, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 14, 11, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 28, 9, 13, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 5, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 7, 13, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
-    { 30, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 5, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 5, 13, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 5, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 19, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 13, 0, 2, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 13, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 18, 11, 13, 0, 3, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 27, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 28, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 29, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 30, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 31, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 32, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 33, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 34, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 4, 10, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 5, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 5, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 5, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 5, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 5, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 5, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 5, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 5, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 5, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 26, 5, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 10, 5, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 26, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 11, 13, 0, 1, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 35, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 19, 11, 13, 0, 1, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 13, 0, 2, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 11, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 3, 19, 17, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 18, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 13, 0, 2, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 30, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 11, 13, 0, 1, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 26, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 26, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 11, 11, 18, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 1, 19, 17, 36, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 19, 11, 13, 0, 1, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 13, 0, 2, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 19, 11, 13, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 4, 10, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 1, 0, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 1, 0, 0, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 1, 0, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 1, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 1, 0, 0, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 1, 0, 0, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 1, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 1, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 1, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 19, 11, 1, 0, 1, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 230, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 220, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 18, 11, 1, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 30, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 7, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
-    { 26, 5, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 18, 11, 1, 0, 3, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 2, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 7, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 9, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 26, 15, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 4, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 19, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 2, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 6, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 19, 17, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 2, 19, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 28, 8, 4, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 10, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 1, 19, 17, 84, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 91, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 7, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 2, 19, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 9, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 2, 19, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 26, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 26, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 1, 26, 17, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 26, 17, 103, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 26, 17, 9, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 18, 26, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 1, 26, 17, 107, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 26, 15, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 26, 17, 118, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 26, 17, 122, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 19, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 30, 16, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 16, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 3, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 15, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 5, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 5, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 10, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 6, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 15, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 19, 17, 216, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 22, 0, 10, 0, 0, -1, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
-    { 23, 1, 10, 0, 0, -1, 2, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
-    { 2, 19, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 19, 17, 129, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 130, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 132, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 2, 15, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 9, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 30, 15, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 16, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 2, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 1, 26, 17, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 26, 17, 7, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 26, 17, 9, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 4, 10, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 26, 15, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 7264, 0, 0, 7264, 0, 3, 5 },
-    { 19, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 18, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 23, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 6 },
-    { 19, 24, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 6 },
-    { 19, 25, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 6 },
-    { 30, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 15, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 6, 11, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 0, 0, 0, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 7, 15, 9, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
-    { 22, 0, 10, 0, 0, -1, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
-    { 23, 1, 10, 0, 0, -1, 4, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
-    { 5, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 9, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 26, 15, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 11, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 26, 4, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 18, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 28, 8, 4, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 26, 17, 230, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 6, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 11, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 15, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 15, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 21, 16, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 7, 3, 9, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
-    { 1, 19, 17, 228, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 2, 19, 17, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 222, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 26, 5, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 4, 10, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 19, 26, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 19, 26, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 2, 26, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 4, 10, 0, 0, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 5, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 26, 26, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 2, 19, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 26, 15, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 2, 19, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 7, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 2, 19, 0, 9, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 10, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 26, 15, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 26, 15, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 18, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
-    { 18, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 3814, 3814, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 99, 99, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 102, 102, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 105, 105, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 108, 108, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 111, 111, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, -59, -59, -58, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -8, 0, 0, -8, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 114, 114, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 117, 117, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 121, 121, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 125, 125, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 74, 74, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 86, 86, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 100, 100, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 112, 112, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 126, 126, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 163, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 166, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 169, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 172, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 175, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 178, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 181, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 184, 8, 0, 0, 3, 4 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 163, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 166, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 169, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 172, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 175, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 178, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 181, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 184, 0, -8, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 187, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 190, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 193, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 196, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 199, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 202, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 205, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 208, 8, 0, 0, 3, 4 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 187, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 190, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 193, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 196, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 199, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 202, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 205, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 208, 0, -8, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 211, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 214, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 217, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 220, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 223, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 226, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 229, 8, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 232, 8, 0, 0, 3, 4 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 211, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 214, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 217, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 220, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 223, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 226, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 229, 0, -8, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 232, 0, -8, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 247, 244, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 235, 9, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 253, 250, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 129, 129, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 284, 280, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -74, 0, 0, -74, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -9, 235, 0, -9, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -7205, -7205, -7173, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 259, 256, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 238, 9, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 265, 262, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 132, 132, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 292, 288, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -86, 0, 0, -86, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -9, 238, 0, -9, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 135, 135, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 139, 139, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 142, 142, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -100, 0, 0, -100, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 146, 146, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 150, 150, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 153, 153, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 156, 156, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -112, 0, 0, -112, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -7, 0, 0, -7, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 271, 268, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 241, 9, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 277, 274, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 160, 160, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 300, 296, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -128, 0, 0, -128, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -126, 0, 0, -126, 0, 3, 5 },
-    { 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -9, 241, 0, -9, 0, 3, 5 },
-    { 7, 15, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
-    { 7, 3, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
-    { 11, 18, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 11, 19, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 11, 19, 18, 0, 3, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 11, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 11, 19, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 21, 15, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 21, 3, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 21, 17, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 21, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 24, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
-    { 25, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 4, 10 },
-    { 22, 0, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
-    { 24, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
-    { 25, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
-    { 26, 13, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 15, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
-    { 8, 31, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1 },
-    { 9, 31, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1 },
-    { 11, 19, 11, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 11, 19, 14, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 11, 19, 16, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 11, 19, 12, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 11, 19, 15, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 7, 3, 6, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
-    { 26, 9, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 27, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
-    { 26, 4, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 26, 4, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 26, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 20, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0 },
-    { 26, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 15, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 7, 15, 9, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
-    { 11, 20, 18, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 11, 11, 18, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 11, 19, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 6, 11, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 16, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
-    { 6, 11, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 2, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 2, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 2, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 2, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 28, 8, 4, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 28, 8, 4, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 28, 8, 4, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 28, 8, 4, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 3, 19, 17, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 1, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 220, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 1, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 30, 9, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 8, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -7517, 0, 0, -7517, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -8383, 0, 0, -8383, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -8262, 0, 0, -8262, 0, 3, 5 },
-    { 30, 11, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 28, 0, 0, 28, 0, 3, 5 },
-    { 30, 11, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 15, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
-    { 30, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -28, -28, 0, 0, 3, 4 },
-    { 5, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 3, 5 },
-    { 5, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -16, -16, 0, 0, 3, 4 },
-    { 5, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2016, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1824, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2104, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2108, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2106, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -138, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 2, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 26, 0, 0, 26, 0, 3, 5 },
-    { 30, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -26, -26, 0, 0, 3, 4 },
-    { 6, 11, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 9, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 10, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
-    { 30, 5, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 22, 0, 10, 0, 0, -1, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
-    { 23, 1, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
-    { 27, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
-    { 22, 0, 10, 0, 0, -1, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
-    { 23, 1, 10, 0, 0, -1, 8, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
-    { 22, 0, 10, 0, 0, -1, 6, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 10 },
-    { 23, 1, 10, 0, 0, -1, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
-    { 22, 0, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
-    { 23, 1, 10, 0, 0, -1, 6, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 10 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1824, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2016, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2104, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2106, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2108, 0, 0, 0, 0, 0, 0, 0 },
-    { 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 48, 0, 0, 48, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, -48, -48, 0, 0, 3, 4 },
-    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -10743, 0, 0, -10743, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -3814, 0, 0, -3814, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -10727, 0, 0, -10727, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -10795, -10795, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -10792, -10792, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
-    { 6, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, -7264, -7264, 0, 0, 3, 4 },
-    { 26, 2, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
-    { 24, 2, 10, 0, 0, -1, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
-    { 25, 2, 10, 0, 0, -1, 8, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
-    { 21, 15, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 12, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 7, 12, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
-    { 26, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 26, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 18, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 5, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 21, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 23, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
-    { 1, 19, 17, 218, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 228, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 222, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 224, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 21, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 18, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
-    { 5, 12, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 18, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 26, 12, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 19, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 1, 19, 17, 8, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 29, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 },
-    { 18, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 19, 12, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 21, 4, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 },
-    { 19, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
-    { 19, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
-    { 26, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 18, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
-    { 19, 12, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
-    { 19, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 30, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 12, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 30, 12, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
-    { 30, 12, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 12, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 12, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 19, 12, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 18, 4, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 30, 12, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 29, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 18, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 29, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 2, 19, 17, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 19, 17, 9, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 26, 16, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 21, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 6 },
-    { 19, 22, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 6 },
-    { 12, 27, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 13, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 12, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 12, 9, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 18, 15, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 24, 21, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 31, 27, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 39, 35, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 46, 43, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 58, 55, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 64, 61, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 70, 67, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 76, 73, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 82, 79, 0, 0, 3, 4 },
-    { 19, 11, 1, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 1, 19, 17, 26, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 14, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 28, 9, 13, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 7, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
-    { 26, 1, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 5, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 22, 0, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
-    { 23, 1, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
-    { 26, 13, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 20, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0 },
-    { 22, 0, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
-    { 23, 1, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
-    { 26, 1, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 1, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
-    { 26, 4, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 12, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 12, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 21, 12, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 11, 20, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 26, 12, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 12, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 12, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 12, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 12, 2, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 12, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 12, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 12, 2, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 12, 2, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 12, 2, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 4, 12, 2, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 },
-    { 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0 },
-    { 15, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 3, 5 },
-    { 29, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 16, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -32, -32, 0, 0, 3, 4 },
-    { 19, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
-    { 11, 19, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 30, 11, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 14, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 15, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 15, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 15, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 30, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 5, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 6, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 5, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 5, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 15, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 40, 0, 0, 40, 0, 3, 5 },
-    { 15, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 40, 0, 0, 40, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, -40, -40, 0, 0, 3, 4 },
-    { 16, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, -40, -40, 0, 0, 3, 4 },
-    { 19, 11, 1, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 19, 11, 1, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 6, 11, 1, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 15, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 11, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 6, 11, 1, 0, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 1, 0, 0, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 1, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 1, 0, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 6, 11, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 15, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 26, 11, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 5, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
-    { 30, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 2, 19, 0, 216, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 2, 19, 0, 216, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 1, 19, 17, 1, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 2, 19, 0, 226, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 11, 19, 18, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
-    { 1, 19, 17, 220, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 1, 19, 17, 230, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
-    { 6, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 15, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
-    { 16, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
-    { 27, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
-    { 4, 10, 2, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 4, 10, 2, 0, 0, 9, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
-    { 14, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { 19, 12, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
-    { 13, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-};
-
-
-static inline const Properties *qGetProp(ushort ucs2) {
-    int index = GET_PROP_INDEX_UCS2(ucs2);
-    return uc_properties + index;
-}
-
-#define MAX_BUFF_SIZE (long)1024*1024
-/* Block sizes */
-#define HEADER_SIZE			768
-#define BIG_BLOCK_SIZE			512
-#define PROPERTY_SET_STORAGE_SIZE	128
-#define SMALL_BLOCK_SIZE		 64
-
-/* PPT Data*/
-#define PPT_RECORD_HEADER 8
-#define PPT_TEXTCHARATOM 0x0FA0
-#define PPT_TEXTBYTEATOM 0x0FA8
-
-/* Special block numbers */
-#define END_OF_CHAIN			0xfffffffeUL
-#define UNUSED_BLOCK			0xffffffffUL
-
-/* Switch size of Depot use */
-#define MIN_SIZE_FOR_BBD_USE		0x1000
-
-#define STREQ(x,y)	(*(x) == *(y) && strcmp(x,y) == 0)
-#define STRNEQ(x,y,n)	(*(x) == *(y) && strncmp(x,y,n) == 0)
-
-#define BIT(x)		(1UL << (x))
-
-static ULONG	*aulSmallBlockList = NULL;
-static size_t	tSmallBlockListLen = 0;
-static UCHAR	**ppAnchor = NULL;
-static size_t	tNextFree = 0;
-static size_t	tMaxElements = 0;
-#define ELEMENTS_TO_ADD	30
-
-/* Show that a PPS number or index should not be used */
-#define PPS_NUMBER_INVALID	0xffffffffUL
-
-/* Macros */
-/* Get macros */
-#define ucGetByte(i,a)		((unsigned char)(a[i]))
-#define usGetWord(i,a)		((unsigned short)\
-					((unsigned int)(a[(i)+1])<<8|\
-					 (unsigned int)(a[i])))
-#define ulGetLong(i,a)		((unsigned long)(a[i])|\
-					(unsigned long)(a[(i)+1])<<8|\
-					(unsigned long)(a[(i)+2])<<16|\
-					(unsigned long)(a[(i)+3])<<24)
-#define usGetWordBE(i,a)	((unsigned short)\
-					((unsigned int)(a[i])<<8|\
-					 (unsigned int)(a[(i)+1])))
-#define ulGetLongBE(i,a)	((unsigned long)(a[(i)+3])|\
-					(unsigned long)(a[(i)+2])<<8|\
-					(unsigned long)(a[(i)+1])<<16|\
-					(unsigned long)(a[i])<<24)
-
-void* xmalloc(size_t tSize) {
-    void	*pvTmp;
-
-    if(tSize == 0) {
-        tSize = 1;
-    }
-    pvTmp = malloc(tSize);
-    if(pvTmp == NULL) {
-        return NULL;
-    }
-    return pvTmp;
-} /* end of xmalloc */
-
-void* xcalloc(size_t tNmemb, size_t tSize) {
-    void	*pvTmp;
-
-    if(tNmemb == 0 || tSize == 0) {
-        tNmemb = 1;
-        tSize = 1;
-    }
-    pvTmp = calloc(tNmemb, tSize);
-    if(pvTmp == NULL) {
-        return NULL;
-    }
-    return pvTmp;
-} /* end of xcalloc */
-
-void* xrealloc(void *pvArg, size_t tSize) {
-    void	*pvTmp;
-
-    pvTmp = realloc(pvArg, tSize);
-    return pvTmp;
-} /* end of xrealloc */
-
-
-void* xfree(void *pvArg) {
-    if(pvArg != NULL) {
-        free(pvArg);
-    }
-    return NULL;
-} /* end of xfree */
-
-bool bReadBytes(unsigned char *aucBytes, size_t tMemb, long lOffset, FILE *pFile) {
-//    printf("[%s]-[%d] wana read [%d] offset[%d]\n",__FUNCTION__,__LINE__,tMemb, lOffset);
-
-    if(fseek(pFile, lOffset, SEEK_SET) != 0) {
-        return false;
-    }
-    if(fread(aucBytes, sizeof(unsigned char), tMemb, pFile) != tMemb) {
-        return false;
-    }
-    return true;
-} /* end of bReadBytes */
-
-#define SIZE_RATIO	(BIG_BLOCK_SIZE/SMALL_BLOCK_SIZE)
-
-ULONG ulDepotOffset(ULONG ulIndex, size_t tBlockSize) {
-    ULONG	ulTmp;
-    size_t	tTmp;
-
-    switch(tBlockSize) {
-    case BIG_BLOCK_SIZE:
-        return (ulIndex + 1) * BIG_BLOCK_SIZE;
-    case SMALL_BLOCK_SIZE:
-        tTmp = (size_t)(ulIndex / SIZE_RATIO);
-        ulTmp = ulIndex % SIZE_RATIO;
-        if(aulSmallBlockList == NULL ||
-                tTmp >= tSmallBlockListLen) {
-            return 0;
-        }
-        return ((aulSmallBlockList[tTmp] + 1) * SIZE_RATIO +
-                ulTmp) * SMALL_BLOCK_SIZE;
-    default:
-        return 0;
-    }
-} /* end of ulDepotOffset */
-
-bool bReadBuffer(FILE *pFile, ULONG ulStartBlock,
-                 const ULONG *aulBlockDepot, size_t tBlockDepotLen, size_t tBlockSize,
-                 UCHAR *aucBuffer, ULONG ulOffset, size_t tToRead) {
-    ULONG	ulBegin, ulIndex;
-    size_t	tLen;
-
-    for(ulIndex = ulStartBlock;ulIndex != END_OF_CHAIN && tToRead != 0;ulIndex = aulBlockDepot[ulIndex]) {
-        if(ulIndex >= (ULONG)tBlockDepotLen) {
-            if(tBlockSize >= BIG_BLOCK_SIZE) {
-                qWarning() << "The Big Block Depot is damaged";
-            } else {
-                qWarning() << "The Small Block Depot is damaged";
-            }
-            return (tToRead == 0);
-        }
-        if(ulOffset >= (ULONG)tBlockSize) {
-            ulOffset -= tBlockSize;
-            continue;
-        }
-        ulBegin = ulDepotOffset(ulIndex, tBlockSize) + ulOffset;
-        tLen = min(tBlockSize - (size_t)ulOffset, tToRead);
-        ulOffset = 0;
-        if(!bReadBytes(aucBuffer, tLen, ulBegin, pFile)) {
-            return false;
-        }
-        aucBuffer += tLen;
-        tToRead -= tLen;
-    }
-    return (tToRead == 0);
-} /* end of bReadBuffer */
-
-static ULONG ulReadLong(FILE *pFile, ULONG ulOffset) {
-    UCHAR	aucBytes[4];
-
-    if(!bReadBytes(aucBytes, 4, ulOffset, pFile)) {
-        return ULONG_MAX;
-    }
-    return ulGetLong(0, aucBytes);
-} /* end of ulReadLong */
-
-static size_t tReadBlockIndices(FILE *pFile, ULONG *aulBlockDepot,
-                                size_t tMaxRec, ULONG ulOffset) {
-    size_t	tDone;
-    int	iIndex;
-    UCHAR	aucBytes[BIG_BLOCK_SIZE];
-
-    /* Read a big block with BBD or SBD indices */
-    if(!bReadBytes(aucBytes, BIG_BLOCK_SIZE, ulOffset, pFile)) {
-        return 0;
-    }
-    /* Split the big block into indices, an index is four bytes */
-    tDone = min(tMaxRec, (size_t)BIG_BLOCK_SIZE / 4);
-    for(iIndex = 0; iIndex < (int)tDone; iIndex++) {
-        aulBlockDepot[iIndex] = ulGetLong(4 * iIndex, aucBytes);
-    }
-    return tDone;
-} /* end of tReadBlockIndices */
-
-static bool bGetSBD(FILE *pFile, const ULONG *aulDepot, size_t tDepotLen,
-                    ULONG *aulSBD, size_t tSBDLen) {
-    ULONG	ulBegin;
-    size_t	tToGo, tDone;
-    int	iIndex;
-
-    tToGo = tSBDLen;
-    for(iIndex = 0; iIndex < (int)tDepotLen && tToGo != 0; iIndex++) {
-        ulBegin = (aulDepot[iIndex] + 1) * BIG_BLOCK_SIZE;
-        tDone = tReadBlockIndices(pFile, aulSBD, tToGo, ulBegin);
-        if(tDone == 0) {
-            return false;
-        }
-        aulSBD += tDone;
-        tToGo -= tDone;
-    }
-    return tToGo == 0;
-} /* end of bGetSBD */
-
-static void vName2String(char *szName, const UCHAR *aucBytes, size_t tNameSize) {
-    char	*pcChar;
-    size_t	tIndex;
-
-    if(tNameSize < 2) {
-        szName[0] = '\0';
-        return;
-    }
-    for(tIndex = 0, pcChar = szName; tIndex < 2 * tNameSize; tIndex += 2, pcChar++) {
-        *pcChar = (char)aucBytes[tIndex];
-    }
-    szName[tNameSize - 1] = '\0';
-} /* end of vName2String */
-
-
-bool vAdd2PropModList(const UCHAR *aucPropMod) {
-    size_t	tSize, tLen;
-
-    if(tNextFree >= tMaxElements) {
-        tMaxElements += ELEMENTS_TO_ADD;
-        tSize = tMaxElements * sizeof(UCHAR **);
-        void *pvTmp;
-        pvTmp = realloc(ppAnchor, tSize);
-        if(pvTmp) {
-            ppAnchor = (UCHAR**)pvTmp;
-        } else {
-            return false;
-        }
-    }
-
-    tLen = 2 + (size_t)usGetWord(0, aucPropMod);
-    ppAnchor[tNextFree] = (UCHAR*)xmalloc(tLen);
-    memcpy(ppAnchor[tNextFree], aucPropMod, tLen);
-    tNextFree++;
-    return true;
-} /* end of vAdd2PropModList */
-
-static void vComputePPSlevels(ppsEntryType *atPPSlist, ppsEntryType *pNode,
-                              int iLevel, int iRecursionLevel) {
-    if(iRecursionLevel > 25) {
-        /* This removes the possibility of an infinite recursion */
-        return;
-    }
-    if(pNode->iLevel <= iLevel) {
-        /* Avoid entering a loop */
-        return;
-    }
-
-    pNode->iLevel = iLevel;
-
-    if(pNode->ulDir != PPS_NUMBER_INVALID) {
-        vComputePPSlevels(atPPSlist,
-                          &atPPSlist[pNode->ulDir],
-                          iLevel + 1,
-                          iRecursionLevel + 1);
-    }
-    if(pNode->ulNext != PPS_NUMBER_INVALID) {
-        vComputePPSlevels(atPPSlist,
-                          &atPPSlist[pNode->ulNext],
-                          iLevel,
-                          iRecursionLevel + 1);
-    }
-    if(pNode->ulPrevious != PPS_NUMBER_INVALID) {
-        vComputePPSlevels(atPPSlist,
-                          &atPPSlist[pNode->ulPrevious],
-                          iLevel,
-                          iRecursionLevel + 1);
-    }
-} /* end of vComputePPSlevels */
-
-
-bool KBinaryParser::bGetPPS(FILE *pFile,
-                            const ULONG *aulRootList, size_t tRootListLen, ppsInfoType *pPPS) {
-    ppsEntryType	*atPPSlist;
-    ULONG	ulBegin, ulOffset, ulTmp;
-    size_t	tNbrOfPPS, tNameSize;
-    int	iIndex, iStartBlock, iRootIndex;
-    bool	bTypeFind = false;
-    UCHAR	aucBytes[PROPERTY_SET_STORAGE_SIZE];
-
-    (void)memset(pPPS, 0, sizeof(*pPPS));
-
-    /* Read and store all the Property Set Storage entries */
-
-    tNbrOfPPS = tRootListLen * BIG_BLOCK_SIZE / PROPERTY_SET_STORAGE_SIZE;
-    atPPSlist = (ppsEntryType*)xcalloc(tNbrOfPPS, sizeof(ppsEntryType));
-    iRootIndex = 0;
-
-    for(iIndex = 0; iIndex < (int)tNbrOfPPS; iIndex++) {
-        ulTmp = (ULONG)iIndex * PROPERTY_SET_STORAGE_SIZE;
-        iStartBlock = (int)(ulTmp / BIG_BLOCK_SIZE);
-        ulOffset = ulTmp % BIG_BLOCK_SIZE;
-        ulBegin = (aulRootList[iStartBlock] + 1) * BIG_BLOCK_SIZE +
-                  ulOffset;
-        if(!bReadBytes(aucBytes, PROPERTY_SET_STORAGE_SIZE,
-                       ulBegin, pFile)) {
-            atPPSlist = (ppsEntryType*)xfree(atPPSlist);
-            return false;
-        }
-        tNameSize = (size_t)usGetWord(0x40, aucBytes);
-        tNameSize = (tNameSize + 1) / 2;
-        vName2String(atPPSlist[iIndex].szName, aucBytes, tNameSize);
-        atPPSlist[iIndex].ucType = ucGetByte(0x42, aucBytes);
-        if(atPPSlist[iIndex].ucType == 5) {
-            iRootIndex = iIndex;
-        }
-
-        ULONG ulprev = ulGetLong(0x44, aucBytes);
-        ULONG ulnxt = ulGetLong(0x48, aucBytes);
-        ULONG uldir = ulGetLong(0x4c, aucBytes);
-        ULONG ulsb = ulGetLong(0x74, aucBytes);   // 116
-        ULONG ulsize = ulGetLong(0x78, aucBytes); // 120
-        atPPSlist[iIndex].ulPrevious = ulprev;
-        atPPSlist[iIndex].ulNext = ulnxt;
-        atPPSlist[iIndex].ulDir = uldir;
-        atPPSlist[iIndex].ulSB = ulsb;
-        atPPSlist[iIndex].ulSize = ulsize;
-        atPPSlist[iIndex].iLevel = INT_MAX;
-        if((atPPSlist[iIndex].ulPrevious >= (ULONG)tNbrOfPPS &&
-                atPPSlist[iIndex].ulPrevious != PPS_NUMBER_INVALID) ||
-                (atPPSlist[iIndex].ulNext >= (ULONG)tNbrOfPPS &&
-                 atPPSlist[iIndex].ulNext != PPS_NUMBER_INVALID) ||
-                (atPPSlist[iIndex].ulDir >= (ULONG)tNbrOfPPS &&
-                 atPPSlist[iIndex].ulDir != PPS_NUMBER_INVALID)) {
-            atPPSlist = (ppsEntryType*)xfree(atPPSlist);
-            return false;
-        }
-    }
-
-    /* Add level information to each entry */
-    vComputePPSlevels(atPPSlist, &atPPSlist[iRootIndex], 0, 0);
-
-    for(iIndex = 0; iIndex < (int)tNbrOfPPS; iIndex++) {
-        if(atPPSlist[iIndex].szName[0] == '\0' ||
-                atPPSlist[iIndex].ulSize == 0) {
-            /* This entry can be ignored */
-            continue;
-        }
-        /*if (m_strFileName.endsWith(".wps") && pPPS->tWordDocument.ulSize == 0 &&
-        	STREQ(atPPSlist[iIndex].szName, "Root Entry"))
-        {
-        	pPPS->tWordDocument.ulSB = 0;//atPPSlist[iIndex].ulSB;
-        	pPPS->tWordDocument.ulSize = atPPSlist[iIndex].ulSize;
-        	pPPS->type = Word;
-        	bTypeFind = true;
-        }
-        else */if(pPPS->tWordDocument.ulSize == 0 &&
-                  STREQ(atPPSlist[iIndex].szName, "WordDocument")) {
-            pPPS->tWordDocument.ulSB = atPPSlist[iIndex].ulSB;
-            pPPS->tWordDocument.ulSize = atPPSlist[iIndex].ulSize;
-            pPPS->type = Word;
-            bTypeFind = true;
-        } else if(pPPS->tData.ulSize == 0 &&
-                  STREQ(atPPSlist[iIndex].szName, "Data")) {
-            pPPS->tData.ulSB = atPPSlist[iIndex].ulSB;
-            pPPS->tData.ulSize = atPPSlist[iIndex].ulSize;
-        } else if(pPPS->t0Table.ulSize == 0 &&
-                  STREQ(atPPSlist[iIndex].szName, "0Table")) {
-            pPPS->t0Table.ulSB = atPPSlist[iIndex].ulSB;
-            pPPS->t0Table.ulSize = atPPSlist[iIndex].ulSize;
-        } else if(pPPS->t1Table.ulSize == 0 &&
-                  STREQ(atPPSlist[iIndex].szName, "1Table")) {
-            pPPS->t1Table.ulSB = atPPSlist[iIndex].ulSB;
-            pPPS->t1Table.ulSize = atPPSlist[iIndex].ulSize;
-        } else if(pPPS->tSummaryInfo.ulSize == 0 &&
-                  STREQ(atPPSlist[iIndex].szName,
-                        "\005SummaryInformation")) {
-            pPPS->tSummaryInfo.ulSB = atPPSlist[iIndex].ulSB;
-            pPPS->tSummaryInfo.ulSize = atPPSlist[iIndex].ulSize;
-        } else if(pPPS->tDocSummaryInfo.ulSize == 0 &&
-                  STREQ(atPPSlist[iIndex].szName,
-                        "\005DocumentSummaryInformation")) {
-            pPPS->tDocSummaryInfo.ulSB = atPPSlist[iIndex].ulSB;
-            pPPS->tDocSummaryInfo.ulSize = atPPSlist[iIndex].ulSize;
-        } else if(pPPS->tWorkBook.ulSize == 0 &&
-                  (STREQ(atPPSlist[iIndex].szName, "Book") || STREQ(atPPSlist[iIndex].szName, "Workbook"))) {
-            pPPS->tWorkBook.ulSB = atPPSlist[iIndex].ulSB;
-            pPPS->tWorkBook.ulSize = atPPSlist[iIndex].ulSize;
-            pPPS->type = Excel;
-            bTypeFind = true;
-        } else if(pPPS->tPPTDocument.ulSize == 0 &&
-                  STREQ(atPPSlist[iIndex].szName, "PowerPoint Document")) {
-            pPPS->tPPTDocument.ulSB = atPPSlist[iIndex].ulSB;
-            pPPS->tPPTDocument.ulSize = atPPSlist[iIndex].ulSize;
-            pPPS->type = Ppt;
-            bTypeFind = true;
-        } else if(pPPS->tCurrentUser.ulSize == 0 &&
-                  STREQ(atPPSlist[iIndex].szName, "Current User")) {
-            pPPS->tCurrentUser.ulSB = atPPSlist[iIndex].ulSB;
-            pPPS->tCurrentUser.ulSize = atPPSlist[iIndex].ulSize;
-        }
-    }
-
-    /* Free the space for the Property Set Storage entries */
-    atPPSlist = (ppsEntryType*)xfree(atPPSlist);
-
-    return bTypeFind;
-}/* end of bGetPPS */
-
-int KBinaryParser::readData(rdPara &readParam, uchar *aucBuffer, ulong ulOffset, size_t tToRead) {
-    /* Read the headerblock */
-    if(!bReadBuffer(readParam.pFile, readParam.ulStBlk,
-                    readParam.ulBBd, readParam.tBBdLen, readParam.usBlkSize,
-                    aucBuffer, ulOffset, tToRead))
-        return -1;
-    return 0;
-}
-
-
-bool bCreateSmallBlockList(ULONG ulStartblock, const ULONG *aulBBD, size_t tBBDLen) {
-    ULONG	ulTmp;
-    size_t	tSize;
-    int	iIndex;
-
-    /* Find the length of the small block list */
-    for(tSmallBlockListLen = 0, ulTmp = ulStartblock;
-            tSmallBlockListLen < tBBDLen && ulTmp != END_OF_CHAIN;
-            tSmallBlockListLen++, ulTmp = aulBBD[ulTmp]) {
-        if(ulTmp >= (ULONG)tBBDLen) {
-        }
-    }
-
-    if(tSmallBlockListLen == 0) {
-        /* There is no small block list */
-        return true;
-    }
-
-    /* Create the small block list */
-    tSize = tSmallBlockListLen * sizeof(ULONG);
-    xfree(aulSmallBlockList);
-    aulSmallBlockList = NULL;
-    aulSmallBlockList = (ULONG*)xmalloc(tSize);
-    for(iIndex = 0, ulTmp = ulStartblock;
-            iIndex < (int)tBBDLen && ulTmp != END_OF_CHAIN;
-            iIndex++, ulTmp = aulBBD[ulTmp]) {
-        if(ulTmp >= (ULONG)tBBDLen) {
-            return false;
-        }
-        aulSmallBlockList[iIndex] = ulTmp;
-    }
-    return true;
-} /* end of bCreateSmallBlockList */
-
-
-static void vGetBbdList(FILE *pFile, int iNbr, ULONG *aulBbdList, ULONG ulOffset) {
-    int	iIndex;
-
-    for(iIndex = 0; iIndex < iNbr; iIndex++) {
-        aulBbdList[iIndex] = ulReadLong(pFile, ulOffset + 4 * (ULONG)iIndex);
-    }
-} /* end of vGetBbdList */
-
-
-static bool bGetBBD(FILE *pFile, const ULONG *aulDepot, size_t tDepotLen,
-                    ULONG *aulBBD, size_t tBBDLen) {
-    ULONG	ulBegin;
-    size_t	tToGo, tDone;
-    int	iIndex;
-
-    tToGo = tBBDLen;
-    for(iIndex = 0; iIndex < (int)tDepotLen && tToGo != 0; iIndex++) {
-        ulBegin = (aulDepot[iIndex] + 1) * BIG_BLOCK_SIZE;
-        tDone = tReadBlockIndices(pFile, aulBBD, tToGo, ulBegin);
-        if(tDone == 0) {
-            return false;
-        }
-        aulBBD += tDone;
-        tToGo -= tDone;
-    }
-    return tToGo == 0;
-} /* end of bGetBBD */
-
-#define REHASH(a) \
-	if (sl_minus_1 < (int)sizeof(int) * CHAR_BIT)       \
-		hashHaystack -= (a) << sl_minus_1; \
-	hashHaystack <<= 1
-
-static inline uint foldCase(const ushort *ch, const ushort *start) {
-    uint c = *ch;
-    if(QChar(c).isLowSurrogate() && ch > start && QChar(*(ch - 1)).isHighSurrogate())
-        c = QChar::surrogateToUcs4(*(ch - 1), c);
-    return *ch + qGetProp(c)->caseFoldDiff;
-}
-
-static inline uint foldCase(uint ch, uint &last) {
-    uint c = ch;
-    if(QChar(c).isLowSurrogate() && QChar(last).isHighSurrogate())
-        c = QChar::surrogateToUcs4(last, c);
-    last = ch;
-    return ch + qGetProp(c)->caseFoldDiff;
-}
-
-static inline ushort foldCase(ushort ch) {
-    return ch + qGetProp(ch)->caseFoldDiff;
-}
-
-
-static int ucstricmp(const ushort *a, const ushort *ae, const ushort *b, const ushort *be) {
-    if(a == b)
-        return (ae - be);
-    if(a == 0)
-        return 1;
-    if(b == 0)
-        return -1;
-
-    const ushort *e = ae;
-    if(be - b < ae - a)
-        e = a + (be - b);
-
-    uint alast = 0;
-    uint blast = 0;
-    while(a < e) {
-        qDebug() << hex << alast << blast;
-        qDebug() << hex << "*a=" << *a << "alast=" << alast << "folded=" << foldCase(*a, alast);
-        qDebug() << hex << "*b=" << *b << "blast=" << blast << "folded=" << foldCase(*b, blast);
-        int diff = foldCase(*a, alast) - foldCase(*b, blast);
-        if((diff))
-            return diff;
-        ++a;
-        ++b;
-    }
-    if(a == ae) {
-        if(b == be)
-            return 0;
-        return -1;
-    }
-    return 1;
-}
-
-static int ucstrnicmp(const ushort *a, const ushort *b, int l) {
-    return ucstricmp(a, a + l, b, b + l);
-}
-
-static int ucstrncmp(const QChar *a, const QChar *b, int l) {
-    while(l-- && *a == *b)
-        a++, b++;
-    if(l == -1)
-        return 0;
-    return a->unicode() - b->unicode();
-}
-
-inline uint _Ucs2ToUcs4(ushort lead, ushort trail) {
-    unsigned int ucs4 = (trail - 0xDC00); //low 10 bit
-    ucs4 |= ((lead - 0xD800)) << 10; //high 10 bit
-    return ucs4 + 0x10000;
-}
-
-bool KBinaryParser::read8DocText(FILE *pFile, const ppsInfoType *pPPS,
-                                 const ULONG *aulBBD, size_t tBBDLen,
-                                 const ULONG *aulSBD, size_t tSBDLen,
-                                 const UCHAR *aucHeader, QString &content) {
-    const ULONG	*aulBlockDepot;
-    ULONG	ulTextOffset, ulBeginTextInfo;
-    ULONG	ulTotLength, ulLen;
-    ULONG   ulEncryptInfo;
-    long	lIndex, lPieces, lOff;
-    size_t	tTextInfoLen, tBlockDepotLen, tBlockSize;
-    int	iType, iLen;
-    bool	bUsesUnicode;
-    USHORT	usPropMod;
-
-    ulBeginTextInfo = ulGetLong(0x1a2, aucHeader);	/* fcClx */
-    tTextInfoLen = (size_t)ulGetLong(0x1a6, aucHeader);	/* lcbClx */
-    ulEncryptInfo = ulGetLong(0x0a, aucHeader);
-    if(ulEncryptInfo & BIT(8)) {
-        qDebug() << "Encrypt file:" << m_strFileName << (size_t)ulEncryptInfo;
-        return false;
-    }
-
-    if(pPPS->tTable.ulSize == 0)
-        return false;
-
-    if(pPPS->tTable.ulSize < MIN_SIZE_FOR_BBD_USE) {
-        /* Use the Small Block Depot */
-        aulBlockDepot = aulSBD;
-        tBlockDepotLen = tSBDLen;
-        tBlockSize = SMALL_BLOCK_SIZE;
-    } else {
-        /* Use the Big Block Depot */
-        aulBlockDepot = aulBBD;
-        tBlockDepotLen = tBBDLen;
-        tBlockSize = BIG_BLOCK_SIZE;
-    }
-
-    UCHAR aucBuffer[tTextInfoLen];
-    if(!bReadBuffer(pFile, pPPS->tTable.ulSB,
-                    aulBlockDepot, tBlockDepotLen, tBlockSize,
-                    aucBuffer, ulBeginTextInfo, tTextInfoLen))
-        return false;
-
-    lOff = 0;
-    while(lOff < (long)tTextInfoLen) {
-        iType = (int)ucGetByte(lOff, aucBuffer);
-        lOff++;
-        if(iType == 0) {
-            lOff++;
-            continue;
-        }
-        if(iType == 1) {
-            iLen = (int)usGetWord(lOff, aucBuffer);
-            if(!vAdd2PropModList(aucBuffer + lOff)) {
-                return false;
-            }
-            lOff += (long)iLen + 2;
-            continue;
-        }
-
-        if(iType != 2)
-            return false;
-
-        /* Type 2 */
-        ulLen = ulGetLong(lOff, aucBuffer);
-        if(ulLen < 4)
-            return false;
-
-        lOff += 4;
-        lPieces = (long)((ulLen - 4) / 12);
-        for(lIndex = 0; lIndex < lPieces; lIndex++) {
-            ulTextOffset = ulGetLong(lOff + (lPieces + 1) * 4 + lIndex * 8 + 2, aucBuffer);
-            usPropMod = usGetWord(lOff + (lPieces + 1) * 4 + lIndex * 8 + 6, aucBuffer);
-            ulTotLength = ulGetLong(lOff + (lIndex + 1) * 4, aucBuffer) - ulGetLong(lOff + lIndex * 4, aucBuffer);
-            if((ulTextOffset & BIT(30)) == 0) {
-                bUsesUnicode = true;
-                ulTotLength *= 2;
-            } else {
-                bUsesUnicode = false;
-                ulTextOffset &= ~BIT(30);
-                ulTextOffset /= 2;
-            }
-
-            ulong uOff = 0;
-            UCHAR* ptaucBytes;
-            ULONG ulFileOffset = (pPPS->tWordDocument.ulSB + 1) * BIG_BLOCK_SIZE + ulTextOffset;
-            if(pPPS->tWordDocument.ulSize < MIN_SIZE_FOR_BBD_USE)
-                ulFileOffset = ulDepotOffset(pPPS->tWordDocument.ulSB, SMALL_BLOCK_SIZE) + ulTextOffset;
-            while(uOff < ulTotLength) {
-//                ULONG iAllocSize = MAX_BUFF_SIZE;
-//                if((ulTotLength - uOff) < MAX_BUFF_SIZE)
-//                    iAllocSize = ulTotLength - uOff;
-
-                ULONG iAllocSize = (ulTotLength - uOff) < MAX_BUFF_SIZE ? (ulTotLength - uOff) : MAX_BUFF_SIZE;
-
-                ptaucBytes = (UCHAR*)xmalloc(iAllocSize);
-                if(!ptaucBytes)
-                    return false;
-                if(!bReadBytes(ptaucBytes, iAllocSize, ulFileOffset, pFile))
-                    return -1;
-
-                ulFileOffset += iAllocSize;
-                uOff += iAllocSize;
-
-                if(bUsesUnicode) {
-                    ushort* usAucData = (ushort*)ptaucBytes;
-                    content.append(QString::fromUtf16(usAucData, iAllocSize/2).replace("\n", "").replace("\r", " "));//char num/2=short num
-                    usAucData = (ushort*)xfree((void*)usAucData);
-                    ptaucBytes = NULL;
-                    if(content.length() >= 682666) //20480000/3
-                        break;
-                } else {
-                    //need more format document
-                    ptaucBytes = (UCHAR*)xfree((void*)ptaucBytes);
-//                    qWarning() << "Parser error:" << m_strFileName;
-//                    content.append(QString::fromStdString((char*)ptaucBytes).replace("\r",""));
-//                    ptaucBytes = (UCHAR*)xfree((void*)ptaucBytes);
-                }
-            }
-        }
-        break;
-    }
-
-    return false;
-}/* end of bGet8DocumentText */
-
-int KBinaryParser:: readSSTRecord(readDataParam &rdParam, ppsInfoType PPS_info, ulong &ulOff, ushort usPartLen, QString &content) {
-    UCHAR chSizeData[8];
-    if(readData(rdParam, chSizeData, ulOff, 8) != 0)
-        return -1;
-
-    ulOff += 8;
-    usPartLen -= 8;
-    ulong ulSize = ulGetLong(0x04, chSizeData) + 1;
-    ulong ulCount = 1;
-    ulong ulNextOff = 0;
-    while((ulCount < ulSize) && (ulOff < PPS_info.tWorkBook.ulSize)) {
-        UCHAR chHeader[3];
-        if(readData(rdParam, chHeader, ulOff + ulNextOff, 3) != 0)
-            break;
-
-        ushort uscharlen = usGetWord(0x00, chHeader);
-        ushort usCharByteLen = uscharlen;
-        UCHAR ucFlag = ucGetByte(0x02, chHeader);
-        ulNextOff += 3;
-        excelRecord eRrd;
-        if(read8BiffRecord(ucFlag, ulOff, ulNextOff, rdParam, eRrd) != 0)
-            break;
-
-        ushort ustotalLen = uscharlen + eRrd.usRichLen * 4 + eRrd.ulWLen;
-        if(!eRrd.bUni)
-            ustotalLen += uscharlen;
-        UCHAR* chData = (UCHAR*)xmalloc(ustotalLen);
-        ushort ustotalLenTmp = ustotalLen;
-        if(ulNextOff < usPartLen && (ulNextOff + ustotalLen) >= usPartLen) {
-            ushort usIdf = usPartLen - ulNextOff;
-            uchar chTemp[MAX_BUFF_SIZE];
-            memset(chTemp, 0, MAX_BUFF_SIZE);
-            if(readData(rdParam, chTemp, ulOff + ulNextOff, usIdf + 5) != 0)
-                break;
-
-            bool bTemp = false;
-            ulOff += usPartLen;
-            ulOff += 4;
-            memcpy(&usPartLen, chTemp + usIdf + 2, 2);
-            ushort usOthTxtLen = ustotalLen - usIdf;
-            bool bAnotherCompare = (usOthTxtLen == 0 || (usCharByteLen - usIdf) == 0) || usCharByteLen < usIdf;
-            ulong ulNoUse = 0;
-            bool bUniFlg = false;
-            if(!bAnotherCompare) {
-                uchar chFlag;
-
-                memcpy(&chFlag, chTemp + usIdf + 4, 1);
-                if(chFlag == 0x00 || chFlag == 0x01 || chFlag == 0x05 || chFlag == 0x09 || chFlag == 0x08 || chFlag == 0x04 || chFlag == 0x0c) {
-                    bTemp = true;
-                    ulOff ++;
-
-                    ulong ulNextTep = 0;
-                    excelRecord eRTmp;
-                    if(read8BiffRecord(chFlag, ulOff, ulNextTep, rdParam, eRTmp) != 0)
-                        break;
-                    ulOff += ulNextTep;
-                    bUniFlg = eRTmp.bUni;
-                    ulNoUse = eRTmp.usRichLen * 4 + eRTmp.ulWLen;
-                }
-            }
-            memcpy(chData, chTemp, usIdf);
-            ulNextOff = 0;
-            ustotalLen = usOthTxtLen + ulNoUse;
-
-            if(usOthTxtLen > 0) {
-                memset(chTemp, 0, MAX_BUFF_SIZE);
-                if(readData(rdParam, chTemp, ulOff, usOthTxtLen) != 0) {
-                    chData = (UCHAR*)xfree((void*)chData);
-                    return -1;
-                }
-                memcpy(chData + usIdf, chTemp, usOthTxtLen);
-            }
-            if(bTemp)
-                usPartLen --;
-        } else {
-            if(readData(rdParam, chData, ulOff + ulNextOff, ustotalLen) != 0) {
-                chData = (UCHAR*)xfree((void*)chData);
-                break;
-            }
-        }
-
-        if(eRrd.bUni) {
-            qDebug() << QString((const char*)chData);
-            chData = (UCHAR*)xfree((void*)chData);
-            qWarning() << "Unsupport excel type:" << m_strFileName;
-        } else {
-            ushort* usData = (ushort*)chData;
-            content.append(QString::fromUtf16(usData, ustotalLenTmp/2).replace("\n", "").replace("\r", " ")).append(" ");//每个单元格数据之间使用空格,//char num/2=short num
-            usData = (ushort*)xfree((void*)usData);
-            chData = NULL;
-            if(content.length() >= 682666) //20480000/3
-                break;
-        }
-        ulNextOff += ustotalLen;
-        ulCount += 1;
-    }
-
-    if(ulCount >= ulSize)
-        return -1;
-    return 0;
-}
-
-int KBinaryParser::read8BiffRecord(uchar ucFlag, ulong ulOff, ulong &ulNext, readDataParam &rdParam, excelRecord &eR) {
-    bool butf8 = true;
-    if(ucFlag & 0x08) {
-        uchar chiRich[2];
-        if(readData(rdParam, chiRich, ulOff + ulNext, 2) != 0)
-            return -1;
-        eR.usRichLen = usGetWord(0x00, chiRich);
-        ulNext += 2;
-    }
-    if(ucFlag & 0x04) {
-        uchar chExt[4];
-        if(readData(rdParam, chExt, ulOff + ulNext, 4) != 0)
-            return -1;
-        eR.ulWLen = ulGetLong(0x00, chExt);
-        ulNext += 4;
-    }
-    if((ucFlag & 0x01)) {
-        butf8 = false;
-    }
-    eR.bUni = butf8;
-    return 0;
-}
-
-ULONG KBinaryParser::readPPtRecord(FILE* pFile, ppsInfoType* PPS_info, ULONG* aulBBD, size_t tBBDLen, ULONG ulPos, QString &content) {
-    UCHAR	aucHeader[PPT_RECORD_HEADER];
-    ULONG	ulOff = ulPos;
-    /* Read the headerblock */
-    if(!bReadBuffer(pFile, PPS_info->tPPTDocument.ulSB,
-                    aulBBD, tBBDLen, BIG_BLOCK_SIZE,
-                    aucHeader, ulOff, PPT_RECORD_HEADER))
-        return -1;
-
-    ulOff += PPT_RECORD_HEADER;
-    USHORT usVersion = usGetWord(0x00, aucHeader);
-    USHORT usType = usGetWord(0x02, aucHeader);
-    ULONG ulLen = ulGetLong(0x04, aucHeader);
-    USHORT usVer = usVersion & 0xF;
-    if(usVer == 0xF) {
-        while(ulOff < ulLen) {
-            ulOff = readPPtRecord(pFile, PPS_info, aulBBD, tBBDLen, ulOff, content);
-        }
-    } else {
-        if(usType == PPT_TEXTBYTEATOM || usType == PPT_TEXTCHARATOM) {
-            long llen = (long)ulLen;
-            long llenTmp = llen;
-            UCHAR* chData = (UCHAR*)xmalloc(llen);
-            if(!bReadBuffer(pFile, PPS_info->tPPTDocument.ulSB,
-                            aulBBD, tBBDLen, BIG_BLOCK_SIZE,
-                            chData, ulOff, llen))
-                return -1;
-            ushort* usData = (ushort*)chData;
-
-            content.append(QString::fromUtf16(usData, llenTmp/2).replace("\n", "").replace("\r", " "));//char num/2=short num
-
-            usData = (ushort*)xfree((void*)usData);
-            chData = NULL;
-        }
-        ulOff += ulLen;
-        if(content.length() >= 682666) //20480000/3
-            return ulOff;
-    }
-    return ulOff;
-}
-
-int KBinaryParser::InitDocOle(FILE* pFile, long lFilesize, QString &content) {
-    ppsInfoType	PPS_info;
-    ULONG	*aulBBD, *aulSBD;
-    ULONG	*aulRootList, *aulBbdList, *aulSbdList;
-    ULONG	ulBdbListStart, ulAdditionalBBDlist;
-    ULONG	ulRootStartblock, ulSbdStartblock, ulSBLstartblock;
-    ULONG	ulStart, ulTmp;
-    long	lMaxBlock;
-    size_t	tBBDLen, tSBDLen, tNumBbdBlocks, tRootListLen;
-    int	 iIndex, iToGo;
-    bool	bSuccess;
-    USHORT	usIdent, usDocStatus;
-
-    lMaxBlock = lFilesize / BIG_BLOCK_SIZE - 2;
-    if(lMaxBlock < 1)
-        return -1;
-
-    tBBDLen = (size_t)(lMaxBlock + 1);
-    tNumBbdBlocks = (size_t)ulReadLong(pFile, 0x2c);
-    ulRootStartblock = ulReadLong(pFile, 0x30);
-    ulSbdStartblock = ulReadLong(pFile, 0x3c);
-    ulAdditionalBBDlist = ulReadLong(pFile, 0x44);
-    ulSBLstartblock = ulReadLong(pFile,
-                                 (ulRootStartblock + 1) * BIG_BLOCK_SIZE + 0x74);
-    tSBDLen = (size_t)(ulReadLong(pFile,
-                                  (ulRootStartblock + 1) * BIG_BLOCK_SIZE + 0x78) /
-                       SMALL_BLOCK_SIZE);
-
-    /* All to be xcalloc-ed pointers to NULL */
-    aulRootList = NULL;
-    aulSbdList = NULL;
-    aulBbdList = NULL;
-    aulSBD = NULL;
-    aulBBD = NULL;
-
-    aulBbdList = (ULONG*)xcalloc(tNumBbdBlocks, sizeof(ULONG));
-    aulBBD = (ULONG*)xcalloc(tBBDLen, sizeof(ULONG));
-    iToGo = (int)tNumBbdBlocks;
-    vGetBbdList(pFile, min(iToGo, 109),  aulBbdList, 0x4c);
-    ulStart = 109;
-    iToGo -= 109;
-    while(ulAdditionalBBDlist != END_OF_CHAIN && iToGo > 0) {
-        ulBdbListStart = (ulAdditionalBBDlist + 1) * BIG_BLOCK_SIZE;
-        vGetBbdList(pFile, min(iToGo, 127),
-                    aulBbdList + ulStart, ulBdbListStart);
-        ulAdditionalBBDlist = ulReadLong(pFile,
-                                         ulBdbListStart + 4 * 127);
-        ulStart += 127;
-        iToGo -= 127;
-    }
-
-    if(!bGetBBD(pFile, aulBbdList, tNumBbdBlocks, aulBBD, tBBDLen)) {
-        xfree(aulBbdList);
-        xfree(aulBBD);
-        return -1;
-    }
-
-    aulBbdList = (ULONG*)xfree(aulBbdList);
-    /* Small Block Depot */
-    aulSbdList = (unsigned long*)xcalloc(tBBDLen, sizeof(ULONG));
-    aulSBD = (unsigned long*)xcalloc(tSBDLen, sizeof(ULONG));
-
-    for(iIndex = 0, ulTmp = ulSbdStartblock;
-            iIndex < (int)tBBDLen && ulTmp != END_OF_CHAIN;
-            iIndex++, ulTmp = aulBBD[ulTmp]) {
-        if(ulTmp >= (ULONG)tBBDLen) {
-            qWarning("The Big Block Depot is damaged");
-            aulSBD = (ULONG*)xfree(aulSBD);
-            aulBBD = (ULONG*)xfree(aulBBD);
-            return -1;
-        }
-
-        aulSbdList[iIndex] = ulTmp;
-    }
-
-    if(!bGetSBD(pFile, aulSbdList, tBBDLen, aulSBD, tSBDLen)) {
-        aulSBD = (ULONG*)xfree(aulSBD);
-        aulBBD = (ULONG*)xfree(aulBBD);
-        return -1;
-    }
-
-
-    aulSbdList = (ULONG*)xfree(aulSbdList);
-    /* Root list */
-    for(tRootListLen = 0, ulTmp = ulRootStartblock;
-            tRootListLen < tBBDLen && ulTmp != END_OF_CHAIN;
-            tRootListLen++, ulTmp = aulBBD[ulTmp]) {
-        if(ulTmp >= (ULONG)tBBDLen) {
-            aulSBD = (ULONG*)xfree(aulSBD);
-            aulBBD = (ULONG*)xfree(aulBBD);
-            return -1;
-        }
-
-    }
-    if(tRootListLen == 0) {
-        aulSBD = (ULONG*)xfree(aulSBD);
-        aulBBD = (ULONG*)xfree(aulBBD);
-        return -1;
-    }
-
-    aulRootList = (ULONG*)xcalloc(tRootListLen, sizeof(ULONG));
-    for(iIndex = 0, ulTmp = ulRootStartblock;
-            iIndex < (int)tBBDLen && ulTmp != END_OF_CHAIN;
-            iIndex++, ulTmp = aulBBD[ulTmp]) {
-        if(ulTmp >= (ULONG)tBBDLen) {
-            aulSBD = (ULONG*)xfree(aulSBD);
-            aulBBD = (ULONG*)xfree(aulBBD);
-            return -1;
-        }
-
-        aulRootList[iIndex] = ulTmp;
-    }
-    bSuccess = bGetPPS(pFile, aulRootList, tRootListLen, &PPS_info);
-    aulRootList = (ULONG*)xfree(aulRootList);
-    if(!bSuccess) {
-        aulSBD = (ULONG*)xfree(aulSBD);
-        aulBBD = (ULONG*)xfree(aulBBD);
-        return -1;
-    }
-
-    rdPara readParam;
-    readParam.pFile = pFile;
-    readParam.tBBdLen = tBBDLen;
-    readParam.ulBBd = aulBBD;
-    readParam.usBlkSize = BIG_BLOCK_SIZE;
-    if(PPS_info.type == Word) {
-        readParam.ulStBlk = PPS_info.tWordDocument.ulSB;
-        UCHAR	aucHeader[HEADER_SIZE];
-        /* Small block list */
-        if(!bCreateSmallBlockList(ulSBLstartblock, aulBBD, tBBDLen)) {
-            aulSBD = (ULONG*)xfree(aulSBD);
-            readParam.ulBBd = (ULONG*)xfree(readParam.ulBBd);
-            return -1;
-        }
-
-        if(PPS_info.tWordDocument.ulSize < MIN_SIZE_FOR_BBD_USE) {
-            readParam.ulBBd = aulSBD;
-            readParam.tBBdLen = tSBDLen;
-            readParam.usBlkSize = SMALL_BLOCK_SIZE;
-        }
-
-        if(readData(readParam, aucHeader, 0, HEADER_SIZE) != 0) {
-            aulSBD = (ULONG*)xfree(aulSBD);
-            aulBBD = (ULONG*)xfree(aulBBD);
-            return -1;
-        }
-
-        usIdent = usGetWord(0x00, aucHeader);
-
-        if(usIdent != 0x8098 &&	/* Word 7 for oriental languages */
-                usIdent != 0x8099 &&	/* Word 7 for oriental languages */
-                usIdent != 0xa5dc &&	/* Word 6 & 7 */
-                usIdent != 0xa5ec &&	/* Word 7 & 97 & 98 */
-                usIdent != 0xa697 &&	/* Word 7 for oriental languages */
-                usIdent != 0xa699) {    /* Word 7 for oriental languages */
-            aulSBD = (ULONG*)xfree(aulSBD);
-            aulBBD = (ULONG*)xfree(aulBBD);
-            return -1;
-        }
-
-        /* Get the status flags from the header */
-        usDocStatus = usGetWord(0x0a, aucHeader);
-        if(usDocStatus & BIT(9))
-            PPS_info.tTable = PPS_info.t1Table;
-        else
-            PPS_info.tTable = PPS_info.t0Table;
-
-        read8DocText(pFile,
-                     &PPS_info,
-                     aulBBD, tBBDLen, aulSBD, tSBDLen,
-                     aucHeader, content);
-    } else if(PPS_info.type == Excel) {
-        readParam.ulStBlk = PPS_info.tWorkBook.ulSB;
-        UCHAR aucHeader[4];
-        ulong ulOff = 0;
-        if(readData(readParam, aucHeader, 0, 8) != 0) {
-            aulSBD = (ULONG*)xfree(aulSBD);
-            aulBBD = (ULONG*)xfree(aulBBD);
-            return -1;
-        }
-        ulOff += 4;
-        USHORT usType = usGetWord(0x00, aucHeader);
-
-        while(ulOff < PPS_info.tWorkBook.ulSize) {
-            USHORT usLen = usGetWord(0x02, aucHeader);
-            ulOff += usLen;
-            if(readData(readParam, aucHeader, ulOff, 4) != 0)
-                break;
-            ulOff += 4;
-            usType = usGetWord(0x00, aucHeader);
-            ushort usPartLen = usGetWord(0x02, aucHeader);
-            if(usType == 0x00FC) {
-                if(readSSTRecord(readParam, PPS_info, ulOff, usPartLen, content) != 0)
-                    break;
-            }
-        }
-    } else if(PPS_info.type == Ppt) {
-        ULONG ulOff = 0;
-        while(ulOff < PPS_info.tPPTDocument.ulSize) {
-            ulOff = readPPtRecord(pFile, &PPS_info, aulBBD, tBBDLen, ulOff, content);
-        }
-    } else {
-        qWarning() << "Unsupport doc type:" << m_strFileName;
-    }
-    aulSBD = (ULONG*)xfree(aulSBD);
-    aulBBD = (ULONG*)xfree(aulBBD);
-    return 0;
-}
-
-long lGetFilesize(const char *szFilename) {
-    struct stat	tBuffer;
-    if(stat(szFilename, &tBuffer) != 0) {
-        //qWarning() << "Get Filesize error";
-        return -1;
-    }
-    if(!S_ISREG(tBuffer.st_mode)) {
-        //qWarning() << "It's not a regular file";
-        return -1;
-    }
-    return (long)tBuffer.st_size;
-}
-
-KBinaryParser::KBinaryParser(QObject *parent)
-    : QObject(parent)
-    , m_strFileName("") {
-}
-
-KBinaryParser::~KBinaryParser()
-{
-    xfree(aulSmallBlockList);
-    aulSmallBlockList = NULL;
-}
-
-bool KBinaryParser::RunParser(QString strFile, QString &content) {
-    FILE* pFile = fopen(strFile.toLocal8Bit().data(), "rb");
-    if(!pFile) {
-        return false;
-    }
-    m_strFileName = strFile;
-    long lFileSize = lGetFilesize(strFile.toLocal8Bit().data());
-    if(lFileSize < 0) {
-        qWarning() << "ERROR SIZE";
-        (void)fclose(pFile);
-        return false;
-    }
-    // If InitDocOle failed, -1 will be returned.
-    if(InitDocOle(pFile, lFileSize, content)) {
-        qWarning() << "InitDocOle failed!" << strFile;
-    }
-    fclose(pFile);
-    return true;
-}
-
diff -Nru ukui-search-5.0.0.4/libsearch/parser/binary-parser.h ukui-search-5.0.0.5/libsearch/parser/binary-parser.h
--- ukui-search-5.0.0.4/libsearch/parser/binary-parser.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/parser/binary-parser.h	1970-01-01 08:00:00.000000000 +0800
@@ -1,126 +0,0 @@
-/*
- *
- * Copyright (C) 2023, KylinSoft Co., Ltd.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- *
- *
- */
-#ifndef SEARCHHELPER_H
-#define SEARCHHELPER_H
-#include <QtCore>
-#include <QtConcurrent/QtConcurrent>
-
-#define ULONG unsigned long
-#define UCHAR unsigned char
-#define USHORT unsigned short
-
-typedef enum {
-    Word = 0,
-    Excel,
-    Ppt
-} TYPE;
-
-/* Property Set Storage */
-typedef struct pps_tag {
-    ULONG	ulSB;
-    ULONG	ulSize;
-} ppsTag;
-
-typedef struct pps_info_tag {
-    ppsTag	tWordDocument;	/* Text stream */
-    ppsTag	tWorkBook;
-    ppsTag	tPPTDocument;
-    ppsTag	tData;		/* Data stream */
-    ppsTag	tTable;		/* Table stream */
-    ppsTag	tSummaryInfo;	/* Summary Information */
-    ppsTag	tDocSummaryInfo;/* Document Summary Information */
-    ppsTag	t0Table;	/* Table 0 stream */
-    ppsTag	t1Table;	/* Table 1 stream */
-    ppsTag	tCurrentUser;
-    TYPE		type;
-} ppsInfoType;
-
-/* Private type for Property Set Storage entries */
-typedef struct pps_entry_tag {
-    ULONG	ulNext;
-    ULONG	ulPrevious;
-    ULONG	ulDir;
-    ULONG	ulSB;
-    ULONG	ulSize;
-    int	iLevel;
-    char	szName[32];
-    UCHAR	ucType;
-} ppsEntryType;
-
-/* Excel Record Struct*/
-typedef struct excelRecord {
-    excelRecord() {
-        usLen = 0;
-        usRichLen = 0;
-        ulWLen = 0;
-        bUni = false;
-    }
-    ushort usLen;
-    ushort usRichLen;
-    ulong ulWLen;
-    bool bUni;
-} excelRecord;
-
-typedef struct readDataParam {
-    readDataParam() {
-        ulStBlk = 0;
-        pFile = NULL;
-        ulBBd = NULL;
-        tBBdLen = 0;
-        usBlkSize = 0;
-    }
-    ulong ulStBlk;
-    FILE *pFile;
-    ulong *ulBBd;
-    size_t tBBdLen;
-    ushort usBlkSize;
-} rdPara;
-
-class KBinaryParser : public QObject {
-    Q_OBJECT
-public:
-    KBinaryParser(QObject *parent = 0);
-    ~KBinaryParser();
-
-public:
-    bool RunParser(QString strFile, QString &content);
-
-private:
-    bool bGetPPS(FILE *pFile,
-                 const ULONG *aulRootList, size_t tRootListLen, ppsInfoType *pPPS);
-
-    int readData(rdPara &readParam, uchar *aucBuffer, ulong ulOffset, size_t tToRead);
-
-    int InitDocOle(FILE *pFile, long lFilesize, QString &content);
-    bool read8DocText(FILE *pFile, const ppsInfoType *pPPS,
-                      const ULONG *aulBBD, size_t tBBDLen,
-                      const ULONG *aulSBD, size_t tSBDLen,
-                      const UCHAR *aucHeader, QString &content);
-
-    int readSSTRecord(readDataParam &rdParam, ppsInfoType, ulong &ulOff, ushort usPartLen, QString &content);
-    int read8BiffRecord(uchar uFlag, ulong ulOff, ulong &ulNext, readDataParam &rdParam, excelRecord &eR);
-
-    ULONG readPPtRecord(FILE* pFile, ppsInfoType* PPS_info, ULONG* aulBBD,
-                        size_t tBBDLen, ULONG ulPos, QString &content);
-
-    QString m_strFileName;
-};
-
-#endif // SEARCHHELPER_H
diff -Nru ukui-search-5.0.0.4/libsearch/parser/common.h ukui-search-5.0.0.5/libsearch/parser/common.h
--- ukui-search-5.0.0.4/libsearch/parser/common.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/parser/common.h	1970-01-01 08:00:00.000000000 +0800
@@ -1,44 +0,0 @@
-/*
- *
- * Copyright (C) 2023, KylinSoft Co., Ltd.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- *
- *
- */
-#ifndef COMMON_H
-#define COMMON_H
-#include <QtCore>
-#include <QtConcurrent/QtConcurrent>
-
-#define SERVER "Everything"
-
-#define LOG(a) \
-	//qWarning() << a;
-
-#define REHASH(a) \
-	if (sl_minus_1 < (int)sizeof(int) * CHAR_BIT)       \
-		hashHaystack -= (a) << sl_minus_1; \
-	hashHaystack <<= 1
-
-void* xmalloc(size_t tSize);
-
-void* xcalloc(size_t tNmemb, size_t tSize);
-
-void* xrealloc(void *pvArg, size_t tSize);
-
-void* xfree(void *pvArg);
-
-
-#endif // COMMON_H
diff -Nru ukui-search-5.0.0.4/libsearch/plugininterface/search-plugin-iface.h ukui-search-5.0.0.5/libsearch/plugininterface/search-plugin-iface.h
--- ukui-search-5.0.0.4/libsearch/plugininterface/search-plugin-iface.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/plugininterface/search-plugin-iface.h	2025-02-28 10:30:38.000000000 +0800
@@ -21,10 +21,11 @@
 #define SEARCHPLUGINIFACE_H
 #define SearchPluginIface_iid "org.ukui.ukui-search.plugin-iface.SearchPluginInterface"
 /**
+ * changelog:1.4.0 增加searchID,修改KeywordSearch返回值类型
  * changelog:1.3.0 增加resourceType
  * changelog:1.2.0 增加toolTip
  */
-#define SEARCH_PLUGIN_IFACE_VERSION "1.3.0"
+#define SEARCH_PLUGIN_IFACE_VERSION "1.4.0"
 
 #include <QString>
 #include <QIcon>
@@ -69,6 +70,7 @@
         int type;
         bool showInBestMatch = true;
         bool displayNameAsUrl = false;
+        size_t searchID;
         explicit ResultInfo(const QIcon &iconToSet = QIcon(),
                    const QString &nameToSet = QString(),
                    const QString &toolTipToSet = QString(),
@@ -77,7 +79,8 @@
                    const QString &actionKeyToSet = QString(),
                    const int &typeToSet = 0,
                    const bool showInBestMatchToSet = true,
-                   const bool displayNameAsUrlToSet = false) {
+                   const bool displayNameAsUrlToSet = false,
+                   const size_t &searchIDToSet = 0) {
             icon = iconToSet;
             name = nameToSet;
             toolTip = toolTipToSet;
@@ -87,6 +90,7 @@
             type = typeToSet;
             showInBestMatch = showInBestMatchToSet;
             displayNameAsUrl = displayNameAsUrlToSet;
+            searchID = searchIDToSet;
         }
         ~ResultInfo() {
             description.clear();
@@ -96,7 +100,7 @@
 
     virtual ~SearchPluginIface() {}
     virtual QString getPluginName() = 0;
-    virtual void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) = 0;
+    virtual size_t KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) = 0;
     virtual void stopSearch() = 0;
     virtual QList<Actioninfo> getActioninfo(int type) = 0;
     virtual void openAction(int actionkey, QString key, int type) = 0;
diff -Nru ukui-search-5.0.0.4/libsearch/settingsearch/settings-search-plugin.cpp ukui-search-5.0.0.5/libsearch/settingsearch/settings-search-plugin.cpp
--- ukui-search-5.0.0.4/libsearch/settingsearch/settings-search-plugin.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/settingsearch/settings-search-plugin.cpp	2025-02-28 10:30:38.000000000 +0800
@@ -57,13 +57,14 @@
     return tr("Settings Search");
 }
 
-void UkuiSearch::SettingsSearchPlugin::KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult)
+size_t UkuiSearch::SettingsSearchPlugin::KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult)
 {
     m_mutex.lock();
     ++m_uniqueSymbolForSettings;
     m_mutex.unlock();
     SettingsSearch *settingSearch = new SettingsSearch(searchResult, keyword, m_uniqueSymbolForSettings);
     m_pool.start(settingSearch);
+    return m_uniqueSymbolForSettings;
 }
 
 void SettingsSearchPlugin::stopSearch()
@@ -487,6 +488,7 @@
     SettingsSearchPlugin::m_mutex.lock();
     if (uniqueSymbol == SettingsSearchPlugin::m_uniqueSymbolForSettings) {
         res = true;
+        resultInfo.searchID = uniqueSymbol;
         searchResult->enqueue(resultInfo);
         SettingsSearchPlugin::m_mutex.unlock();
     } else {
diff -Nru ukui-search-5.0.0.4/libsearch/settingsearch/settings-search-plugin.h ukui-search-5.0.0.5/libsearch/settingsearch/settings-search-plugin.h
--- ukui-search-5.0.0.4/libsearch/settingsearch/settings-search-plugin.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/settingsearch/settings-search-plugin.h	2025-02-28 10:30:38.000000000 +0800
@@ -50,7 +50,7 @@
     bool isEnable() {return m_enable;}
     QString getPluginName();
 
-    void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
+    size_t KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
     void stopSearch();
     QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
     void openAction(int actionkey, QString key, int type);
diff -Nru ukui-search-5.0.0.4/libsearch/websearch/web-search-plugin.cpp ukui-search-5.0.0.5/libsearch/websearch/web-search-plugin.cpp
--- ukui-search-5.0.0.4/libsearch/websearch/web-search-plugin.cpp	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/websearch/web-search-plugin.cpp	2025-02-28 10:30:38.000000000 +0800
@@ -63,14 +63,16 @@
     return tr("Web Page");
 }
 
-void UkuiSearch::WebSearchPlugin::KeywordSearch(QString keyword, DataQueue<UkuiSearch::SearchPluginIface::ResultInfo> *searchResult)
+size_t UkuiSearch::WebSearchPlugin::KeywordSearch(QString keyword, DataQueue<UkuiSearch::SearchPluginIface::ResultInfo> *searchResult)
 {
+    m_searchID++;
     m_keyWord = keyword;
     ResultInfo resultInfo;
     resultInfo.name = m_keyWord.replace("\r", " ").replace("\n", " ");
     resultInfo.toolTip = m_keyWord;
     resultInfo.resourceType = QStringLiteral("web");
     resultInfo.type = 0;
+    resultInfo.searchID = m_searchID;
 
     QIcon appIcon;
     GAppInfo * app = g_app_info_get_default_for_type(BROWSERTYPE, false);
@@ -96,6 +98,7 @@
     resultInfo.icon = appIcon.isNull()? IconLoader::loadIconQt("unknown", QIcon(":/res/icons/unknown.svg")) : appIcon;
     resultInfo.actionKey = m_keyWord;
     searchResult->enqueue(resultInfo);
+    return m_searchID;
 }
 
 void WebSearchPlugin::stopSearch()
@@ -121,10 +124,10 @@
         } else if(m_webEngine == "sougou") {
             address = "https://www.sogou.com/web?query=" + m_keyWord; //搜狗
         } else {
-            address = "http://baidu.com/s?word=" + m_keyWord; //百度
+            address = "https://baidu.com/s?word=" + m_keyWord; //百度
         }
     } else { //默认值
-        address = "http://baidu.com/s?word=" + m_keyWord ; //百度
+        address = "https://baidu.com/s?word=" + m_keyWord ; //百度
     }
     bool res(false);
     QDBusInterface * appLaunchInterface = new QDBusInterface(QStringLiteral("com.kylin.ProcessManager"),
diff -Nru ukui-search-5.0.0.4/libsearch/websearch/web-search-plugin.h ukui-search-5.0.0.5/libsearch/websearch/web-search-plugin.h
--- ukui-search-5.0.0.4/libsearch/websearch/web-search-plugin.h	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/libsearch/websearch/web-search-plugin.h	2025-02-28 10:30:38.000000000 +0800
@@ -48,7 +48,7 @@
     void setEnable(bool enable) {m_enable = enable;}
     bool isEnable() {return m_enable;}
     QString getPluginName();
-    void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
+    size_t KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
     void stopSearch();
     QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
     void openAction(int actionkey, QString key, int type);
@@ -72,6 +72,7 @@
 
     bool m_enable = true;
     QList<WebSearchPlugin::Actioninfo> m_actionInfo;
+    size_t m_searchID = 0;
 
     QString getDefaultAppId(const char * contentType);
 };
diff -Nru ukui-search-5.0.0.4/search-ukcc-plugin/translations/mn.ts ukui-search-5.0.0.5/search-ukcc-plugin/translations/mn.ts
--- ukui-search-5.0.0.4/search-ukcc-plugin/translations/mn.ts	2025-02-10 09:13:52.000000000 +0800
+++ ukui-search-5.0.0.5/search-ukcc-plugin/translations/mn.ts	1970-01-01 08:00:00.000000000 +0800
@@ -1,280 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="mn">
-<context>
-    <name>Search</name>
-    <message>
-        <location filename="../search.cpp" line="46"/>
-        <location filename="../search.cpp" line="285"/>
-        <source>Search</source>
-        <translation>ᠪᠦᠬᠦ᠌ ᠪᠠᠢᠳᠠᠯ᠎ᠤᠨ ᠬᠠᠢᠯᠳᠠ</translation>
-        <extra-contents_path>/Search/Search</extra-contents_path>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="302"/>
-        <source>Create index</source>
-        <translation>ᠬᠡᠯᠬᠢᠶᠡᠰᠦ ᠪᠠᠢᠭᠤᠯᠬᠤ</translation>
-        <extra-contents_path>/Search/Create index</extra-contents_path>
-    </message>
-    <message>
-        <source>Creating index can help you getting results quickly.</source>
-        <translation type="vanished">ᠡᠬᠢᠯᠡᠬᠦᠯᠦᠭᠰᠡᠨ᠎ᠦ ᠳᠠᠷᠠᠭ᠎ᠠ ᠬᠠᠢᠯᠲᠠ᠎ᠶᠢᠨ ᠦᠷ᠎ᠡ ᠳ᠋ᠦᠩ᠎ᠢ ᠬᠤᠷᠳᠤᠨ ᠤᠯᠵᠤ ᠪᠤᠯᠤᠨ᠎ᠠ ᠃</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="290"/>
-        <source>Default web searching engine</source>
-        <translation>ᠠᠶᠠᠳᠠᠯ ᠢᠨᠲᠸᠷᠨ᠋ᠸᠲ᠎ᠦᠨ ᠡᠷᠢᠯᠳᠡ ᠬᠦᠳᠡᠯᠬᠡᠬᠦᠷ</translation>
-        <extra-contents_path>/Search/Default web searching engine</extra-contents_path>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="294"/>
-        <source>baidu</source>
-        <translation>ᠪᠠᠢ ᠳ᠋ᠦ᠋</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="295"/>
-        <source>sougou</source>
-        <translation>ᠰᠸᠤ ᠭᠸᠦ</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="296"/>
-        <source>360</source>
-        <translation>360</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="315"/>
-        <source>Create file index</source>
-        <translation>ᠪᠢᠴᠢᠭ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠤᠨ ᠨᠡᠷ᠎ᠡ ᠶᠢᠨ ᠰᠦᠪᠡᠭᠴᠢ ᠶᠢ ᠡᠭᠦᠳᠦᠨ ᠪᠠᠶᠢᠭᠤᠯᠬᠤ ᠬᠡᠷᠡᠭᠲᠡᠶ᠃</translation>
-        <extra-contents_path>/Search/Create file index</extra-contents_path>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="340"/>
-        <source>Create file content index</source>
-        <translation>ᠪᠢᠴᠢᠭ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠤᠨ ᠠᠭᠤᠯᠭ᠎ᠠ ᠶᠢᠨ ᠰᠦᠪᠡᠭᠴᠢ ᠶᠢ ᠡᠭᠦᠳᠦᠨ ᠪᠠᠶᠢᠭᠤᠯᠬᠤ ᠬᠡᠷᠡᠭᠲᠡᠶ᠃</translation>
-        <extra-contents_path>/Search/Create file content index</extra-contents_path>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="453"/>
-        <source>AI model is ready</source>
-        <translation>AI ᠵᠠᠭᠪᠤᠷ ᠨᠢᠭᠡᠨᠲᠡ ᠪᠡᠯᠡᠳᠬᠡᠪᠡᠯ ᠳᠡᠭᠡᠰᠦ ᠪᠡᠯᠡᠳᠭᠡᠵᠡᠢ ᠃</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="455"/>
-        <source>AI model is not ready</source>
-        <translation>AI ᠵᠠᠭᠪᠤᠷ ᠢ ᠪᠠᠰᠠ ᠪᠡᠯᠡᠳᠬᠡᠭᠡᠳᠦᠢ ᠪᠠᠶᠢᠭᠰᠠᠭᠠᠷ ᠃</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="502"/>
-        <source>Block Folders</source>
-        <translation>ᠢᠯᠭᠠᠵᠤ ᠭᠠᠷᠭᠠᠭᠰᠠᠨ ᠴᠤᠮᠤᠭ</translation>
-        <extra-contents_path>/Search/Block Folders</extra-contents_path>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="507"/>
-        <source>Following folders will not be searched. You can set it by adding and removing folders.</source>
-        <translation>ᠬᠠᠢᠯᠲᠠ᠎ᠪᠠᠷ ᠳᠠᠷᠠᠭᠠᠬᠢ ᠴᠤᠮᠤᠭ᠎ᠢ ᠪᠠᠢᠴᠠᠭᠠᠵᠤ ᠦᠵᠡᠬᠦ᠌ ᠦᠬᠡᠢ ᠂ ᠨᠡᠮᠡᠬᠦ᠌ ᠪᠤᠶᠤ ᠬᠠᠰᠤᠬᠤ᠎ᠪᠠᠷ ᠳᠠᠮᠵᠢᠭᠤᠯᠤᠨ ᠢᠯᠭᠠᠵᠤ ᠭᠠᠷᠭᠠᠭᠰᠠᠨ ᠴᠤᠮᠤᠭ᠎ᠤᠨ ᠪᠠᠢᠷᠢ᠎ᠶᠢ ᠳᠤᠬᠢᠷᠠᠭᠤᠯᠵᠤ ᠪᠤᠯᠤᠨ᠎ᠠ ᠃</translation>
-    </message>
-    <message>
-        <source>Choose folder</source>
-        <translation type="vanished">ᠨᠡᠮᠡᠬᠦ᠌</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="726"/>
-        <location filename="../search.cpp" line="797"/>
-        <source>delete</source>
-        <translation>ᠬᠠᠰᠤᠬᠤ</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="855"/>
-        <location filename="../search.cpp" line="908"/>
-        <source>Directories</source>
-        <translation>ᠴᠤᠮᠤᠭ</translation>
-    </message>
-    <message>
-        <source>File Content Search</source>
-        <translation type="vanished">ᠪᠢᠴᠢᠭ᠌ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠤᠨ ᠠᠭᠤᠯᠭ᠎ᠠ ᠡᠷᠢᠬᠦ</translation>
-        <extra-contents_path>/Search/File Content Search</extra-contents_path>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="372"/>
-        <source>Precise Search</source>
-        <translation>ᠣᠨᠣᠪᠴᠢᠲᠠᠢ ᠡᠷᠢᠬᠦ</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="375"/>
-        <source>show the results that exactly match the keyword</source>
-        <translation>ᠵᠠᠩᠭᠢᠯᠠᠭ᠎ᠠ ᠶᠢᠨ ᠦᠰᠦᠭ ᠲᠡᠢ ᠪᠦᠷᠢᠮᠦᠰᠦᠨ ᠲᠣᠬᠢᠷᠠᠯᠴᠠᠭᠰᠠᠨ ᠦᠷ᠎ᠡ ᠳ᠋ᠦᠩ ᠢ ᠢᠯᠡᠷᠡᠭᠦᠯᠵᠡᠢ</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="385"/>
-        <source>Fuzzy Search</source>
-        <translation>ᠪᠠᠯᠠᠷᠬᠠᠢ ᠡᠷᠢᠬᠦ</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="388"/>
-        <source>show more results that match the keyword</source>
-        <translation>ᠨᠡᠩ ᠠᠷᠪᠢᠨ ᠵᠠᠩᠭᠢᠯᠠᠭ᠎ᠠ ᠶᠢᠨ ᠦᠰᠦᠭ ᠲᠡᠢ ᠲᠣᠬᠢᠷᠠᠯᠴᠠᠭᠰᠠᠨ ᠦᠷ᠎ᠡ ᠳ᠋ᠦᠩ ᠢ ᠢᠯᠡᠷᠡᠭᠦᠯᠵᠡᠢ</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="449"/>
-        <source>Create AI index</source>
-        <translation>AI ᠰᠦᠪᠡᠭᠴᠢ ᠶᠢ ᠡᠭᠦᠳᠦᠨ ᠪᠠᠶᠢᠭᠤᠯᠤᠨ᠎ᠠ ᠃</translation>
-        <extra-contents_path>/Search/Create AI index</extra-contents_path>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="469"/>
-        <source>Search Folders</source>
-        <translation>ᠡᠷᠢᠬᠦ ᠭᠠᠷᠴᠠᠭ</translation>
-        <extra-contents_path>/Search/Search Folders</extra-contents_path>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="475"/>
-        <source>Following folders will be searched. You can set it by adding and removing folders.</source>
-        <translation>ᠳᠣᠣᠷᠠᠬᠢ ᠭᠠᠷᠴᠠᠭ ᠢ ᠡᠷᠢᠨ᠎ᠡ ᠃ ᠲᠠ ᠭᠠᠷᠴᠠᠭ ᠢᠶᠠᠷ ᠳᠠᠮᠵᠢᠨ ᠡᠷᠢᠬᠦ ᠬᠡᠪᠴᠢᠶ᠎ᠡ ᠶᠢ ᠵᠢᠭᠠᠨ ᠲᠣᠭᠲᠠᠭᠠᠵᠤ ᠪᠣᠯᠣᠨ᠎ᠠ᠃</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="856"/>
-        <source>select blocked folder</source>
-        <translation>ᠢᠯᠭᠠᠵᠤ ᠭᠠᠷᠭᠠᠭᠰᠠᠨ ᠴᠤᠮᠤᠭ᠎ᠢ ᠰᠤᠩᠭᠤᠬᠤ</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="857"/>
-        <location filename="../search.cpp" line="910"/>
-        <source>Select</source>
-        <translation>ᠰᠤᠩᠭᠤᠬᠤ</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="858"/>
-        <location filename="../search.cpp" line="911"/>
-        <source>Position: </source>
-        <translation>ᠪᠠᠢᠷᠢ ᠄ </translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="859"/>
-        <location filename="../search.cpp" line="912"/>
-        <source>FileName: </source>
-        <translation>ᠹᠠᠢᠯ᠎ᠤᠨ ᠨᠡᠷ᠎ᠡ ᠄ </translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="860"/>
-        <location filename="../search.cpp" line="913"/>
-        <source>FileType: </source>
-        <translation>ᠬᠡᠯᠪᠡᠷᠢ ᠮᠠᠶᠢᠭ </translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="204"/>
-        <location filename="../search.cpp" line="861"/>
-        <location filename="../search.cpp" line="914"/>
-        <source>Cancel</source>
-        <translation>ᠦᠬᠡᠢᠰᠭᠡᠬᠦ᠌</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="202"/>
-        <source>Create file content index will increase the usage of memory and CPU, do you still want to open it?</source>
-        <translation>ᠪᠢᠴᠢᠭ᠌ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠤᠨ ᠠᠭᠤᠯᠭ᠎ᠠ ᠶᠢ ᠡᠭᠦᠳᠦᠨ ᠪᠠᠶᠢᠭᠤᠯᠬᠤ ᠨᠢ ᠳᠣᠲᠣᠭᠠᠳᠤ ᠬᠠᠳᠠᠭᠠᠯᠠᠭᠤᠷ ᠪᠣᠯᠣᠨ CPU ᠶᠢᠨ ᠬᠡᠷᠡᠭᠯᠡᠯᠲᠡ ᠶᠢᠨ ᠬᠡᠮᠵᠢᠶ᠎ᠡ ᠶᠢ ᠨᠡᠮᠡᠭᠳᠡᠭᠦᠯᠦᠨ᠎ᠡ ᠂ ᠲᠠ ᠪᠠᠰᠠ ᠲᠡᠭᠦᠨ ᠢ ᠨᠡᠭᠡᠭᠡᠬᠦ ᠰᠠᠨᠠᠭ᠎ᠠ ᠲᠠᠢ ᠤᠤ ?</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="203"/>
-        <source>OK</source>
-        <translation>ᠡᠬᠢᠯᠡᠪᠡ᠃</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="421"/>
-        <source>Index the text in pictures</source>
-        <translation>ᠲᠠᠲᠠᠬᠤ ᠵᠢᠷᠤᠭ ᠳᠣᠲᠣᠷᠠᠬᠢ ᠦᠰᠦᠭ ᠪᠢᠴᠢᠭ᠌ ᠃</translation>
-        <extra-contents_path>/Search/Use OCR to index the text in pictures</extra-contents_path>
-    </message>
-    <message>
-        <source>Create ai index</source>
-        <translation type="vanished">ai ᠰᠦᠪᠡᠭᠴᠢ ᠶᠢ ᠡᠭᠦᠳᠦᠨ ᠪᠠᠶᠢᠭᠤᠯᠤᠨ᠎ᠠ ᠃</translation>
-        <extra-contents_path>/Search/Create ai index</extra-contents_path>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="876"/>
-        <location filename="../search.cpp" line="880"/>
-        <location filename="../search.cpp" line="884"/>
-        <location filename="../search.cpp" line="888"/>
-        <location filename="../search.cpp" line="927"/>
-        <location filename="../search.cpp" line="930"/>
-        <location filename="../search.cpp" line="933"/>
-        <location filename="../search.cpp" line="936"/>
-        <location filename="../search.cpp" line="939"/>
-        <location filename="../search.cpp" line="942"/>
-        <location filename="../search.cpp" line="945"/>
-        <source>Warning</source>
-        <translation>ᠰᠡᠷᠡᠮᠵᠢᠯᠡᠬᠦᠯᠬᠦ᠌</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="876"/>
-        <source>Add blocked folder failed, its parent dir has been added!</source>
-        <translation>ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠢ ᠨᠡᠮᠡᠵᠦ ᠳᠡᠶᠢᠯᠬᠦ ᠦᠭᠡᠢ ᠂ ᠲᠡᠭᠦᠨ ᠦ ᠡᠴᠢᠭᠡ ᠶᠢᠨ ᠭᠠᠷᠴᠠᠭ ᠨᠢᠭᠡᠨᠲᠡ ᠨᠡᠮᠡᠭ᠍ᠳᠡᠵᠡᠢ !</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="880"/>
-        <source>Add blocked folder failed, choosen path is not exist!</source>
-        <translation>ᠭᠠᠷᠴᠠᠭ ᠨᠡᠮᠡᠵᠦ ᠳᠡᠶᠢᠯᠬᠦ ᠦᠭᠡᠢ ᠂ ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠣᠷᠣᠰᠢᠬᠤ ᠦᠭᠡᠢ !</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="884"/>
-        <source>Add blocked folder failed, it has already been blocked!</source>
-        <translation>ᠭᠠᠷᠴᠠᠭ ᠨᠡᠮᠡᠵᠦ ᠳᠡᠶᠢᠯᠬᠦ ᠦᠭᠡᠢ ᠂ ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠨᠢᠭᠡᠨᠲᠡ ᠨᠡᠮᠡᠭ᠍ᠳᠡᠵᠡᠢ !</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="888"/>
-        <location filename="../search.cpp" line="942"/>
-        <source>Add search folder failed, hidden&#x3000;path is not supported!</source>
-        <translation>ᠭᠠᠷᠴᠠᠭ ᠨᠡᠮᠡᠬᠦ ᠶᠢᠨ ᠠᠷᠭ᠎ᠠ ᠦᠭᠡᠢ ᠂ ᠨᠢᠭᠤᠴᠠ ᠭᠠᠷᠴᠠᠭ ᠢ ᠳᠡᠮᠵᠢᠬᠦ ᠦᠭᠡᠢ !</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="909"/>
-        <source>select search folder</source>
-        <translation>ᠡᠷᠢᠬᠦ ᠭᠠᠷᠴᠠᠭ ᠢ ᠰᠣᠩᠭᠣᠨ᠎ᠠ</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="927"/>
-        <source>Add search folder failed, choosen path or its parent dir has been added!</source>
-        <translation>ᠡᠷᠢᠬᠦ ᠪᠢᠴᠢᠭ᠌ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠢ ᠨᠡᠮᠡᠵᠦ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠨᠢᠭᠡᠨᠲᠡ ᠰᠤᠩᠭ᠋ᠤᠬᠤ ᠵᠠᠮ ᠪᠤᠶᠤ ᠲᠡᠭᠦᠨ ᠦ ᠡᠴᠢᠭᠡ ᠶᠢᠨ ᠭᠠᠷᠴᠠᠭ ᠨᠡᠮᠡᠵᠡᠢ !</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="930"/>
-        <source>Add search folder failed, choosen path is not supported currently!</source>
-        <translation>ᠡᠷᠢᠬᠦ ᠭᠠᠷᠴᠠᠭ ᠢ ᠨᠡᠮᠡᠵᠦ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠣᠳᠣᠬᠠᠨ ᠳᠤ ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠢ ᠳᠡᠮᠵᠢᠬᠦ ᠦᠭᠡᠢ !</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="933"/>
-        <source>Add search folder failed, choosen path is in repeat mounted devices and another path which is in the same device has been added!</source>
-        <translation>ᠡᠷᠢᠬᠦ ᠪᠢᠴᠢᠭ᠌ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠢ ᠬᠠᠪᠴᠢᠭᠤᠯᠤᠨ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠠᠷᠭ᠎ᠠ ᠵᠠᠮ ᠢ ᠰᠣᠩᠭᠣᠵᠤ ᠳᠠᠬᠢᠨ ᠳᠠᠪᠲᠠᠨ ᠠᠴᠢᠶᠠᠯᠠᠭᠰᠠᠨ ᠲᠥᠬᠥᠭᠡᠷᠦᠮᠵᠢ ᠳᠦ ᠨᠡᠮᠡᠵᠦ ᠂ ᠨᠢᠭᠡᠨᠲᠡ ᠠᠳᠠᠯᠢ ᠨᠢᠭᠡᠨ ᠲᠥᠬᠥᠭᠡᠷᠦᠮᠵᠢ ᠳᠣᠲᠣᠷᠠᠬᠢ ᠨᠥᠭᠥᠭᠡ ᠨᠢᠭᠡ ᠠᠷᠭ᠎ᠠ ᠵᠠᠮ ᠨᠡᠮᠡᠵᠡᠢ !</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="936"/>
-        <source>Add search folder failed, another path which is in the same device has been added!</source>
-        <translation>ᠡᠷᠢᠬᠦ ᠪᠢᠴᠢᠭ᠌ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠢ ᠨᠡᠮᠡᠵᠦ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠨᠢᠭᠡᠨᠲᠡ ᠠᠳᠠᠯᠢ ᠨᠢᠭᠡᠨ ᠲᠥᠬᠥᠭᠡᠷᠦᠮᠵᠢ ᠳᠣᠲᠣᠷᠠᠬᠢ ᠨᠥᠭᠥᠭᠡ ᠨᠢᠭᠡ ᠠᠷᠭ᠎ᠠ ᠵᠠᠮ ᠢ ᠨᠡᠮᠡᠵᠡᠢ !</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="939"/>
-        <source>Add search folder failed, choosen path is not exists!</source>
-        <translation>ᠨᠡᠮᠡᠵᠦ ᠡᠷᠢᠬᠦ ᠭᠠᠷᠴᠠᠭ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠣᠷᠣᠰᠢᠬᠤ ᠦᠭᠡᠢ !</translation>
-    </message>
-    <message>
-        <location filename="../search.cpp" line="945"/>
-        <source>Add search folder failed, permission denied!</source>
-        <translation>ᠡᠷᠢᠬᠦ ᠭᠠᠷᠴᠠᠭ ᠢ ᠨᠡᠮᠡᠵᠦ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠢ ᠰᠤᠷᠪᠤᠯᠵᠢᠯᠠᠬᠤ ᠡᠷᠬᠡ ᠦᠭᠡᠢ !</translation>
-    </message>
-    <message>
-        <source>Add blocked folder failed, choosen path is empty!</source>
-        <translation type="vanished">ᠨᠡᠮᠡᠯᠳᠡ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠰᠤᠩᠭᠤᠭᠰᠠᠨ ᠵᠠᠮ ᠬᠤᠭᠤᠰᠤᠨ ᠪᠠᠢᠨ᠎ᠠ!</translation>
-    </message>
-    <message>
-        <source>Add blocked folder failed, it is not in home path!</source>
-        <translation type="vanished">ᠨᠡᠮᠡᠯᠳᠡ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠨᠡᠮᠡᠭᠰᠡᠨ ᠵᠠᠮ ᠲᠤᠰ ᠭᠠᠷᠴᠠᠭ᠎ᠤᠨ ᠳᠤᠤᠷ᠎ᠠ ᠪᠠᠢᠬᠤ ᠦᠬᠡᠢ!</translation>
-    </message>
-    <message>
-        <source>Add blocked folder failed, its parent dir is exist!</source>
-        <translation type="vanished">ᠨᠡᠮᠡᠯᠳᠡ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠡᠬᠢ ᠭᠠᠷᠴᠠᠭ᠎ᠢ ᠨᠢᠭᠡᠨᠳᠡ ᠨᠡᠮᠡᠭᠰᠡᠨ ᠪᠠᠢᠨ᠎ᠠ!</translation>
-    </message>
-    <message>
-        <source>Add blocked folder failed, it has been already blocked!</source>
-        <translation type="vanished">ᠨᠡᠮᠡᠯᠳᠡ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠡᠨᠡ ᠴᠤᠮᠤᠭ᠎ᠢ ᠨᠢᠭᠡᠨᠳᠡ ᠨᠡᠮᠡᠴᠢᠬᠡᠭᠰᠡᠨ ᠪᠠᠢᠨ᠎ᠠ!</translation>
-    </message>
-</context>
-</TS>
diff -Nru ukui-search-5.0.0.4/search-ukcc-plugin/translations/mn_MN.ts ukui-search-5.0.0.5/search-ukcc-plugin/translations/mn_MN.ts
--- ukui-search-5.0.0.4/search-ukcc-plugin/translations/mn_MN.ts	1970-01-01 08:00:00.000000000 +0800
+++ ukui-search-5.0.0.5/search-ukcc-plugin/translations/mn_MN.ts	2025-02-28 10:30:38.000000000 +0800
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="mn">
+<context>
+    <name>Search</name>
+    <message>
+        <location filename="../search.cpp" line="46"/>
+        <location filename="../search.cpp" line="285"/>
+        <source>Search</source>
+        <translation>ᠪᠦᠬᠦ᠌ ᠪᠠᠢᠳᠠᠯ᠎ᠤᠨ ᠬᠠᠢᠯᠳᠠ</translation>
+        <extra-contents_path>/Search/Search</extra-contents_path>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="302"/>
+        <source>Create index</source>
+        <translation>ᠬᠡᠯᠬᠢᠶᠡᠰᠦ ᠪᠠᠢᠭᠤᠯᠬᠤ</translation>
+        <extra-contents_path>/Search/Create index</extra-contents_path>
+    </message>
+    <message>
+        <source>Creating index can help you getting results quickly.</source>
+        <translation type="vanished">ᠡᠬᠢᠯᠡᠬᠦᠯᠦᠭᠰᠡᠨ᠎ᠦ ᠳᠠᠷᠠᠭ᠎ᠠ ᠬᠠᠢᠯᠲᠠ᠎ᠶᠢᠨ ᠦᠷ᠎ᠡ ᠳ᠋ᠦᠩ᠎ᠢ ᠬᠤᠷᠳᠤᠨ ᠤᠯᠵᠤ ᠪᠤᠯᠤᠨ᠎ᠠ ᠃</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="290"/>
+        <source>Default web searching engine</source>
+        <translation>ᠠᠶᠠᠳᠠᠯ ᠢᠨᠲᠸᠷᠨ᠋ᠸᠲ᠎ᠦᠨ ᠡᠷᠢᠯᠳᠡ ᠬᠦᠳᠡᠯᠬᠡᠬᠦᠷ</translation>
+        <extra-contents_path>/Search/Default web searching engine</extra-contents_path>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="294"/>
+        <source>baidu</source>
+        <translation>ᠪᠠᠢ ᠳ᠋ᠦ᠋</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="295"/>
+        <source>sougou</source>
+        <translation>ᠰᠸᠤ ᠭᠸᠦ</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="296"/>
+        <source>360</source>
+        <translation>360</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="315"/>
+        <source>Create file index</source>
+        <translation>ᠪᠢᠴᠢᠭ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠤᠨ ᠨᠡᠷ᠎ᠡ ᠶᠢᠨ ᠰᠦᠪᠡᠭᠴᠢ ᠶᠢ ᠡᠭᠦᠳᠦᠨ ᠪᠠᠶᠢᠭᠤᠯᠬᠤ ᠬᠡᠷᠡᠭᠲᠡᠶ᠃</translation>
+        <extra-contents_path>/Search/Create file index</extra-contents_path>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="340"/>
+        <source>Create file content index</source>
+        <translation>ᠪᠢᠴᠢᠭ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠤᠨ ᠠᠭᠤᠯᠭ᠎ᠠ ᠶᠢᠨ ᠰᠦᠪᠡᠭᠴᠢ ᠶᠢ ᠡᠭᠦᠳᠦᠨ ᠪᠠᠶᠢᠭᠤᠯᠬᠤ ᠬᠡᠷᠡᠭᠲᠡᠶ᠃</translation>
+        <extra-contents_path>/Search/Create file content index</extra-contents_path>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="453"/>
+        <source>AI model is ready</source>
+        <translation>AI ᠵᠠᠭᠪᠤᠷ ᠨᠢᠭᠡᠨᠲᠡ ᠪᠡᠯᠡᠳᠬᠡᠪᠡᠯ ᠳᠡᠭᠡᠰᠦ ᠪᠡᠯᠡᠳᠭᠡᠵᠡᠢ ᠃</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="455"/>
+        <source>AI model is not ready</source>
+        <translation>AI ᠵᠠᠭᠪᠤᠷ ᠢ ᠪᠠᠰᠠ ᠪᠡᠯᠡᠳᠬᠡᠭᠡᠳᠦᠢ ᠪᠠᠶᠢᠭᠰᠠᠭᠠᠷ ᠃</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="502"/>
+        <source>Block Folders</source>
+        <translation>ᠢᠯᠭᠠᠵᠤ ᠭᠠᠷᠭᠠᠭᠰᠠᠨ ᠴᠤᠮᠤᠭ</translation>
+        <extra-contents_path>/Search/Block Folders</extra-contents_path>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="507"/>
+        <source>Following folders will not be searched. You can set it by adding and removing folders.</source>
+        <translation>ᠬᠠᠢᠯᠲᠠ᠎ᠪᠠᠷ ᠳᠠᠷᠠᠭᠠᠬᠢ ᠴᠤᠮᠤᠭ᠎ᠢ ᠪᠠᠢᠴᠠᠭᠠᠵᠤ ᠦᠵᠡᠬᠦ᠌ ᠦᠬᠡᠢ ᠂ ᠨᠡᠮᠡᠬᠦ᠌ ᠪᠤᠶᠤ ᠬᠠᠰᠤᠬᠤ᠎ᠪᠠᠷ ᠳᠠᠮᠵᠢᠭᠤᠯᠤᠨ ᠢᠯᠭᠠᠵᠤ ᠭᠠᠷᠭᠠᠭᠰᠠᠨ ᠴᠤᠮᠤᠭ᠎ᠤᠨ ᠪᠠᠢᠷᠢ᠎ᠶᠢ ᠳᠤᠬᠢᠷᠠᠭᠤᠯᠵᠤ ᠪᠤᠯᠤᠨ᠎ᠠ ᠃</translation>
+    </message>
+    <message>
+        <source>Choose folder</source>
+        <translation type="vanished">ᠨᠡᠮᠡᠬᠦ᠌</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="726"/>
+        <location filename="../search.cpp" line="797"/>
+        <source>delete</source>
+        <translation>ᠬᠠᠰᠤᠬᠤ</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="855"/>
+        <location filename="../search.cpp" line="908"/>
+        <source>Directories</source>
+        <translation>ᠴᠤᠮᠤᠭ</translation>
+    </message>
+    <message>
+        <source>File Content Search</source>
+        <translation type="vanished">ᠪᠢᠴᠢᠭ᠌ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠤᠨ ᠠᠭᠤᠯᠭ᠎ᠠ ᠡᠷᠢᠬᠦ</translation>
+        <extra-contents_path>/Search/File Content Search</extra-contents_path>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="372"/>
+        <source>Precise Search</source>
+        <translation>ᠣᠨᠣᠪᠴᠢᠲᠠᠢ ᠡᠷᠢᠬᠦ</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="375"/>
+        <source>show the results that exactly match the keyword</source>
+        <translation>ᠵᠠᠩᠭᠢᠯᠠᠭ᠎ᠠ ᠶᠢᠨ ᠦᠰᠦᠭ ᠲᠡᠢ ᠪᠦᠷᠢᠮᠦᠰᠦᠨ ᠲᠣᠬᠢᠷᠠᠯᠴᠠᠭᠰᠠᠨ ᠦᠷ᠎ᠡ ᠳ᠋ᠦᠩ ᠢ ᠢᠯᠡᠷᠡᠭᠦᠯᠵᠡᠢ</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="385"/>
+        <source>Fuzzy Search</source>
+        <translation>ᠪᠠᠯᠠᠷᠬᠠᠢ ᠡᠷᠢᠬᠦ</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="388"/>
+        <source>show more results that match the keyword</source>
+        <translation>ᠨᠡᠩ ᠠᠷᠪᠢᠨ ᠵᠠᠩᠭᠢᠯᠠᠭ᠎ᠠ ᠶᠢᠨ ᠦᠰᠦᠭ ᠲᠡᠢ ᠲᠣᠬᠢᠷᠠᠯᠴᠠᠭᠰᠠᠨ ᠦᠷ᠎ᠡ ᠳ᠋ᠦᠩ ᠢ ᠢᠯᠡᠷᠡᠭᠦᠯᠵᠡᠢ</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="449"/>
+        <source>Create AI index</source>
+        <translation>AI ᠰᠦᠪᠡᠭᠴᠢ ᠶᠢ ᠡᠭᠦᠳᠦᠨ ᠪᠠᠶᠢᠭᠤᠯᠤᠨ᠎ᠠ ᠃</translation>
+        <extra-contents_path>/Search/Create AI index</extra-contents_path>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="469"/>
+        <source>Search Folders</source>
+        <translation>ᠡᠷᠢᠬᠦ ᠭᠠᠷᠴᠠᠭ</translation>
+        <extra-contents_path>/Search/Search Folders</extra-contents_path>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="475"/>
+        <source>Following folders will be searched. You can set it by adding and removing folders.</source>
+        <translation>ᠳᠣᠣᠷᠠᠬᠢ ᠭᠠᠷᠴᠠᠭ ᠢ ᠡᠷᠢᠨ᠎ᠡ ᠃ ᠲᠠ ᠭᠠᠷᠴᠠᠭ ᠢᠶᠠᠷ ᠳᠠᠮᠵᠢᠨ ᠡᠷᠢᠬᠦ ᠬᠡᠪᠴᠢᠶ᠎ᠡ ᠶᠢ ᠵᠢᠭᠠᠨ ᠲᠣᠭᠲᠠᠭᠠᠵᠤ ᠪᠣᠯᠣᠨ᠎ᠠ᠃</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="856"/>
+        <source>select blocked folder</source>
+        <translation>ᠢᠯᠭᠠᠵᠤ ᠭᠠᠷᠭᠠᠭᠰᠠᠨ ᠴᠤᠮᠤᠭ᠎ᠢ ᠰᠤᠩᠭᠤᠬᠤ</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="857"/>
+        <location filename="../search.cpp" line="910"/>
+        <source>Select</source>
+        <translation>ᠰᠤᠩᠭᠤᠬᠤ</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="858"/>
+        <location filename="../search.cpp" line="911"/>
+        <source>Position: </source>
+        <translation>ᠪᠠᠢᠷᠢ ᠄ </translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="859"/>
+        <location filename="../search.cpp" line="912"/>
+        <source>FileName: </source>
+        <translation>ᠹᠠᠢᠯ᠎ᠤᠨ ᠨᠡᠷ᠎ᠡ ᠄ </translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="860"/>
+        <location filename="../search.cpp" line="913"/>
+        <source>FileType: </source>
+        <translation>ᠬᠡᠯᠪᠡᠷᠢ ᠮᠠᠶᠢᠭ </translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="204"/>
+        <location filename="../search.cpp" line="861"/>
+        <location filename="../search.cpp" line="914"/>
+        <source>Cancel</source>
+        <translation>ᠦᠬᠡᠢᠰᠭᠡᠬᠦ᠌</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="202"/>
+        <source>Create file content index will increase the usage of memory and CPU, do you still want to open it?</source>
+        <translation>ᠪᠢᠴᠢᠭ᠌ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠤᠨ ᠠᠭᠤᠯᠭ᠎ᠠ ᠶᠢ ᠡᠭᠦᠳᠦᠨ ᠪᠠᠶᠢᠭᠤᠯᠬᠤ ᠨᠢ ᠳᠣᠲᠣᠭᠠᠳᠤ ᠬᠠᠳᠠᠭᠠᠯᠠᠭᠤᠷ ᠪᠣᠯᠣᠨ CPU ᠶᠢᠨ ᠬᠡᠷᠡᠭᠯᠡᠯᠲᠡ ᠶᠢᠨ ᠬᠡᠮᠵᠢᠶ᠎ᠡ ᠶᠢ ᠨᠡᠮᠡᠭᠳᠡᠭᠦᠯᠦᠨ᠎ᠡ ᠂ ᠲᠠ ᠪᠠᠰᠠ ᠲᠡᠭᠦᠨ ᠢ ᠨᠡᠭᠡᠭᠡᠬᠦ ᠰᠠᠨᠠᠭ᠎ᠠ ᠲᠠᠢ ᠤᠤ ?</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="203"/>
+        <source>OK</source>
+        <translation>ᠡᠬᠢᠯᠡᠪᠡ᠃</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="421"/>
+        <source>Index the text in pictures</source>
+        <translation>ᠲᠠᠲᠠᠬᠤ ᠵᠢᠷᠤᠭ ᠳᠣᠲᠣᠷᠠᠬᠢ ᠦᠰᠦᠭ ᠪᠢᠴᠢᠭ᠌ ᠃</translation>
+        <extra-contents_path>/Search/Use OCR to index the text in pictures</extra-contents_path>
+    </message>
+    <message>
+        <source>Create ai index</source>
+        <translation type="vanished">ai ᠰᠦᠪᠡᠭᠴᠢ ᠶᠢ ᠡᠭᠦᠳᠦᠨ ᠪᠠᠶᠢᠭᠤᠯᠤᠨ᠎ᠠ ᠃</translation>
+        <extra-contents_path>/Search/Create ai index</extra-contents_path>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="876"/>
+        <location filename="../search.cpp" line="880"/>
+        <location filename="../search.cpp" line="884"/>
+        <location filename="../search.cpp" line="888"/>
+        <location filename="../search.cpp" line="927"/>
+        <location filename="../search.cpp" line="930"/>
+        <location filename="../search.cpp" line="933"/>
+        <location filename="../search.cpp" line="936"/>
+        <location filename="../search.cpp" line="939"/>
+        <location filename="../search.cpp" line="942"/>
+        <location filename="../search.cpp" line="945"/>
+        <source>Warning</source>
+        <translation>ᠰᠡᠷᠡᠮᠵᠢᠯᠡᠬᠦᠯᠬᠦ᠌</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="876"/>
+        <source>Add blocked folder failed, its parent dir has been added!</source>
+        <translation>ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠢ ᠨᠡᠮᠡᠵᠦ ᠳᠡᠶᠢᠯᠬᠦ ᠦᠭᠡᠢ ᠂ ᠲᠡᠭᠦᠨ ᠦ ᠡᠴᠢᠭᠡ ᠶᠢᠨ ᠭᠠᠷᠴᠠᠭ ᠨᠢᠭᠡᠨᠲᠡ ᠨᠡᠮᠡᠭ᠍ᠳᠡᠵᠡᠢ !</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="880"/>
+        <source>Add blocked folder failed, choosen path is not exist!</source>
+        <translation>ᠭᠠᠷᠴᠠᠭ ᠨᠡᠮᠡᠵᠦ ᠳᠡᠶᠢᠯᠬᠦ ᠦᠭᠡᠢ ᠂ ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠣᠷᠣᠰᠢᠬᠤ ᠦᠭᠡᠢ !</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="884"/>
+        <source>Add blocked folder failed, it has already been blocked!</source>
+        <translation>ᠭᠠᠷᠴᠠᠭ ᠨᠡᠮᠡᠵᠦ ᠳᠡᠶᠢᠯᠬᠦ ᠦᠭᠡᠢ ᠂ ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠨᠢᠭᠡᠨᠲᠡ ᠨᠡᠮᠡᠭ᠍ᠳᠡᠵᠡᠢ !</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="888"/>
+        <location filename="../search.cpp" line="942"/>
+        <source>Add search folder failed, hidden&#x3000;path is not supported!</source>
+        <translation>ᠭᠠᠷᠴᠠᠭ ᠨᠡᠮᠡᠬᠦ ᠶᠢᠨ ᠠᠷᠭ᠎ᠠ ᠦᠭᠡᠢ ᠂ ᠨᠢᠭᠤᠴᠠ ᠭᠠᠷᠴᠠᠭ ᠢ ᠳᠡᠮᠵᠢᠬᠦ ᠦᠭᠡᠢ !</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="909"/>
+        <source>select search folder</source>
+        <translation>ᠡᠷᠢᠬᠦ ᠭᠠᠷᠴᠠᠭ ᠢ ᠰᠣᠩᠭᠣᠨ᠎ᠠ</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="927"/>
+        <source>Add search folder failed, choosen path or its parent dir has been added!</source>
+        <translation>ᠡᠷᠢᠬᠦ ᠪᠢᠴᠢᠭ᠌ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠢ ᠨᠡᠮᠡᠵᠦ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠨᠢᠭᠡᠨᠲᠡ ᠰᠤᠩᠭ᠋ᠤᠬᠤ ᠵᠠᠮ ᠪᠤᠶᠤ ᠲᠡᠭᠦᠨ ᠦ ᠡᠴᠢᠭᠡ ᠶᠢᠨ ᠭᠠᠷᠴᠠᠭ ᠨᠡᠮᠡᠵᠡᠢ !</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="930"/>
+        <source>Add search folder failed, choosen path is not supported currently!</source>
+        <translation>ᠡᠷᠢᠬᠦ ᠭᠠᠷᠴᠠᠭ ᠢ ᠨᠡᠮᠡᠵᠦ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠣᠳᠣᠬᠠᠨ ᠳᠤ ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠢ ᠳᠡᠮᠵᠢᠬᠦ ᠦᠭᠡᠢ !</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="933"/>
+        <source>Add search folder failed, choosen path is in repeat mounted devices and another path which is in the same device has been added!</source>
+        <translation>ᠡᠷᠢᠬᠦ ᠪᠢᠴᠢᠭ᠌ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠢ ᠬᠠᠪᠴᠢᠭᠤᠯᠤᠨ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠠᠷᠭ᠎ᠠ ᠵᠠᠮ ᠢ ᠰᠣᠩᠭᠣᠵᠤ ᠳᠠᠬᠢᠨ ᠳᠠᠪᠲᠠᠨ ᠠᠴᠢᠶᠠᠯᠠᠭᠰᠠᠨ ᠲᠥᠬᠥᠭᠡᠷᠦᠮᠵᠢ ᠳᠦ ᠨᠡᠮᠡᠵᠦ ᠂ ᠨᠢᠭᠡᠨᠲᠡ ᠠᠳᠠᠯᠢ ᠨᠢᠭᠡᠨ ᠲᠥᠬᠥᠭᠡᠷᠦᠮᠵᠢ ᠳᠣᠲᠣᠷᠠᠬᠢ ᠨᠥᠭᠥᠭᠡ ᠨᠢᠭᠡ ᠠᠷᠭ᠎ᠠ ᠵᠠᠮ ᠨᠡᠮᠡᠵᠡᠢ !</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="936"/>
+        <source>Add search folder failed, another path which is in the same device has been added!</source>
+        <translation>ᠡᠷᠢᠬᠦ ᠪᠢᠴᠢᠭ᠌ ᠮᠠᠲ᠋ᠧᠷᠢᠶᠠᠯ ᠢ ᠨᠡᠮᠡᠵᠦ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠨᠢᠭᠡᠨᠲᠡ ᠠᠳᠠᠯᠢ ᠨᠢᠭᠡᠨ ᠲᠥᠬᠥᠭᠡᠷᠦᠮᠵᠢ ᠳᠣᠲᠣᠷᠠᠬᠢ ᠨᠥᠭᠥᠭᠡ ᠨᠢᠭᠡ ᠠᠷᠭ᠎ᠠ ᠵᠠᠮ ᠢ ᠨᠡᠮᠡᠵᠡᠢ !</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="939"/>
+        <source>Add search folder failed, choosen path is not exists!</source>
+        <translation>ᠨᠡᠮᠡᠵᠦ ᠡᠷᠢᠬᠦ ᠭᠠᠷᠴᠠᠭ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠣᠷᠣᠰᠢᠬᠤ ᠦᠭᠡᠢ !</translation>
+    </message>
+    <message>
+        <location filename="../search.cpp" line="945"/>
+        <source>Add search folder failed, permission denied!</source>
+        <translation>ᠡᠷᠢᠬᠦ ᠭᠠᠷᠴᠠᠭ ᠢ ᠨᠡᠮᠡᠵᠦ ᠢᠯᠠᠭᠳᠠᠵᠠᠢ ᠂ ᠡᠨᠡ ᠭᠠᠷᠴᠠᠭ ᠢ ᠰᠤᠷᠪᠤᠯᠵᠢᠯᠠᠬᠤ ᠡᠷᠬᠡ ᠦᠭᠡᠢ !</translation>
+    </message>
+    <message>
+        <source>Add blocked folder failed, choosen path is empty!</source>
+        <translation type="vanished">ᠨᠡᠮᠡᠯᠳᠡ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠰᠤᠩᠭᠤᠭᠰᠠᠨ ᠵᠠᠮ ᠬᠤᠭᠤᠰᠤᠨ ᠪᠠᠢᠨ᠎ᠠ!</translation>
+    </message>
+    <message>
+        <source>Add blocked folder failed, it is not in home path!</source>
+        <translation type="vanished">ᠨᠡᠮᠡᠯᠳᠡ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠨᠡᠮᠡᠭᠰᠡᠨ ᠵᠠᠮ ᠲᠤᠰ ᠭᠠᠷᠴᠠᠭ᠎ᠤᠨ ᠳᠤᠤᠷ᠎ᠠ ᠪᠠᠢᠬᠤ ᠦᠬᠡᠢ!</translation>
+    </message>
+    <message>
+        <source>Add blocked folder failed, its parent dir is exist!</source>
+        <translation type="vanished">ᠨᠡᠮᠡᠯᠳᠡ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠡᠬᠢ ᠭᠠᠷᠴᠠᠭ᠎ᠢ ᠨᠢᠭᠡᠨᠳᠡ ᠨᠡᠮᠡᠭᠰᠡᠨ ᠪᠠᠢᠨ᠎ᠠ!</translation>
+    </message>
+    <message>
+        <source>Add blocked folder failed, it has been already blocked!</source>
+        <translation type="vanished">ᠨᠡᠮᠡᠯᠳᠡ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠡᠨᠡ ᠴᠤᠮᠤᠭ᠎ᠢ ᠨᠢᠭᠡᠨᠳᠡ ᠨᠡᠮᠡᠴᠢᠬᠡᠭᠰᠡᠨ ᠪᠠᠢᠨ᠎ᠠ!</translation>
+    </message>
+</context>
+</TS>