kivio
kivioglobal.cpp
00001 /* This file is part of the KDE project 00002 Copyright (C) 2003-2004 Peter Simonsson <psn@linux.se> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 Boston, MA 02110-1301, USA. 00018 */ 00019 00020 #include "kivioglobal.h" 00021 00022 #include <qdom.h> 00023 #include <qpixmap.h> 00024 #include <qprinter.h> 00025 00026 #include <kdebug.h> 00027 #include <kglobal.h> 00028 #include <klocale.h> 00029 00030 #include <KoGenStyles.h> 00031 #include <KoZoomHandler.h> 00032 #include <KoGlobal.h> 00033 00034 #include "kivio_common.h" 00035 #include "kivio_settings.h" 00036 #include "kivio_stencil.h" 00037 #include "kivio_intra_stencil_data.h" 00038 #include "kivio_screen_painter.h" 00039 00040 struct PaperSizeDef { 00041 const char* title; 00042 float width; 00043 float height; 00044 int unit; 00045 }; 00046 00047 void Kivio::savePageLayout(QDomElement& e, const KoPageLayout& layout) 00048 { 00049 XmlWriteFloat(e, "width", layout.ptWidth); 00050 XmlWriteFloat(e, "height", layout.ptHeight); 00051 XmlWriteFloat(e, "marginLeft", layout.ptLeft); 00052 XmlWriteFloat(e, "marginRight", layout.ptRight); 00053 XmlWriteFloat(e, "marginTop", layout.ptTop); 00054 XmlWriteFloat(e, "marginBottom", layout.ptBottom); 00055 XmlWriteString(e, "format", KoPageFormat::formatString(layout.format)); 00056 XmlWriteString(e, "orientation", Kivio::orientationString(layout.orientation)); 00057 } 00058 00059 // ## TODO: remove this method, now that layout.saveOasis() does it all 00060 KoGenStyle Kivio::savePageLayout(const KoPageLayout& layout) 00061 { 00062 return layout.saveOasis(); 00063 } 00064 00065 KoPageLayout Kivio::loadPageLayout(const QDomElement& e) 00066 { 00067 KoPageLayout layout; 00068 00069 if(e.hasAttribute("unit")) { 00070 // Compatibility with Kivio <= 1.2.x 00071 kdDebug(43000) << "Compatibility mode..." << endl; 00072 KoUnit::Unit unit = Kivio::convToKoUnit(XmlReadInt(e, "unit", 0)); 00073 layout.ptWidth = KoUnit::fromUserValue(XmlReadFloat(e, "width", 0.0), unit); 00074 layout.ptHeight = KoUnit::fromUserValue(XmlReadFloat(e, "height", 0.0), unit); 00075 layout.ptLeft = KoUnit::fromUserValue(XmlReadFloat(e, "marginLeft", 0.0), unit); 00076 layout.ptRight = KoUnit::fromUserValue(XmlReadFloat(e, "marginRight", 0.0), unit); 00077 layout.ptTop = KoUnit::fromUserValue(XmlReadFloat(e, "marginTop", 0.0), unit); 00078 layout.ptBottom = KoUnit::fromUserValue(XmlReadFloat(e, "marginBottom", 0.0), unit); 00079 Kivio::setFormatOrientation(layout); 00080 kdDebug(43000) << "Ready." << endl; 00081 } else { 00082 layout.ptWidth = XmlReadFloat(e, "width", 0.0); 00083 layout.ptHeight = XmlReadFloat(e, "height", 0.0); 00084 layout.ptLeft = XmlReadFloat(e, "marginLeft", 0.0); 00085 layout.ptRight = XmlReadFloat(e, "marginRight", 0.0); 00086 layout.ptTop = XmlReadFloat(e, "marginTop", 0.0); 00087 layout.ptBottom = XmlReadFloat(e, "marginBottom", 0.0); 00088 layout.format = KoPageFormat::formatFromString(XmlReadString(e, "format", pageSizeString(KGlobal::locale()->pageSize()))); 00089 layout.orientation = Kivio::orientationFromString(XmlReadString(e, "orientation", "Portrait")); 00090 } 00091 00092 return layout; 00093 } 00094 00095 KoUnit::Unit Kivio::convToKoUnit(int tkUnit) 00096 { 00097 switch(tkUnit) { 00098 case 0: 00099 return KoUnit::U_PT; 00100 case 1: 00101 return KoUnit::U_MM; 00102 case 2: 00103 return KoUnit::U_INCH; 00104 case 3: 00105 return KoUnit::U_PI; 00106 case 4: 00107 return KoUnit::U_CM; 00108 case 5: 00109 return KoUnit::U_DD; 00110 case 6: 00111 return KoUnit::U_CC; 00112 } 00113 00114 return KoUnit::U_PT; 00115 } 00116 00117 QString Kivio::orientationString(KoOrientation o) 00118 { 00119 if(o == PG_LANDSCAPE) { 00120 return "Landscape"; 00121 } 00122 00123 return "Portrait"; 00124 } 00125 00126 KoOrientation Kivio::orientationFromString(const QString& s) 00127 { 00128 if(s == "Landscape") { 00129 return PG_LANDSCAPE; 00130 } 00131 00132 return PG_PORTRAIT; 00133 } 00134 00135 void Kivio::setFormatOrientation(KoPageLayout& layout) 00136 { 00137 const PaperSizeDef PapersTable[] = { 00138 {"A0",841,1189,KoUnit::U_MM}, 00139 {"A1",594,841,KoUnit::U_MM}, 00140 {"A2",420,594,KoUnit::U_MM}, 00141 {"A3",297,420,KoUnit::U_MM}, 00142 {"A4",210,297,KoUnit::U_MM}, 00143 {"A5",148,210,KoUnit::U_MM}, 00144 00145 {"B4",250,353,KoUnit::U_MM}, 00146 {"B6",125,176,KoUnit::U_MM}, 00147 00148 {"C4",229,324,KoUnit::U_MM}, 00149 {"C5",162,229,KoUnit::U_MM}, 00150 {"C5",114,162,KoUnit::U_MM}, 00151 00152 {"DL",110,220,KoUnit::U_MM}, 00153 00154 {"Letter",8.5,11,KoUnit::U_INCH}, 00155 {"Legal",8.5,14,KoUnit::U_INCH}, 00156 00157 {"A",8.5,11,KoUnit::U_INCH}, 00158 {"B",11,17,KoUnit::U_INCH}, 00159 {"C",17,22,KoUnit::U_INCH}, 00160 {"D",22,34,KoUnit::U_INCH}, 00161 {"E",34,44,KoUnit::U_INCH}, 00162 00163 {"null",0,0,-2} // -2 for end of list 00164 }; 00165 int j = 0; 00166 PaperSizeDef sizeDef = PapersTable[0]; 00167 bool found = false; 00168 float width, height; 00169 layout.format = PG_CUSTOM; 00170 layout.orientation = PG_PORTRAIT; 00171 00172 while((sizeDef.unit != -2) && !found) { 00173 width = KoUnit::fromUserValue(sizeDef.width, static_cast<KoUnit::Unit>(sizeDef.unit)); 00174 height = KoUnit::fromUserValue(sizeDef.height, static_cast<KoUnit::Unit>(sizeDef.unit)); 00175 00176 if((layout.ptWidth == width) && (layout.ptHeight == height)) { 00177 layout.format = KoPageFormat::formatFromString(sizeDef.title); 00178 layout.orientation = PG_PORTRAIT; 00179 found = true; 00180 } else if((layout.ptWidth == height) && (layout.ptHeight == width)) { 00181 layout.format = KoPageFormat::formatFromString(sizeDef.title); 00182 layout.orientation = PG_LANDSCAPE; 00183 found = true; 00184 } 00185 00186 sizeDef = PapersTable[++j]; 00187 } 00188 } 00189 00190 KoSize Kivio::loadSize(const QDomElement& e, const QString& name, const KoSize& def) 00191 { 00192 KoSize size; 00193 if(e.hasAttribute(name + "Unit")) { 00194 // Compatibility with Kivio <= 1.2.x 00195 KoUnit::Unit unit = Kivio::convToKoUnit(XmlReadInt(e, name + "Unit", 0)); 00196 size.setWidth(KoUnit::fromUserValue(XmlReadFloat(e, name + "Width", def.width()), unit)); 00197 size.setHeight(KoUnit::fromUserValue(XmlReadFloat(e, name + "Height", def.height()), unit)); 00198 } else { 00199 size.setWidth(XmlReadFloat(e, name + "Width", def.width())); 00200 size.setHeight(XmlReadFloat(e, name + "Height", def.height())); 00201 } 00202 00203 return size; 00204 } 00205 00206 void Kivio::saveSize(QDomElement& e, const QString& name, const KoSize& size) 00207 { 00208 XmlWriteFloat(e, name + "Width", size.width()); 00209 XmlWriteFloat(e, name + "Height", size.height()); 00210 } 00211 00212 QString Kivio::pageSizeString(int pageSize) 00213 { 00214 QString psStr = "A4"; 00215 00216 switch(pageSize) { 00217 case QPrinter::A0: 00218 psStr = "A0"; 00219 break; 00220 case QPrinter::A1: 00221 psStr = "A1"; 00222 break; 00223 case QPrinter::A2: 00224 psStr = "A2"; 00225 break; 00226 case QPrinter::A3: 00227 psStr = "A3"; 00228 break; 00229 case QPrinter::A5: 00230 psStr = "A5"; 00231 break; 00232 case QPrinter::A6: 00233 psStr = "A6"; 00234 break; 00235 case QPrinter::A7: 00236 psStr = "A7"; 00237 break; 00238 case QPrinter::A8: 00239 psStr = "A8"; 00240 break; 00241 case QPrinter::A9: 00242 psStr = "A9"; 00243 break; 00244 case QPrinter::B0: 00245 psStr = "B0"; 00246 break; 00247 case QPrinter::B1: 00248 psStr = "B1"; 00249 break; 00250 case QPrinter::B10: 00251 psStr = "B10"; 00252 break; 00253 case QPrinter::B2: 00254 psStr = "B2"; 00255 break; 00256 case QPrinter::B3: 00257 psStr = "B3"; 00258 break; 00259 case QPrinter::B4: 00260 psStr = "B4"; 00261 break; 00262 case QPrinter::B5: 00263 psStr = "B5"; 00264 break; 00265 case QPrinter::B6: 00266 psStr = "B6"; 00267 break; 00268 case QPrinter::B7: 00269 psStr = "B7"; 00270 break; 00271 case QPrinter::B8: 00272 psStr = "B8"; 00273 break; 00274 case QPrinter::B9: 00275 psStr = "B9"; 00276 break; 00277 case QPrinter::C5E: 00278 psStr = "C5"; 00279 break; 00280 case QPrinter::Comm10E: 00281 psStr = "Comm10"; 00282 break; 00283 case QPrinter::DLE: 00284 psStr = "DL"; 00285 break; 00286 case QPrinter::Executive: 00287 psStr = "Executive"; 00288 break; 00289 case QPrinter::Folio: 00290 psStr = "Folio"; 00291 break; 00292 case QPrinter::Ledger: 00293 psStr = "Ledger"; 00294 break; 00295 case QPrinter::Legal: 00296 psStr = "Legal"; 00297 break; 00298 case QPrinter::Letter: 00299 psStr = "Letter"; 00300 break; 00301 case QPrinter::Tabloid: 00302 psStr = "Tabloid"; 00303 break; 00304 case QPrinter::Custom: 00305 psStr = "Custom"; 00306 break; 00307 case QPrinter::A4: 00308 default: 00309 psStr = "A4"; 00310 break; 00311 }; 00312 00313 return psStr; 00314 } 00315 00316 QPixmap Kivio::arrowHeadPixmap() 00317 { 00318 const char* lineends[] = { 00319 "50 272 2 1", 00320 " c #000000", 00321 "X c #ffffff", 00322 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00323 "X X", 00324 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00325 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00326 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX X", 00327 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00328 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00329 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00330 "X X XXXXX X", 00331 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00332 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00333 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00334 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX X", 00335 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00336 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00337 "X X", 00338 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00339 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00340 "X X", 00341 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00342 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00343 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX X", 00344 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00345 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00346 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00347 "X X XXXXX X", 00348 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00349 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00350 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00351 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX X", 00352 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00353 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00354 "X X", 00355 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00356 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00357 "X X", 00358 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00359 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00360 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX X", 00361 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXX X", 00362 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXX X", 00363 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXX X", 00364 "X X XXXXXXXXXX XXXXX X", 00365 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXX X", 00366 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXX X", 00367 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXX X", 00368 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX X", 00369 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00370 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00371 "X X", 00372 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00373 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00374 "X X", 00375 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00376 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00377 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXX X", 00378 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXX X", 00379 "X XXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXX X", 00380 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 00381 "X X XXXXX X", 00382 "X XXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXX X", 00383 "X XXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXX X", 00384 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXX X", 00385 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXX X", 00386 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00387 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00388 "X X", 00389 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00390 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00391 "X X", 00392 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00393 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00394 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXX X", 00395 "X XXXXXXXXXXXXXXXXXXXXXXXX X XXXX X XXXXXXXXXX X", 00396 "X XXXXXXXXXXXXXXXXXXXXXXXX XXX XX XXX XXXXXXXX X", 00397 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXX XXXXXX X", 00398 "X X XXXXXX XXXXXX XXXXX X", 00399 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXX X XXXX XXXXXXX X", 00400 "X XXXXXXXXXXXXXXXXXXXXXXXX XX XXX XX XXXXXXXXX X", 00401 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXX X", 00402 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXX X", 00403 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00404 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00405 "X X", 00406 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00407 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00408 "X X", 00409 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00410 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00411 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00412 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX X", 00413 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00414 "X X XXXXXX X", 00415 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00416 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00417 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00418 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00419 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00420 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00421 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00422 "X X", 00423 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00424 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00425 "X X", 00426 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00427 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00428 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00429 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00430 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00431 "X X XXXXXX X", 00432 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00433 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX X", 00434 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00435 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00436 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00437 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00438 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00439 "X X", 00440 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00441 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00442 "X X", 00443 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00444 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00445 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 00446 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 00447 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 00448 "X X XXXXXX X", 00449 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 00450 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 00451 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 00452 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00453 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00454 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00455 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00456 "X X", 00457 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00458 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00459 "X X", 00460 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00461 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00462 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00463 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00464 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00465 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00466 "X X XXXXX X", 00467 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00468 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00469 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX X", 00470 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00471 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00472 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00473 "X X", 00474 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00475 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00476 "X X", 00477 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00478 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00479 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00480 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX X", 00481 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00482 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00483 "X X XXXXX X", 00484 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00485 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00486 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00487 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00488 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00489 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00490 "X X", 00491 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00492 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00493 "X X", 00494 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00495 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00496 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00497 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00498 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00499 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00500 "X X XXXXX X", 00501 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00502 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00503 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00504 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00505 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00506 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00507 "X X", 00508 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00509 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00510 "X X", 00511 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00512 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00513 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00514 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00515 "X XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00516 "X XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 00517 "X X XXXXX X", 00518 "X XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00519 "X XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00520 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX X", 00521 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00522 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00523 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00524 "X X", 00525 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00526 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00527 "X X", 00528 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00529 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00530 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00531 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXX X", 00532 "X XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXX X", 00533 "X XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXX X", 00534 "X X XXXXXXXXXXXXXX XXXXX X", 00535 "X XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXX X", 00536 "X XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXX X", 00537 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXX X", 00538 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00539 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00540 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00541 "X X", 00542 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00543 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00544 "X X", 00545 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00546 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00547 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00548 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 00549 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00550 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00551 "X X XXXXX X", 00552 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00553 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00554 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 00555 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00556 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00557 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00558 "X X", 00559 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00560 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00561 "X X", 00562 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00563 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00564 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00565 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00566 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00567 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00568 "X X XXXXX X", 00569 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00570 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00571 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00572 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00573 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00574 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00575 "X X", 00576 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00577 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00578 "X X", 00579 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00580 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00581 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00582 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXX X", 00583 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXX X", 00584 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXX X", 00585 "X X XXXXX X", 00586 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXX X", 00587 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXX X", 00588 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXX X", 00589 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00590 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00591 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00592 "X X", 00593 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"//, 00594 /*"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00595 "X X", 00596 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00597 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00598 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00599 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00600 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00601 "X X XXXXXX X", 00602 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00603 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00604 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00605 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00606 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00607 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00608 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00609 "X X", 00610 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00611 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00612 "X X", 00613 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00614 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00615 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00616 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00617 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00618 "X X XXXXXX X", 00619 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00620 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00621 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00622 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00623 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00624 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00625 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00626 "X X", 00627 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00628 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00629 "X X", 00630 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00631 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00632 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX X", 00633 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00634 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00635 "X X XXXXXX X", 00636 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00637 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00638 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00639 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX X", 00640 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00641 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00642 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00643 "X X", 00644 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00645 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00646 "X X", 00647 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00648 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00649 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX X", 00650 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00651 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00652 "X X XXXXXX X", 00653 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00654 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00655 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00656 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX X", 00657 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00658 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00659 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00660 "X X", 00661 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00662 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00663 "X X", 00664 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00665 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00666 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX X", 00667 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00668 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00669 "X X XXXXXX X", 00670 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00671 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00672 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX X", 00673 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00674 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00675 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00676 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00677 "X X", 00678 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00679 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00680 "X X", 00681 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00682 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00683 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX X", 00684 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00685 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00686 "X X XXXXXX X", 00687 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 00688 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00689 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX X", 00690 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00691 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00692 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00693 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00694 "X X", 00695 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00696 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00697 "X X", 00698 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00699 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00700 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00701 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00702 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00703 "X X XXXXXX X", 00704 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00705 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00706 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00707 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00708 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00709 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00710 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00711 "X X", 00712 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00713 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00714 "X X", 00715 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00716 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00717 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00718 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00719 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00720 "X X XXXXXX X", 00721 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00722 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00723 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00724 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00725 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00726 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00727 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00728 "X X", 00729 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00730 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00731 "X X", 00732 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00733 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00734 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00735 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00736 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX X", 00737 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00738 "X X XXX X", 00739 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00740 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX X", 00741 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00742 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00743 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00744 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00745 "X X", 00746 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00747 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00748 "X X", 00749 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00750 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00751 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00752 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00753 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00754 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00755 "X X XXX X", 00756 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00757 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00758 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00759 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00760 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00761 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00762 "X X", 00763 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",*/ 00764 /*"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00765 "X X", 00766 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00767 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00768 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00769 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00770 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXX X", 00771 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXX X", 00772 "X X XXX XXXXX X", 00773 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXX X", 00774 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXX X", 00775 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X", 00776 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00777 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00778 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00779 "X X", 00780 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00781 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00782 "X X", 00783 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00784 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00785 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00786 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXX X", 00787 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXX X", 00788 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXX X", 00789 "X X XXXXXX XXXXX X", 00790 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXX X", 00791 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXX X", 00792 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX X", 00793 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 00794 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00795 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00796 "X X", 00797 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00798 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00799 "X X", 00800 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00801 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00802 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00803 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00804 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXX X", 00805 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXX X", 00806 "X X XXXXX XXXXX X", 00807 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXX X", 00808 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXX X", 00809 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00810 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00811 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00812 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00813 "X X", 00814 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00815 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00816 "X X", 00817 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00818 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00819 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00820 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00821 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXX X", 00822 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXX X", 00823 "X X XXXXXXX XXXXX X", 00824 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXX X", 00825 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXX X", 00826 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX X", 00827 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00828 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00829 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00830 "X X", 00831 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00832 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00833 "X X", 00834 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00835 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00836 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00837 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX X", 00838 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX X", 00839 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXX X", 00840 "X X XXXX XXXXX X", 00841 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXX X", 00842 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXX X", 00843 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX X", 00844 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X", 00845 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00846 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00847 "X X", 00848 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00849 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00850 "X X", 00851 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00852 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00853 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00854 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00855 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXX X", 00856 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXX X", 00857 "X X XXXX XXX X", 00858 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXX X", 00859 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXX X", 00860 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00861 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00862 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00863 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00864 "X X", 00865 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00866 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00867 "X X", 00868 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00869 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00870 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00871 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00872 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXX X", 00873 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXX X", 00874 "X X XXXXX XXX X", 00875 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXX X", 00876 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXX X", 00877 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX X", 00878 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00879 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00880 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00881 "X X", 00882 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00883 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00884 "X X", 00885 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00886 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00887 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00888 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXX X", 00889 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXX X", 00890 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXX X", 00891 "X X XXXXX X", 00892 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXX X", 00893 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXX X", 00894 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXX X", 00895 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00896 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00897 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00898 "X X", 00899 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00900 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00901 "X X", 00902 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00903 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00904 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00905 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXXXXXXXXX X", 00906 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXXXXXXXXX X", 00907 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXXXXXXXXX X", 00908 "X X XXXXX X", 00909 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXXXXXXXXX X", 00910 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXXXXXXXXX X", 00911 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXXXXXXXXX X", 00912 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00913 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00914 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00915 "X X", 00916 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00917 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00918 "X X", 00919 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00920 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00921 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00922 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXX X", 00923 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXX XXXXXXXX X", 00924 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXX X", 00925 "X X XXXXX XXXXX X", 00926 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXX X", 00927 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXX XXXXXXXX X", 00928 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXX X", 00929 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 00930 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00931 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00932 "X X", 00933 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00934 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00935 "X X", 00936 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00937 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00938 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00939 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXX X", 00940 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXX XXXXXXXX X", 00941 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XX XXXXXXXX X", 00942 "X X XXXXX XXXXX X", 00943 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XX XXXXXXXX X", 00944 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXX XXXXXXXX X", 00945 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXX X", 00946 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00947 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00948 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00949 "X X", 00950 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00951 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00952 "X X", 00953 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00954 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00955 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00956 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXX X", 00957 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXX XXXXXX X", 00958 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXX XXXXX X", 00959 "X X XXXXX XXXXX X", 00960 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXX XXXXX X", 00961 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXX XXXXXX X", 00962 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXX X", 00963 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00964 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00965 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00966 "X X", 00967 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00968 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00969 "X X", 00970 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00971 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00972 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00973 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXX XXXXXXX X", 00974 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXX XXX XXXXXX X", 00975 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXX XXXXX XXXXX X", 00976 "X X XXXXX XXXXX X", 00977 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXX XXXXX XXXXX X", 00978 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXX XXX XXXXXX X", 00979 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXX XXXXXXX X", 00980 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00981 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00982 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00983 "X X", 00984 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00985 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 00986 "X X", 00987 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00988 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00989 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00990 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXX XXXXXXX X", 00991 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXX XXX XXXXXX X", 00992 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXX XXXXX XXXXX X", 00993 "X X XXXXX XXXXX X", 00994 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXX XXXXX XXXXX X", 00995 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXX XXX XXXXXX X", 00996 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXX XXXXXXX X", 00997 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00998 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 00999 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01000 "X X", 01001 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01002 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01003 "X X", 01004 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01005 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01006 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX X", 01007 "X XXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXX XXXXXXX X", 01008 "X XXXXXXXXXXXXXXXXXXXX XXXXXXX XXXX XXX XXXXXX X", 01009 "X XXXXXXXXXXXXXXXXXX XXXXXXXXXXX X XXXXX XXXXX X", 01010 "X X XXXXXXXXXXXXXXX XXXXX XXXXX X", 01011 "X XXXXXXXXXXXXXXXXXX XXXXXXXXXXX X XXXXX XXXXX X", 01012 "X XXXXXXXXXXXXXXXXXXXX XXXXXXX XXXX XXX XXXXXX X", 01013 "X XXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXX XXXXXXX X", 01014 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX X", 01015 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01016 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01017 "X X", 01018 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01019 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01020 "X X", 01021 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01022 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01023 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01024 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXX X", 01025 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXX X", 01026 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXX X", 01027 "X X XXXXX X", 01028 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXX X", 01029 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXX X", 01030 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXX X", 01031 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01032 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01033 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01034 "X X", 01035 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01036 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01037 "X X", 01038 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01039 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01040 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01041 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXX XXXXXXX X", 01042 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXX XXXXXX X", 01043 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXX XXXXX X", 01044 "X X XXXXX X", 01045 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXX XXXXX X", 01046 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXX XXXXXX X", 01047 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXX XXXXXXX X", 01048 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01049 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01050 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01051 "X X", 01052 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01053 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01054 "X X", 01055 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01056 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01057 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01058 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXX XXXXXXX X", 01059 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXX XXXXXX X", 01060 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXX XXXXX X", 01061 "X X XXXXX X", 01062 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXX XXXXX X", 01063 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXX XXXXXX X", 01064 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXX XXXXXXX X", 01065 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01066 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01067 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01068 "X X", 01069 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01070 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01071 "X X", 01072 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01073 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01074 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX X", 01075 "X XXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXX XXXXXXX X", 01076 "X XXXXXXXXXXXXXXXXXXXX XXXXXXX XXXX XXXXXX X", 01077 "X XXXXXXXXXXXXXXXXXX XXXXXXXXXXX X XXXXX X", 01078 "X X XXXXXXXXXXXXXXX XXXXX X", 01079 "X XXXXXXXXXXXXXXXXXX XXXXXXXXXXX X XXXXX X", 01080 "X XXXXXXXXXXXXXXXXXXXX XXXXXXX XXXX XXXXXX X", 01081 "X XXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXX XXXXXXX X", 01082 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX X", 01083 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01084 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01085 "X X", 01086 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01087 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01088 "X X", 01089 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01090 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01091 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXX X", 01092 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXX X", 01093 "X XXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXX X", 01094 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 01095 "X X XXXXX X", 01096 "X XXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXX X", 01097 "X XXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXX X", 01098 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXX X", 01099 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXX X", 01100 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01101 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01102 "X X", 01103 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01104 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01105 "X X", 01106 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01107 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01108 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01109 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXX XXXXXXX X", 01110 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXX XXXXXX X", 01111 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXX XXXXX X", 01112 "X X XXXXX X", 01113 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXX XXXXX X", 01114 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXX XXXXXX X", 01115 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXX XXXXXXX X", 01116 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01117 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01118 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01119 "X X", 01120 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01121 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01122 "X X", 01123 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01124 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01125 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01126 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXX XXXXXXX X", 01127 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXX XXXXXX X", 01128 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXX XXXXX X", 01129 "X X XXXXX X", 01130 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXX XXXXX X", 01131 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXX XXXXXX X", 01132 "X XXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXX XXXXXXX X", 01133 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01134 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01135 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01136 "X X", 01137 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01138 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01139 "X X", 01140 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01141 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01142 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX X", 01143 "X XXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXX XXXXXXX X", 01144 "X XXXXXXXXXXXXXXXXXXXX XXXXXXX XXXX XXXXXX X", 01145 "X XXXXXXXXXXXXXXXXXX XXXXXXXXXXX X XXXXX X", 01146 "X X XXXXXXXXXXXXXXX XXXXX X", 01147 "X XXXXXXXXXXXXXXXXXX XXXXXXXXXXX X XXXXX X", 01148 "X XXXXXXXXXXXXXXXXXXXX XXXXXXX XXXX XXXXXX X", 01149 "X XXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXX XXXXXXX X", 01150 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX X", 01151 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01152 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01153 "X X", 01154 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01155 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01156 "X X", 01157 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01158 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01159 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01160 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 01161 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXX X", 01162 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXX X", 01163 "X X XXXXX XXXXX X", 01164 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXX X", 01165 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXX X", 01166 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 01167 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01168 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01169 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01170 "X X", 01171 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01172 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01173 "X X", 01174 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01175 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01176 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01177 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 01178 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 01179 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 01180 "X X XXXXX X", 01181 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX X", 01182 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X", 01183 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX X", 01184 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01185 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01186 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01187 "X X", 01188 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01189 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01190 "X X", 01191 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01192 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01193 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXX X", 01194 "X XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXX X", 01195 "X XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXX X", 01196 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXX X", 01197 "X X XXXXX X", 01198 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXX X", 01199 "X XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXX X", 01200 "X XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXX X", 01201 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXX X", 01202 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01203 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01204 "X X", 01205 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01206 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01207 "X X", 01208 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01209 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01210 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 01211 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXX X", 01212 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXX X", 01213 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXX X", 01214 "X X XXXXX X", 01215 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXX X", 01216 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXX X", 01217 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXX X", 01218 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X", 01219 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01220 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01221 "X X", 01222 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01223 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 01224 "X X", 01225 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01226 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01227 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXX X", 01228 "X XXXXXXXXXXXXXXXXXXXXXX XX XXXXXX XXXXXXXXXXX X", 01229 "X XXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXX XXXXXXXXX X", 01230 "X XXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXX XXXXXXX X", 01231 "X X XXXXX X", 01232 "X XXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXX XXXXXXX X", 01233 "X XXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXX XXXXXXXXX X", 01234 "X XXXXXXXXXXXXXXXXXXXXXX XX XXXXXX XXXXXXXXXXX X", 01235 "X XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXX X", 01236 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01237 "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X", 01238 "X X", 01239 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"*/ 01240 }; 01241 01242 return QPixmap(lineends); 01243 } 01244 01245 QPixmap Kivio::connectorTargetPixmap() 01246 { 01247 const char * connectorTarget_xpm[] = { 01248 "7 7 3 1", 01249 " c None", 01250 ". c #FFFFFF", 01251 "+ c #051EFF", 01252 " . . ", 01253 ".+. .+.", 01254 " .+.+. ", 01255 " .+. ", 01256 " .+.+. ", 01257 ".+. .+.", 01258 " . . "}; 01259 01260 return QPixmap(connectorTarget_xpm); 01261 } 01262 01263 QPixmap Kivio::lockPixmap() 01264 { 01265 const char * lock_xpm[] = { 01266 "10 10 3 1", 01267 " c None", 01268 ". c #FFFFFF", 01269 "+ c #000000", 01270 " .. ", 01271 " .++. ", 01272 " .+..+. ", 01273 " .+..+. ", 01274 " .++++++. ", 01275 " .+....+. ", 01276 " .+. .+. ", 01277 " .+....+. ", 01278 " .++++++. ", 01279 " ...... "}; 01280 01281 return QPixmap(lock_xpm); 01282 } 01283 01284 QString Kivio::systemDefaultUnit() 01285 { 01286 QString defMS = "cm"; 01287 01288 if(KGlobal::locale()->measureSystem() == KLocale::Imperial) { 01289 defMS = "in"; 01290 } 01291 01292 return defMS; 01293 } 01294 01295 QPixmap Kivio::generatePixmapFromStencil(int width, int height, KivioStencil* stencil) 01296 { 01297 KoZoomHandler zoomHandler; 01298 QRect rect = zoomHandler.zoomRect(stencil->rect()); 01299 01300 double zw = (double)(width - 2) / (double)rect.width(); 01301 double zh = (double)(height - 2) / (double)rect.height(); 01302 zoomHandler.setZoomAndResolution(qRound(kMin(zw, zh) * 100.0), KoGlobal::dpiX(), KoGlobal::dpiY()); 01303 rect = zoomHandler.zoomRect(stencil->rect()); 01304 01305 QPixmap pix(width, height); 01306 pix.fill(Qt::white); 01307 KivioScreenPainter kpainter; 01308 kpainter.start(&pix); 01309 kpainter.translateBy(-rect.x() + ((width - rect.width()) / 2), -rect.y() + ((height - rect.height()) / 2)); 01310 KivioIntraStencilData data; 01311 data.painter = &kpainter; 01312 data.zoomHandler = &zoomHandler; 01313 stencil->paint(&data); 01314 kpainter.stop(); 01315 01316 return pix; 01317 }