From 1a6e58fbbefc352ed62048d75293495dc12c01a8 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 23 Jul 2019 15:53:17 -0700 Subject: [PATCH 01/60] add "setup number formatting" menu to table; update version --- rc/GdaAppResources.cpp | 237 +++++++++++++++++++++-------------------- rc/menus.xrc | 3 + version.h | 10 +- 3 files changed, 129 insertions(+), 121 deletions(-) diff --git a/rc/GdaAppResources.cpp b/rc/GdaAppResources.cpp index 24e7fc4ae..f39259b02 100644 --- a/rc/GdaAppResources.cpp +++ b/rc/GdaAppResources.cpp @@ -37928,7 +37928,7 @@ static unsigned char xml_res_file_11[] = { 47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62, 10}; -static size_t xml_res_size_12 = 194281; +static size_t xml_res_size_12 = 194399; static unsigned char xml_res_file_12[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,73,83,79,45,56,56,53,57,45,49,53,34,63, @@ -45855,127 +45855,132 @@ static unsigned char xml_res_file_12[] = { 57,45,49,53,41,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,60, 99,104,101,99,107,97,98,108,101,62,49,60,47,99,104,101,99,107,97,98,108, 101,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,108,97,98,101,108,62, -84,97,98,108,101,60,47,108,97,98,101,108,62,10,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,77,101,110,117,34,32,110,97,109,101,61,34,73,68,95,82,69,80,79, -82,84,95,86,73,69,87,95,77,69,78,85,95,67,79,78,84,69,88,84,34,62,10,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77, -101,110,117,73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,70,79,78, -84,34,62,10,32,32,32,32,32,32,60,108,97,98,101,108,62,67,104,97,110,103, -101,32,70,111,110,116,60,47,108,97,98,101,108,62,10,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,60,108,97,98,101,108,62,79,112,116, -105,111,110,115,60,47,108,97,98,101,108,62,10,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,77,101,110,117,34,32,110,97,109,101,61,34,73,68,95,84,69,83,84, -77,65,80,95,86,73,69,87,95,77,69,78,85,95,67,79,78,84,69,88,84,34,62,10, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,77,101,110,117,73,116,101,109,34,32, +110,97,109,101,61,34,73,68,95,84,65,66,76,69,95,83,69,84,95,76,79,67,65, +76,69,34,62,10,32,32,32,32,32,32,60,108,97,98,101,108,62,83,101,116,117, +112,32,78,117,109,98,101,114,32,70,111,114,109,97,116,116,105,110,103,60, +47,108,97,98,101,108,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,60,108,97,98,101,108,62,84,97,98,108,101,60,47,108,97,98,101, +108,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,77,101,110,117,34,32,110,97,109, +101,61,34,73,68,95,82,69,80,79,82,84,95,86,73,69,87,95,77,69,78,85,95,67, +79,78,84,69,88,84,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,77,101,110,117,73,116,101,109,34,32,110,97,109, +101,61,34,73,68,95,70,79,78,84,34,62,10,32,32,32,32,32,32,60,108,97,98, +101,108,62,67,104,97,110,103,101,32,70,111,110,116,60,47,108,97,98,101, +108,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60, +108,97,98,101,108,62,79,112,116,105,111,110,115,60,47,108,97,98,101,108, +62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,77,101,110,117,34,32,110,97,109, +101,61,34,73,68,95,84,69,83,84,77,65,80,95,86,73,69,87,95,77,69,78,85,95, +67,79,78,84,69,88,84,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,77,101,110,117,34,32,110,97,109,101,61,34, +73,68,95,77,69,78,85,34,62,10,32,32,32,32,32,32,60,108,97,98,101,108,62, +83,101,108,101,99,116,105,111,110,32,83,104,97,112,101,60,47,108,97,98, +101,108,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,77,101,110,117,73,116,101,109,34,32,110,97,109,101,61, +34,73,68,95,83,69,76,69,67,84,95,87,73,84,72,95,82,69,67,84,34,62,10,32, +32,32,32,32,32,32,32,60,108,97,98,101,108,62,82,101,99,116,97,110,103,108, +101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,60,99,104,101, +99,107,97,98,108,101,62,49,60,47,99,104,101,99,107,97,98,108,101,62,10, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110,117, +73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,83,69,76,69,67,84,95, +87,73,84,72,95,67,73,82,67,76,69,34,62,10,32,32,32,32,32,32,32,32,60,108, +97,98,101,108,62,67,105,114,99,108,101,60,47,108,97,98,101,108,62,10,32, +32,32,32,32,32,32,32,60,99,104,101,99,107,97,98,108,101,62,49,60,47,99, +104,101,99,107,97,98,108,101,62,10,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,77,101,110,117,73,116,101,109,34,32,110,97,109,101,61, +34,73,68,95,83,69,76,69,67,84,95,87,73,84,72,95,76,73,78,69,34,62,10,32, +32,32,32,32,32,32,32,60,108,97,98,101,108,62,76,105,110,101,60,47,108,97, +98,101,108,62,10,32,32,32,32,32,32,32,32,60,99,104,101,99,107,97,98,108, +101,62,49,60,47,99,104,101,99,107,97,98,108,101,62,10,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,77,101,110,117,34,32,110,97,109,101,61,34,73,68,95,77,69,78,85,34,62, +10,32,32,32,32,32,32,60,108,97,98,101,108,62,67,111,108,111,114,60,47,108, +97,98,101,108,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,77,101,110,117,73,116,101,109,34,32,110,97,109, +101,61,34,73,68,95,83,69,76,69,67,84,65,66,76,69,95,79,85,84,76,73,78,69, +95,86,73,83,73,66,76,69,34,62,10,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,79,117,116,108,105,110,101,115,32,86,105,115,105,98,108,101,60,47, +108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,60,99,104,101,99,107,97, +98,108,101,62,49,60,47,99,104,101,99,107,97,98,108,101,62,10,32,32,32,32, +32,32,32,32,60,99,104,101,99,107,101,100,62,49,60,47,99,104,101,99,107, +101,100,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, 32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -77,101,110,117,34,32,110,97,109,101,61,34,73,68,95,77,69,78,85,34,62,10, -32,32,32,32,32,32,60,108,97,98,101,108,62,83,101,108,101,99,116,105,111, -110,32,83,104,97,112,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110, -117,73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,83,69,76,69,67,84, -95,87,73,84,72,95,82,69,67,84,34,62,10,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,82,101,99,116,97,110,103,108,101,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,60,99,104,101,99,107,97,98,108,101,62,49, -60,47,99,104,101,99,107,97,98,108,101,62,10,32,32,32,32,32,32,60,47,111, +77,101,110,117,73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,77,65, +80,95,83,72,79,87,95,77,65,80,95,67,79,78,84,79,85,82,34,62,10,32,32,32, +32,32,32,32,32,60,108,97,98,101,108,62,83,104,111,119,32,77,97,112,32,66, +111,117,110,100,97,114,121,60,47,108,97,98,101,108,62,10,32,32,32,32,32, +32,32,32,60,99,104,101,99,107,97,98,108,101,62,49,60,47,99,104,101,99,107, +97,98,108,101,62,10,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100, +62,48,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,60,47,111, 98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, 108,97,115,115,61,34,119,120,77,101,110,117,73,116,101,109,34,32,110,97, -109,101,61,34,73,68,95,83,69,76,69,67,84,95,87,73,84,72,95,67,73,82,67, -76,69,34,62,10,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,105,114, -99,108,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,60,99, -104,101,99,107,97,98,108,101,62,49,60,47,99,104,101,99,107,97,98,108,101, -62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110, -117,73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,83,69,76,69,67,84, -95,87,73,84,72,95,76,73,78,69,34,62,10,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,76,105,110,101,60,47,108,97,98,101,108,62,10,32,32,32,32, -32,32,32,32,60,99,104,101,99,107,97,98,108,101,62,49,60,47,99,104,101,99, -107,97,98,108,101,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110,117,34,32, -110,97,109,101,61,34,73,68,95,77,69,78,85,34,62,10,32,32,32,32,32,32,60, -108,97,98,101,108,62,67,111,108,111,114,60,47,108,97,98,101,108,62,10,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,77,101,110,117,73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,83, -69,76,69,67,84,65,66,76,69,95,79,85,84,76,73,78,69,95,86,73,83,73,66,76, -69,34,62,10,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,79,117,116, -108,105,110,101,115,32,86,105,115,105,98,108,101,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,60,99,104,101,99,107,97,98,108,101,62,49, -60,47,99,104,101,99,107,97,98,108,101,62,10,32,32,32,32,32,32,32,32,60, -99,104,101,99,107,101,100,62,49,60,47,99,104,101,99,107,101,100,62,10,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110,117,73, -116,101,109,34,32,110,97,109,101,61,34,73,68,95,77,65,80,95,83,72,79,87, -95,77,65,80,95,67,79,78,84,79,85,82,34,62,10,32,32,32,32,32,32,32,32,60, -108,97,98,101,108,62,83,104,111,119,32,77,97,112,32,66,111,117,110,100, -97,114,121,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,60,99, -104,101,99,107,97,98,108,101,62,49,60,47,99,104,101,99,107,97,98,108,101, -62,10,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,48,60,47, -99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,60,47,111,98,106,101, +109,101,61,34,73,68,95,83,69,76,69,67,84,65,66,76,69,95,70,73,76,76,95, +67,79,76,79,82,34,62,10,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, +83,101,108,101,99,116,97,98,108,101,32,70,105,108,108,32,67,111,108,111, +114,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,60,47,111,98,106,101, 99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, 115,61,34,119,120,77,101,110,117,73,116,101,109,34,32,110,97,109,101,61, -34,73,68,95,83,69,76,69,67,84,65,66,76,69,95,70,73,76,76,95,67,79,76,79, -82,34,62,10,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,101,108, -101,99,116,97,98,108,101,32,70,105,108,108,32,67,111,108,111,114,60,47, -108,97,98,101,108,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,77,101,110,117,73,116,101,109,34,32,110,97,109,101,61,34,73,68, -95,67,65,78,86,65,83,95,66,65,67,75,71,82,79,85,78,68,95,67,79,76,79,82, -34,62,10,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,66,97,99,107,103, -114,111,117,110,100,32,67,111,108,111,114,60,47,108,97,98,101,108,62,10, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,77,101,110,117,73,116,101,109,34,32,110,97,109, -101,61,34,73,68,95,68,73,83,80,76,65,89,95,83,84,65,84,85,83,95,66,65,82, -34,62,10,32,32,32,32,32,32,60,108,97,98,101,108,62,83,104,111,119,32,83, -116,97,116,117,115,32,66,97,114,60,47,108,97,98,101,108,62,10,32,32,32, -32,32,32,60,99,104,101,99,107,97,98,108,101,62,49,60,47,99,104,101,99,107, -97,98,108,101,62,10,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,49, -60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,60,47,111,98,106,101, +34,73,68,95,67,65,78,86,65,83,95,66,65,67,75,71,82,79,85,78,68,95,67,79, +76,79,82,34,62,10,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,66,97, +99,107,103,114,111,117,110,100,32,67,111,108,111,114,60,47,108,97,98,101, +108,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,77,101,110,117,73,116,101,109,34,32, +110,97,109,101,61,34,73,68,95,68,73,83,80,76,65,89,95,83,84,65,84,85,83, +95,66,65,82,34,62,10,32,32,32,32,32,32,60,108,97,98,101,108,62,83,104,111, +119,32,83,116,97,116,117,115,32,66,97,114,60,47,108,97,98,101,108,62,10, +32,32,32,32,32,32,60,99,104,101,99,107,97,98,108,101,62,49,60,47,99,104, +101,99,107,97,98,108,101,62,10,32,32,32,32,32,32,60,99,104,101,99,107,101, +100,62,49,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110, +117,73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,83,65,86,69,95,83, +69,76,69,67,84,69,68,95,84,79,95,67,79,76,85,77,78,34,62,10,32,32,32,32, +32,32,60,108,97,98,101,108,62,83,97,118,101,32,83,101,108,101,99,116,105, +111,110,60,47,108,97,98,101,108,62,10,32,32,32,32,60,47,111,98,106,101, 99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110,117,73, -116,101,109,34,32,110,97,109,101,61,34,73,68,95,83,65,86,69,95,83,69,76, -69,67,84,69,68,95,84,79,95,67,79,76,85,77,78,34,62,10,32,32,32,32,32,32, -60,108,97,98,101,108,62,83,97,118,101,32,83,101,108,101,99,116,105,111, -110,60,47,108,97,98,101,108,62,10,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,77,101,110,117,73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,67, -79,80,89,95,73,77,65,71,69,95,84,79,95,67,76,73,80,66,79,65,82,68,34,62, -10,32,32,32,32,32,32,60,108,97,98,101,108,62,67,111,112,121,32,73,109,97, -103,101,32,84,111,32,67,108,105,112,98,111,97,114,100,60,47,108,97,98,101, -108,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110,117, -73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,83,65,86,69,95,67,65, -78,86,65,83,95,73,77,65,71,69,95,65,83,34,62,10,32,32,32,32,32,32,60,108, -97,98,101,108,62,83,97,118,101,32,73,109,97,103,101,32,65,115,60,47,108, -97,98,101,108,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,60,108,97,98,101,108,62,79,112,116,105,111,110,115,60,47,108,97,98, -101,108,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110,117,34,32,110, -97,109,101,61,34,73,68,95,84,69,83,84,95,84,65,66,76,69,95,86,73,69,87, -95,77,69,78,85,95,67,79,78,84,69,88,84,34,62,10,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110,117,34,32,110, -97,109,101,61,34,73,68,95,77,69,78,85,34,62,10,32,32,32,32,32,32,60,108, -97,98,101,108,62,67,111,108,111,114,60,47,108,97,98,101,108,62,10,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -77,101,110,117,73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,83,69, -76,69,67,84,65,66,76,69,95,79,85,84,76,73,78,69,95,86,73,83,73,66,76,69, -34,62,10,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,79,117,116,108, -105,110,101,115,32,86,105,115,105,98,108,101,60,47,108,97,98,101,108,62, -10,32,32,32,32,32,32,32,32,60,99,104,101,99,107,97,98,108,101,62,49,60, -47,99,104,101,99,107,97,98,108,101,62,10,32,32,32,32,32,32,32,32,60,99, -104,101,99,107,101,100,62,49,60,47,99,104,101,99,107,101,100,62,10,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110,117,73, -116,101,109,34,32,110,97,109,101,61,34,73,68,95,77,65,80,95,83,72,79,87, -95,77,65,80,95,67,79,78,84,79,85,82,34,62,10,32,32,32,32,32,32,32,32,60, -108,97,98,101,108,62,83,104,111,119,32,77,97,112,32,66,111,117,110,100, -97,114,121,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,60,99, -104,101,99,107,97,98,108,101,62,49,60,47,99,104,101,99,107,97,98,108,101, -62,10,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,48,60,47, -99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,60,47,111,98,106,101, +61,34,119,120,77,101,110,117,73,116,101,109,34,32,110,97,109,101,61,34, +73,68,95,67,79,80,89,95,73,77,65,71,69,95,84,79,95,67,76,73,80,66,79,65, +82,68,34,62,10,32,32,32,32,32,32,60,108,97,98,101,108,62,67,111,112,121, +32,73,109,97,103,101,32,84,111,32,67,108,105,112,98,111,97,114,100,60,47, +108,97,98,101,108,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77, +101,110,117,73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,83,65,86, +69,95,67,65,78,86,65,83,95,73,77,65,71,69,95,65,83,34,62,10,32,32,32,32, +32,32,60,108,97,98,101,108,62,83,97,118,101,32,73,109,97,103,101,32,65, +115,60,47,108,97,98,101,108,62,10,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,60,108,97,98,101,108,62,79,112,116,105,111,110,115,60, +47,108,97,98,101,108,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110, +117,34,32,110,97,109,101,61,34,73,68,95,84,69,83,84,95,84,65,66,76,69,95, +86,73,69,87,95,77,69,78,85,95,67,79,78,84,69,88,84,34,62,10,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110, +117,34,32,110,97,109,101,61,34,73,68,95,77,69,78,85,34,62,10,32,32,32,32, +32,32,60,108,97,98,101,108,62,67,111,108,111,114,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,77,101,110,117,73,116,101,109,34,32,110,97,109,101,61,34,73, +68,95,83,69,76,69,67,84,65,66,76,69,95,79,85,84,76,73,78,69,95,86,73,83, +73,66,76,69,34,62,10,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,79, +117,116,108,105,110,101,115,32,86,105,115,105,98,108,101,60,47,108,97,98, +101,108,62,10,32,32,32,32,32,32,32,32,60,99,104,101,99,107,97,98,108,101, +62,49,60,47,99,104,101,99,107,97,98,108,101,62,10,32,32,32,32,32,32,32, +32,60,99,104,101,99,107,101,100,62,49,60,47,99,104,101,99,107,101,100,62, +10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,77,101,110, +117,73,116,101,109,34,32,110,97,109,101,61,34,73,68,95,77,65,80,95,83,72, +79,87,95,77,65,80,95,67,79,78,84,79,85,82,34,62,10,32,32,32,32,32,32,32, +32,60,108,97,98,101,108,62,83,104,111,119,32,77,97,112,32,66,111,117,110, +100,97,114,121,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,60, +99,104,101,99,107,97,98,108,101,62,49,60,47,99,104,101,99,107,97,98,108, +101,62,10,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,48,60, +47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,60,47,111,98,106,101, 99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, 115,61,34,119,120,77,101,110,117,73,116,101,109,34,32,110,97,109,101,61, 34,73,68,95,83,69,76,69,67,84,65,66,76,69,95,70,73,76,76,95,67,79,76,79, diff --git a/rc/menus.xrc b/rc/menus.xrc index cd658fbf2..786af3ab9 100644 --- a/rc/menus.xrc +++ b/rc/menus.xrc @@ -4696,6 +4696,9 @@ 1 + + + diff --git a/version.h b/version.h index 5876feecf..7010ac926 100644 --- a/version.h +++ b/version.h @@ -1,11 +1,11 @@ namespace Gda { const int version_major = 1; - const int version_minor = 12; - const int version_build = 1; - const int version_subbuild = 241; + const int version_minor = 14; + const int version_build = 0; + const int version_subbuild = 0; const int version_year = 2019; - const int version_month = 6; - const int version_day = 17; + const int version_month = 7; + const int version_day = 23; const int version_night = 0; const int version_type = 2; // 0: alpha, 1: beta, 2: release } From 8e87e0c9ff55805a0bc6256442e52a65792efaaa Mon Sep 17 00:00:00 2001 From: Xun Li Date: Thu, 25 Jul 2019 11:02:19 -0700 Subject: [PATCH 02/60] update to use new HERE app id --- BuildTools/CommonDistFiles/cache.sqlite | Bin 5120 -> 5120 bytes DialogTools/BasemapConfDlg.cpp | 10 +++------- Explore/Basemap.cpp | 5 +---- internationalization/pofiles/es.po | 4 ++-- internationalization/pofiles/jp.po | 6 +++--- internationalization/pofiles/pt_BR.po | 4 ++-- internationalization/pofiles/zh_CN.po | 4 ++-- rc/dialogs.xrc | 4 ++-- 8 files changed, 15 insertions(+), 22 deletions(-) diff --git a/BuildTools/CommonDistFiles/cache.sqlite b/BuildTools/CommonDistFiles/cache.sqlite index 8032c13fe72978ac372b40b3e928c5afb124cee9..4658ea784de48b2d21e819f49da5ab77a3d7ed22 100644 GIT binary patch delta 164 zcmZqBXwaA-Ey%&Zz`zQ`Fu*cV$5@nuLHFYhUS<{s7RK`o%sfmAOh*~dZx&>UX54(4 z(Snf`q={iO5AzQm9v0?e2IddUyO^gl7Xwu!GrKFXFw0x!;?cq Cr7D>K delta 84 zcmZqBXwaA-Ey%{ez`zQ`Fu*)f$5@n&LHFYhUSUXWV?A g(SnhYWit=+4;~IC=3NZTADDLmW!5oI-X-h?0B3m;1poj5 diff --git a/DialogTools/BasemapConfDlg.cpp b/DialogTools/BasemapConfDlg.cpp index d78ae078e..18e77535a 100644 --- a/DialogTools/BasemapConfDlg.cpp +++ b/DialogTools/BasemapConfDlg.cpp @@ -92,13 +92,9 @@ void BasemapConfDlg::OnOkClick( wxCommandEvent& event ) void BasemapConfDlg::OnResetClick( wxCommandEvent& event ) { wxLogMessage("BasemapConfDlg: Click Reset Button."); - - wxString nokia_uname = "oRnRceLPyM8OFQQA5LYH"; - wxString nokia_key = "uEt3wtyghaTfPdDHdOsEGQ"; - - OGRDataAdapter::GetInstance().AddEntry("nokia_user", nokia_uname); - OGRDataAdapter::GetInstance().AddEntry("nokia_key", nokia_key); - OGRDataAdapter::GetInstance().AddEntry("gda_basemap_sources", basemap_resources); + + m_txt_basemap->SetValue(GdaConst::gda_basemap_sources); + OGRDataAdapter::GetInstance().AddEntry("gda_basemap_sources", GdaConst::gda_basemap_sources); EndDialog(wxID_OK); } diff --git a/Explore/Basemap.cpp b/Explore/Basemap.cpp index 1d908967a..bc5e64f7e 100644 --- a/Explore/Basemap.cpp +++ b/Explore/Basemap.cpp @@ -176,9 +176,6 @@ Basemap::Basemap(BasemapItem& _basemap_item, isTileReady = false; isTileDrawn = false; - nokia_id = "oRnRceLPyM8OFQQA5LYH"; - nokia_code = "uEt3wtyghaTfPdDHdOsEGQ"; - wxInitAllImageHandlers(); GetEasyZoomLevel(); @@ -246,7 +243,7 @@ void Basemap::SetupMapType(BasemapItem& _basemap_item) // basemapUrl.Replace("@2x", ""); // } - // get a latest CartoDB account + // get a latest HERE account vector nokia_user = OGRDataAdapter::GetInstance().GetHistory("nokia_user"); if (!nokia_user.empty()) { wxString user = nokia_user[0]; diff --git a/internationalization/pofiles/es.po b/internationalization/pofiles/es.po index 4b4a96743..922162093 100644 --- a/internationalization/pofiles/es.po +++ b/internationalization/pofiles/es.po @@ -2219,8 +2219,8 @@ msgid "Get a free GeoDa-Web account: " msgstr "Obtener una cuenta de GeoDa-Web gratis" #contributors: -msgid "Get a free Nokia/HERE account: " -msgstr "Obtener una cuenta gratis de Nokia/HERE" +msgid "Get a free HERE account: " +msgstr "Obtener una cuenta gratis de HERE" #contributors: msgid "Getis-Ord" diff --git a/internationalization/pofiles/jp.po b/internationalization/pofiles/jp.po index f78988ea3..9144ab526 100644 --- a/internationalization/pofiles/jp.po +++ b/internationalization/pofiles/jp.po @@ -277,7 +277,7 @@ msgstr "" msgid "Min" msgstr "" -msgid "Nokia/HERE App ID" +msgid "HERE App ID" msgstr "" msgid "Number of Rows" @@ -1591,7 +1591,7 @@ msgstr "" msgid "What windows to open?" msgstr "" -msgid "Get a free Nokia/HERE account: " +msgid "Get a free HERE account: " msgstr "" msgid "&Merge" @@ -1639,7 +1639,7 @@ msgstr "" msgid "Normal" msgstr "" -msgid "Nokia/HERE App Key" +msgid "HERE App Key" msgstr "" msgid "1 Iteration" diff --git a/internationalization/pofiles/pt_BR.po b/internationalization/pofiles/pt_BR.po index f78988ea3..f97523c46 100644 --- a/internationalization/pofiles/pt_BR.po +++ b/internationalization/pofiles/pt_BR.po @@ -1591,7 +1591,7 @@ msgstr "" msgid "What windows to open?" msgstr "" -msgid "Get a free Nokia/HERE account: " +msgid "Get a free HERE account: " msgstr "" msgid "&Merge" @@ -1639,7 +1639,7 @@ msgstr "" msgid "Normal" msgstr "" -msgid "Nokia/HERE App Key" +msgid "HERE App Key" msgstr "" msgid "1 Iteration" diff --git a/internationalization/pofiles/zh_CN.po b/internationalization/pofiles/zh_CN.po index a53a1aed1..74985b567 100644 --- a/internationalization/pofiles/zh_CN.po +++ b/internationalization/pofiles/zh_CN.po @@ -2219,8 +2219,8 @@ msgid "Get a free GeoDa-Web account: " msgstr "获得免费的GeoDa-Web帐户: " #contributors: -msgid "Get a free Nokia/HERE account: " -msgstr "获得免费诺基亚/HERE地图帐户: " +msgid "Get a free HERE account: " +msgstr "获得免费HERE地图帐户: " #contributors: msgid "Getis-Ord" diff --git a/rc/dialogs.xrc b/rc/dialogs.xrc index de558342a..a15c595fe 100644 --- a/rc/dialogs.xrc +++ b/rc/dialogs.xrc @@ -9483,7 +9483,7 @@ - + @@ -9508,7 +9508,7 @@ - + wxHORIZONTAL From 1a931b14bd0cb2b524e97b2e8eec59bf7dc5268a Mon Sep 17 00:00:00 2001 From: Xun Li Date: Fri, 26 Jul 2019 15:40:04 -0700 Subject: [PATCH 03/60] custom category update and fix fix issues in basic mapping: 1. make sure custom breaks works when no active map window 2. custom breaks editor: make sure all combobox works when changing values 3. make sure the fixed natural breaks #1829 in custom category applies to all other maps --- DialogTools/CatClassifDlg.cpp | 290 ++++++++++++++++++----------- DialogTools/CatClassifDlg.h | 8 +- Explore/CatClassification.cpp | 337 ++++++++++++++++++++++------------ GeoDa.cpp | 9 +- 4 files changed, 410 insertions(+), 234 deletions(-) diff --git a/DialogTools/CatClassifDlg.cpp b/DialogTools/CatClassifDlg.cpp index 61f8fbe4d..bb1963be2 100644 --- a/DialogTools/CatClassifDlg.cpp +++ b/DialogTools/CatClassifDlg.cpp @@ -326,9 +326,11 @@ void CatClassifHistCanvas::GetBarPositions(std::vector& x_center_pos, st x_right = val_range==0 ? 0 : x_max * (ticks[i+1] - left) / val_range; if (x_left == x_right && ival_obs_cnt[i] > 0 && j>0) { - for (int k=j-1; k>=0; k--) - if (x_left_pos[k] != x_left) + for (int k=j-1; k>=0; k--) { + if (x_left_pos[k] != x_left) { x_left = x_left_pos[j]; + } + } } } x_left_pos[j] = x_left; @@ -370,16 +372,13 @@ void CatClassifHistCanvas::PopulateCanvas() double y_max = max_num_obs_in_ival; last_scale_trans.SetData(x_min, 0, x_max, max_num_obs_in_ival); - - - axis_scale_y = AxisScale(0, y_max, 5, axis_display_precision, + axis_scale_y = AxisScale(0, y_max, 5, axis_display_precision, axis_display_fixed_point); y_max = axis_scale_y.scale_max; y_axis = new GdaAxis(_("Frequency"), axis_scale_y, wxRealPoint(0,0), wxRealPoint(0, y_max), -9, 0); foreground_shps.push_back(y_axis); - selectable_shps.resize(cur_intervals); wxClientDC dc(this); @@ -459,46 +458,63 @@ void CatClassifHistCanvas::InitIntervals() ival_obs_cnt[0] = num_obs; ival_obs_sel_cnt[0] = highlight_state->GetTotalHighlighted(); } else { - int num_breaks = breaks->size(); - int num_breaks_lower = (num_breaks+1)/2; - - double val; - int ind; - + double val; + int ind; + int num_breaks = breaks->size(); + // get max, min values max_val = (*data)[0].first; min_val = (*data)[num_obs-1].first; - - for (int i=0; i max_val) - max_val = val; - if (val < min_val) - min_val = val; - - bool found = false; - int cat = num_breaks; // last cat by default - for (int j=0; j max_val) max_val = val; + if (val < min_val) min_val = val; + } + if (break_type == CatClassification::natural_breaks_break_vals) { + int cat = 0; + double brk_val = (*breaks)[0]; + for (int j=0; j= brk_val) { + cat += 1; + brk_val = (*breaks)[cat]; + } + // at this point we know that index ind belongs to category cat + ind = (*data)[j].second; + obs_id_to_ival[ind] = cat; + ival_to_obs_ids[cat].push_front(ind); + ival_obs_cnt[cat]++; + if (hs[ind]) ival_obs_sel_cnt[cat]++; + } + } else { + int num_breaks_lower = (num_breaks+1)/2; + for (int i=0; i* new_breaks, std::vector* new_colors) { data = new_data; + break_type = new_break_type; breaks = new_breaks; colors = new_colors; cur_intervals = breaks->size() + 1; @@ -591,31 +609,44 @@ void CatClassifHistCanvas::UpdateStatusBar() int ival = hover_obs[0]; wxString s; s << "bin: " << ival+1 << ", range: "; - if (cur_intervals <= 1) { - s << "(-inf, inf)"; - } else if (ival == 0) { - s << "(-inf, " << (*breaks)[ival] << ")"; - } else if (ival == cur_intervals-1 && cur_intervals != 2) { - s << "(" << (*breaks)[ival-1] << ", inf)"; - } else if (ival == cur_intervals-1 && cur_intervals == 2) { - s << "[" << (*breaks)[ival-1] << ", inf)"; - } else { - int num_breaks = cur_intervals-1; - int num_breaks_lower = (num_breaks+1)/2; - wxString a; - wxString b; - if (ival < num_breaks_lower) { - a = "["; - b = ")"; - } else if (ival == num_breaks_lower) { - a = "["; - b = "]"; - } else { - a = "("; - b = "]"; - } - s << a << (*breaks)[ival-1] << ", " << (*breaks)[ival] << b; - } + + if (break_type == CatClassification::natural_breaks_break_vals) { + if (cur_intervals <= 1) { + s << "(-inf, inf)"; + } else if (ival == 0) { + s << "(-inf, " << (*breaks)[ival] << ")"; + } else if (ival == cur_intervals-1) { + s << "[" << (*breaks)[ival-1] << ", inf)"; + } else { + s << "[" << (*breaks)[ival-1] << ", " << (*breaks)[ival] << ")"; + } + } else { + if (cur_intervals <= 1) { + s << "(-inf, inf)"; + } else if (ival == 0) { + s << "(-inf, " << (*breaks)[ival] << ")"; + } else if (ival == cur_intervals-1 && cur_intervals != 2) { + s << "(" << (*breaks)[ival-1] << ", inf)"; + } else if (ival == cur_intervals-1 && cur_intervals == 2) { + s << "[" << (*breaks)[ival-1] << ", inf)"; + } else { + int num_breaks = cur_intervals-1; + int num_breaks_lower = (num_breaks+1)/2; + wxString a; + wxString b; + if (ival < num_breaks_lower) { + a = "["; + b = ")"; + } else if (ival == num_breaks_lower) { + a = "["; + b = "]"; + } else { + a = "("; + b = "]"; + } + s << a << (*breaks)[ival-1] << ", " << (*breaks)[ival] << b; + } + } s << ", "; s << _("#obs") << ": " << ival_obs_cnt[ival]; double p = 100.0*((double) ival_obs_cnt[ival])/((double) num_obs); @@ -698,7 +729,7 @@ useScientificNotation(_useScientificNotation) cc_data.uniform_dist_min, cc_data.uniform_dist_max); cc_data.cat_classif_type = CatClassification::custom; - cc_data.break_vals_type = CatClassification::custom_break_vals; + cc_data.break_vals_type = CatClassification::quantile_break_vals; cc_data.color_scheme = CatClassification::diverging_color_scheme; CatClassification::ChangeNumCats(default_intervals, cc_data); @@ -858,10 +889,10 @@ useScientificNotation(_useScientificNotation) if (cc_state) { cc_data = cc_state->GetCatClassif(); SetSyncVars(true); - + cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - + cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); EnableControls(true); @@ -929,10 +960,12 @@ CatClassifState* CatClassifPanel::PromptNew(const CatClassifDef& ccd, if (cc_data.cat_classif_type == CatClassification::no_theme) { CatClassification::CatClassifTypeToBreakValsType(cc_data.cat_classif_type); - cc_data.cat_classif_type = CatClassification::custom; + + cc_data.cat_classif_type = GetClassifyType(); cc_data.break_vals_type = CatClassification::quantile_break_vals; CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); + cc_data.cat_classif_type = CatClassification::custom; // CorrectCatClassifFromTable() will change the break_vals_type // to custom_break_vals, and will impact the "Breaks" contrl cc_data.break_vals_type = CatClassification::quantile_break_vals; @@ -961,9 +994,11 @@ CatClassifState* CatClassifPanel::PromptNew(const CatClassifDef& ccd, EnableControls(true); return cc_state; + } else { + wxCommandEvent ev; + OnBreaksChoice(ev); + return NULL; } - - return NULL; } /** A new Custom Category was selected. Copy cc_data from cc_state and @@ -983,9 +1018,10 @@ void CatClassifPanel::OnCurCatsChoice(wxCommandEvent& event) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. + cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - + cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); EnableControls(true); @@ -1014,9 +1050,9 @@ void CatClassifPanel::OnBreaksChoice(wxCommandEvent& event) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. + cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - // always mark the custom breaks CatClassification::custom cc_data.cat_classif_type = CatClassification::custom; cc_data.break_vals_type = bv_type; InitFromCCData(); @@ -1053,16 +1089,27 @@ void CatClassifPanel::OnColorSchemeChoice(wxCommandEvent& event) } } - - // Verify that cc data is self-consistent and correct if not. This - // will result in all breaks, colors and names being initialized. - CatClassification::CorrectCatClassifFromTable(cc_data, table_int, - IsAutomaticLabels()); - InitFromCCData(); UpdateCCState(); } +CatClassification::CatClassifType CatClassifPanel::GetClassifyType() +{ + // Get classifytype from the breaks dropdown control + CatClassification::BreakValsType new_cat_typ = GetBreakValsTypeChoice(); + if (new_cat_typ == CatClassification::quantile_break_vals) { + return CatClassification::quantile; + } else if (new_cat_typ == CatClassification::unique_values_break_vals) { + return CatClassification::unique_values; + } else if (new_cat_typ == CatClassification::natural_breaks_break_vals) { + return CatClassification::natural_breaks; + } else if (new_cat_typ == CatClassification::equal_intervals_break_vals) { + return CatClassification::equal_intervals; + } else { + return CatClassification::custom; + } +} + void CatClassifPanel::OnNumCatsChoice(wxCommandEvent& event) { wxLogMessage("CatClassifPanel::OnNumCatsChoice"); @@ -1112,8 +1159,10 @@ void CatClassifPanel::OnNumCatsChoice(wxCommandEvent& event) cc_data.num_cats = new_num_cats; // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. + cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); + cc_data.cat_classif_type = CatClassification::custom; // check if breaks have same values std::set brks; for (int i=0; iSetSelection(old_breaks_choice); - hist_canvas->ChangeAll(&preview_data, &cc_data.breaks, &cc_data.colors); + hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, &cc_data.breaks, &cc_data.colors); } void CatClassifPanel::OnAssocVarChoice(wxCommandEvent& ev) @@ -1154,9 +1203,10 @@ void CatClassifPanel::OnAssocVarChoice(wxCommandEvent& ev) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. + cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - + cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); } @@ -1171,9 +1221,10 @@ void CatClassifPanel::OnAssocVarTmChoice(wxCommandEvent& ev) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. + cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - + cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); } @@ -1226,7 +1277,7 @@ void CatClassifPanel::OnPreviewVarChoice(wxCommandEvent& ev) } CatClassifHistCanvas::InitUniformData(preview_data, prev_min, prev_max); } - hist_canvas->ChangeAll(&preview_data, + hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, &cc_data.breaks, &cc_data.colors); Refresh(); } @@ -1248,7 +1299,7 @@ void CatClassifPanel::OnPreviewVarTmChoice(wxCommandEvent& ev) preview_data[i].first = dd[i]; preview_data[i].second = i; } - hist_canvas->ChangeAll(&preview_data, + hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, &cc_data.breaks, &cc_data.colors); Refresh(); } @@ -1294,9 +1345,10 @@ void CatClassifPanel::OnUnifDistMinEnter(wxCommandEvent& event) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. + cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - + cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); } @@ -1347,9 +1399,10 @@ void CatClassifPanel::OnUnifDistMaxEnter(wxCommandEvent& event) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. + cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - + cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); } @@ -1438,8 +1491,8 @@ void CatClassifPanel::OnBrkTxtEnter(wxCommandEvent& event) SetUnifDistMinMaxTxt(cc_data.uniform_dist_min, cc_data.uniform_dist_max); UpdateCCState(); - hist_canvas->ChangeAll(&preview_data, &cc_data.breaks, - &cc_data.colors); + hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, + &cc_data.breaks, &cc_data.colors); SetSliderFromBreak(nbrk); } } else { @@ -1471,7 +1524,8 @@ void CatClassifPanel::OnBrkSlider(wxCommandEvent& event) cc_data.cat_classif_type = CatClassification::custom; SetBrkTxtFromVec(cc_data.breaks); SetActiveBrkRadio(nbrk); - hist_canvas->ChangeAll(&preview_data, &cc_data.breaks, &cc_data.colors); + hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, + &cc_data.breaks, &cc_data.colors); for (int i=0; iSetBackgroundColour(cc_data.colors[i]); @@ -1506,8 +1560,8 @@ void CatClassifPanel::OnKillFocusEvent(wxFocusEvent& event) cc_data); SetBrkTxtFromVec(cc_data.breaks); SetActiveBrkRadio(nbrk); - hist_canvas->ChangeAll(&preview_data, &cc_data.breaks, - &cc_data.colors); + hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, + &cc_data.breaks, &cc_data.colors); max_lbl->SetLabelText(GenUtils::DblToStr(GetBrkSliderMin())); SetSliderFromBreak(nbrk); UpdateCCState(); @@ -1565,7 +1619,8 @@ void CatClassifPanel::OnCategoryColorButton(wxMouseEvent& event) cc_data.colors[obj_id] = retData.GetColour(); cat_color_button[obj_id]->SetBackgroundColour(retData.GetColour()); UpdateCCState(); - hist_canvas->ChangeAll(&preview_data, &cc_data.breaks, &cc_data.colors); + hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, + &cc_data.breaks, &cc_data.colors); Refresh(); } @@ -1649,18 +1704,23 @@ void CatClassifPanel::OnButtonNew(wxCommandEvent& event) cur_cats_choice->Append(new_title); cur_cats_choice->SetSelection(cur_cats_choice->GetCount()-1); SetSyncVars(true); - + // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. + cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - + cc_data.cat_classif_type = CatClassification::custom; + cc_data.break_vals_type = CatClassification::quantile_break_vals; + InitFromCCData(); EnableControls(true); UpdateCCState(); retry = false; } } else { + wxCommandEvent ev; + OnCurCatsChoice(ev); retry = false; } } @@ -1688,7 +1748,7 @@ void CatClassifPanel::OnButtonDelete(wxCommandEvent& event) default_min, default_max); CatClassifHistCanvas::InitUniformData(preview_data, default_min, default_max); - hist_canvas->ChangeAll(&preview_data, + hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, &cc_data.breaks, &cc_data.colors); EnableControls(false); } @@ -1825,7 +1885,7 @@ void CatClassifPanel::ResetValuesToDefault() cc_data.names.clear(); cc_data.cat_classif_type = CatClassification::custom; - cc_data.break_vals_type = CatClassification::custom_break_vals; + cc_data.break_vals_type = CatClassification::quantile_break_vals; CatClassification::SetBreakPoints(cc_data.breaks, cc_data.names, data, data_undef, CatClassification::quantile, @@ -1988,7 +2048,8 @@ void CatClassifPanel::InitFromCCData() auto_labels_cb->SetValue(true); } - hist_canvas->ChangeAll(&preview_data, &cc_data.breaks, &cc_data.colors); + hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, + &cc_data.breaks, &cc_data.colors); Refresh(); } @@ -2353,17 +2414,22 @@ void CatClassifPanel::SetBrkTxtFromVec(const std::vector& brks) for (int i=0, sz=brks.size(); iChangeValue(GenUtils::DblToStr(brks[i])); } - if (IsAutomaticLabels() && - GetBreakValsTypeChoice() != CatClassification::unique_values_break_vals) { - std::vector new_labels; - CatClassification::CatLabelsFromBreaks(brks, new_labels, - cc_data.cat_classif_type, - useScientificNotation); - int sz = new_labels.size(); - cc_data.names.resize(sz); - for (int i=0; iChangeValue(new_labels[i]); + CatClassification::BreakValsType brk_type = GetBreakValsTypeChoice(); + bool auto_lbl = IsAutomaticLabels(); + if (auto_lbl && brk_type != CatClassification::unique_values_break_vals) { + if (brk_type != CatClassification::natural_breaks_break_vals) { + std::vector new_labels; + CatClassification::CatLabelsFromBreaks(brks, new_labels, + cc_data.cat_classif_type, + useScientificNotation); + int sz = new_labels.size(); + cc_data.names.resize(sz); + for (int i=0; iChangeValue(cc_data.names[i]); } } } diff --git a/DialogTools/CatClassifDlg.h b/DialogTools/CatClassifDlg.h index db60095fc..d6fdf0271 100644 --- a/DialogTools/CatClassifDlg.h +++ b/DialogTools/CatClassifDlg.h @@ -85,7 +85,8 @@ class CatClassifHistCanvas : public TemplateCanvas { static const double default_max; void ChangeAll(Gda::dbl_int_pair_vec_type* new_data, - std::vector* new_breaks, + CatClassification::BreakValsType new_break_type, + std::vector* new_breaks, std::vector* new_colors); static void InitRandNormData(Gda::dbl_int_pair_vec_type& rn_data); static void InitUniformData(Gda::dbl_int_pair_vec_type& data, @@ -94,7 +95,7 @@ class CatClassifHistCanvas : public TemplateCanvas { protected: Project* project; - + CatClassification::BreakValsType break_type; int num_obs; Gda::dbl_int_pair_vec_type* data; Gda::dbl_int_pair_vec_type default_data; @@ -226,7 +227,8 @@ class CatClassifPanel: public wxPanel, public TableStateObserver bool IsOkToDelete(const wxString& custom_cat_title); void UpdateCCState(); - + CatClassification::CatClassifType GetClassifyType(); + /** Implementation of TableStateObserver interface */ virtual void update(TableState* o); virtual bool AllowTimelineChanges() { return true; } diff --git a/Explore/CatClassification.cpp b/Explore/CatClassification.cpp index cb5efc485..87264eca2 100644 --- a/Explore/CatClassification.cpp +++ b/Explore/CatClassification.cpp @@ -301,8 +301,53 @@ void CatClassification::SetBreakPoints(std::vector& breaks, } } else if (theme == natural_breaks) { FindNaturalBreaks(num_cats, var, var_undef, breaks); - CatLabelsFromBreaks(breaks, cat_labels, theme, useScientificNotation, - cat_disp_precision); + // Get labels + cat_labels.resize(num_cats); + stringstream s; + if (useScientificNotation) + s << std::setprecision(cat_disp_precision) << std::scientific; + else + s << std::setprecision(cat_disp_precision) << std::fixed; + int cur_intervals = num_cats; + for (int ival=0; ival= "; + // if floating point number can be render as integer + if (ss_val == (int)ss_val) s << (int)ss_val; + else s << ss_val; + + } else { + int num_breaks = cur_intervals-1; + int num_breaks_lower = (num_breaks+1)/2; + wxString a = "[", b = ")"; + double ss_val = breaks[ival-1]; + double tt_val = breaks[ival]; + s << a; + if (ss_val == (int)ss_val) s << (int)ss_val; + else s << ss_val; + s << ", "; + if (tt_val == (int)tt_val) s << (int)tt_val; + else s << tt_val; + s << b; + } + cat_labels[ival] = s.str(); + } } else { double min_val = var[0].first; @@ -745,7 +790,6 @@ PopulateCatClassifData(const CatClassifDef& cat_def, cat_data.SetCategoryMinMax(t, 0, low_v, high_v); } } else { - std::vector cat_min(num_cats); std::vector cat_max(num_cats); std::vector breaks(num_cats-1); @@ -759,132 +803,189 @@ PopulateCatClassifData(const CatClassifDef& cat_def, if (undef_cnts_tms[t]>0 && useUndefinedCategory) cat_data.AppendUndefCategory(t, undef_cnts_tms[t]); - - // Set default cat_min / cat_max values for when - // category size is 0 - cat_min[0] = var[t][0].first; - cat_max[0] = cat_def.breaks[0]; - for (int i=1; i cat_max[cat]) { - cat_max[cat] = val; - } - } - cat_data.AppendIdToCategory(t, cat, ind); - } - - if (cat_def.automatic_labels) { - for (int ival=0; ival "; - if ( cat_def.breaks[ival-1] == (int) cat_def.breaks[ival-1]) - ss << (int)cat_def.breaks[ival-1]; - else - ss << cat_def.breaks[ival-1]; - cat_data.SetCategoryCount(t, ival, cat_data.GetNumObsInCategory(t, ival)); - - } else if (ival == num_cats-1 && num_cats == 2) { + double tt_val = cat_def.breaks[ival]; + // if floating point number can be render as integer + if (tt_val == (int)tt_val) ss << (int)tt_val; else ss << tt_val; + for (int j=0; j= "; - if ( cat_def.breaks[ival-1] == (int) cat_def.breaks[ival-1]) - ss << (int)cat_def.breaks[ival-1]; - else - ss << cat_def.breaks[ival-1]; - cat_data.SetCategoryCount(t, ival, cat_data.GetNumObsInCategory(t, ival)); - - } else { - int num_breaks = num_cats-1; - int num_breaks_lower = (num_breaks+1)/2; - wxString a; - wxString b; - if (ival < num_breaks_lower) { - a = "["; - b = ")"; - } else if (ival == num_breaks_lower) { - a = "["; - b = "]"; - } else { - a = "("; - b = "]"; - } + // if floating point number can be render as integer + if (ss_val == (int)ss_val) ss << (int)ss_val; else ss << ss_val; + for (int j=0; j= ss_val) cat_data.AppendIdToCategory(t, ival, ind); + } + cat_data.SetCategoryCount(t, ival, cat_data.GetNumObsInCategory(t, ival)); + + } else { + wxString a = "[", b = ")"; + double ss_val = cat_def.breaks[ival-1]; + double tt_val = cat_def.breaks[ival]; ss << a; - if (cat_def.breaks[ival-1] == (int)cat_def.breaks[ival-1]) - ss << wxString::Format("%d", (int) cat_def.breaks[ival-1]); - else - ss << cat_def.breaks[ival-1]; + if (ss_val == (int)ss_val) ss << (int)ss_val; else ss << ss_val; ss << ", "; - if (cat_def.breaks[ival] == (int)cat_def.breaks[ival]) - ss << wxString::Format("%d", (int) cat_def.breaks[ival]); - else - ss << cat_def.breaks[ival]; + if (tt_val == (int)tt_val) ss << (int)tt_val; else ss << tt_val; ss << b; - cat_data.SetCategoryCount(t, ival, cat_data.GetNumObsInCategory(t, ival)); + for (int j=0; j= ss_val && val < tt_val) cat_data.AppendIdToCategory(t, ival, ind); + } + cat_data.SetCategoryCount(t, ival, cat_data.GetNumObsInCategory(t, ival)); - } + } cat_data.SetCategoryLabel(t, ival, wxString(ss.str())); - cat_data.SetCategoryMinMax(t, ival, - cat_min[ival], cat_max[ival]); - } + cat_data.SetCategoryMinMax(t, ival, cat_min[ival], cat_max[ival]); + } } else { - for (int ival=0; ival cat_max[cat]) { + cat_max[cat] = val; + } + } + cat_data.AppendIdToCategory(t, cat, ind); + } + + if (cat_def.automatic_labels) { + for (int ival=0; ival "; + if ( cat_def.breaks[ival-1] == (int) cat_def.breaks[ival-1]) + ss << (int)cat_def.breaks[ival-1]; + else + ss << cat_def.breaks[ival-1]; + cat_data.SetCategoryCount(t, ival, cat_data.GetNumObsInCategory(t, ival)); + + } else if (ival == num_cats-1 && num_cats == 2) { + ss << ">= "; + if ( cat_def.breaks[ival-1] == (int) cat_def.breaks[ival-1]) + ss << (int)cat_def.breaks[ival-1]; + else + ss << cat_def.breaks[ival-1]; + cat_data.SetCategoryCount(t, ival, cat_data.GetNumObsInCategory(t, ival)); + + } else { + int num_breaks = num_cats-1; + int num_breaks_lower = (num_breaks+1)/2; + wxString a; + wxString b; + if (ival < num_breaks_lower) { + a = "["; + b = ")"; + } else if (ival == num_breaks_lower) { + a = "["; + b = "]"; + } else { + a = "("; + b = "]"; + } + ss << a; + if (cat_def.breaks[ival-1] == (int)cat_def.breaks[ival-1]) + ss << wxString::Format("%d", (int) cat_def.breaks[ival-1]); + else + ss << cat_def.breaks[ival-1]; + ss << ", "; + if (cat_def.breaks[ival] == (int)cat_def.breaks[ival]) + ss << wxString::Format("%d", (int) cat_def.breaks[ival]); + else + ss << cat_def.breaks[ival]; + ss << b; + cat_data.SetCategoryCount(t, ival, cat_data.GetNumObsInCategory(t, ival)); + } + cat_data.SetCategoryLabel(t, ival, wxString(ss.str())); + cat_data.SetCategoryMinMax(t, ival, + cat_min[ival], cat_max[ival]); + } + } else { + for (int ival=0; ival(t)) { f->OnCustomCatClassifA(cc_title); } else if (ConditionalMapFrame* f = dynamic_cast(t)) { @@ -1108,6 +1112,9 @@ void GdaFrame::OnCustomCategoryClick(wxCommandEvent& event) f->OnCustomCatClassifA(cc_title); } else if (ScatterNewPlotFrame* f = dynamic_cast(t)) { f->OnCustomCatClassifA(cc_title); + } else { + // if there is no active map window, pop to create new map window + OnEmptyCustomCategoryClick(event); } } } From 887b65763f778bba96aed57fc030de2f17cfd5b2 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 29 Jul 2019 13:48:21 -0700 Subject: [PATCH 04/60] fix a bug that Set Display Precision doesn't work on Moran scatter plot --- Explore/LisaScatterPlotView.cpp | 8 ++++---- Explore/LisaScatterPlotView.h | 4 ++-- GeoDa.cpp | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Explore/LisaScatterPlotView.cpp b/Explore/LisaScatterPlotView.cpp index de022052c..cfe61729d 100644 --- a/Explore/LisaScatterPlotView.cpp +++ b/Explore/LisaScatterPlotView.cpp @@ -498,16 +498,16 @@ void LisaScatterPlotCanvas::ResizeSelectableShps(int virtual_scrn_w, layer2_valid = false; } -void LisaScatterPlotCanvas::SetAxisDisplayPrecision(int n) +void LisaScatterPlotCanvas::SetAxisDisplayPrecision(int n, bool fixed_point) { isResize = true; - TemplateCanvas::SetAxisDisplayPrecision(n); + TemplateCanvas::SetAxisDisplayPrecision(n, fixed_point); } -void LisaScatterPlotCanvas::SetDisplayPrecision(int prec) +void LisaScatterPlotCanvas::SetDisplayPrecision(int prec, bool fixed_point) { isResize = true; - TemplateCanvas::SetDisplayPrecision(prec); + TemplateCanvas::SetDisplayPrecision(prec, fixed_point); } void LisaScatterPlotCanvas::PopulateCanvas() diff --git a/Explore/LisaScatterPlotView.h b/Explore/LisaScatterPlotView.h index 4c5af1da3..86def91e6 100644 --- a/Explore/LisaScatterPlotView.h +++ b/Explore/LisaScatterPlotView.h @@ -51,8 +51,8 @@ class LisaScatterPlotCanvas : public ScatterNewPlotCanvas virtual void UpdateSelection(bool shiftdown, bool pointsel); virtual void ResizeSelectableShps(int virtual_scrn_w=0, int virtual_scrn_h=0); virtual void OnIdle(wxIdleEvent& event); - virtual void SetDisplayPrecision(int n); - virtual void SetAxisDisplayPrecision(int n); + virtual void SetDisplayPrecision(int n, bool fixed_point=false); + virtual void SetAxisDisplayPrecision(int n, bool fixed_point=false); //virtual void OnIdle(wxIdleEvent& event); void ShowRandomizationDialog(int permutation); diff --git a/GeoDa.cpp b/GeoDa.cpp index 75ca9f351..b58183e44 100644 --- a/GeoDa.cpp +++ b/GeoDa.cpp @@ -5481,6 +5481,8 @@ void GdaFrame::OnDisplayPrecision(wxCommandEvent& event) if (!t) return; if (PCPFrame* f = dynamic_cast(t)) { f->OnDisplayPrecision(event); + } else if (LisaScatterPlotFrame* f = dynamic_cast(t)) { + f->OnDisplayPrecision(event); } else if (ScatterNewPlotFrame* f = dynamic_cast(t)) { f->OnDisplayPrecision(event); } else if (BoxPlotFrame* f = dynamic_cast(t)) { From 2fe13aefaaf2957892c592e8ad23390985a786b5 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 29 Jul 2019 14:02:55 -0700 Subject: [PATCH 05/60] Update CorrelParamsDlg.cpp fix an issue that, in Corelogram paratmers dialog, the Max distance: threshold value does not display when click on the checkbox. --- Explore/CorrelParamsDlg.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Explore/CorrelParamsDlg.cpp b/Explore/CorrelParamsDlg.cpp index 48db3f221..b76b10a42 100644 --- a/Explore/CorrelParamsDlg.cpp +++ b/Explore/CorrelParamsDlg.cpp @@ -560,7 +560,7 @@ void CorrelParamsFrame::OnThreshCheckBox(wxCommandEvent& ev) thresh_tctrl->Enable(checked); thresh_slider->Enable(checked); UpdateEstPairs(); - + UpdateThreshTctrlVal(); OnApplyBtn(ev); ev.Skip(); @@ -795,6 +795,10 @@ void CorrelParamsFrame::UpdateApplyState() void CorrelParamsFrame::UpdateThreshTctrlVal() { if (!thresh_tctrl) return; + if (thresh_cbx->GetValue()==false) { + thresh_tctrl->ChangeValue(""); + return; + } double sf = 0.5; if (thresh_slider) { sf = (((double) thresh_slider->GetValue()) / ((double) sldr_tcks)); From d5d604a4595c8ffdc637e8b28fa45338cfd294d4 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 29 Jul 2019 20:30:55 -0700 Subject: [PATCH 06/60] Update WeightsManDlg.cpp update to raise warning if weights intersection/union doesn't apply to selected weights. --- DialogTools/WeightsManDlg.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/DialogTools/WeightsManDlg.cpp b/DialogTools/WeightsManDlg.cpp index 551b5ebd9..e14974d52 100644 --- a/DialogTools/WeightsManDlg.cpp +++ b/DialogTools/WeightsManDlg.cpp @@ -310,6 +310,10 @@ void WeightsManFrame::OnIntersectionBtn(wxCommandEvent& ev) GalWeight* new_w = WeightUtils::WeightsIntersection(ws); SaveGalWeightsFile(new_w); delete new_w; + } else { + wxString msg = _("Selected weights are not valid for intersection, e.g. weights have different ID variable. Please select different weights."); + wxMessageDialog dlg(NULL, msg, _("Warning"), wxOK | wxICON_INFORMATION); + dlg.ShowModal(); } } @@ -321,6 +325,10 @@ void WeightsManFrame::OnUnionBtn(wxCommandEvent& ev) GalWeight* new_w = WeightUtils::WeightsUnion(ws); SaveGalWeightsFile(new_w); delete new_w; + } else { + wxString msg = _("Selected weights are not valid for union, e.g. weights have different ID variable. Please select different weights."); + wxMessageDialog dlg(NULL, msg, _("Warning"), wxOK | wxICON_INFORMATION); + dlg.ShowModal(); } } From 4fbc9fdb475c9e7ca8ec5d63dbc09cf296241809 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 29 Jul 2019 20:39:17 -0700 Subject: [PATCH 07/60] Update HClusterDlg.cpp leave spatial constaint to next release --- DialogTools/HClusterDlg.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/DialogTools/HClusterDlg.cpp b/DialogTools/HClusterDlg.cpp index 2f96a3d7f..fd7c014c7 100644 --- a/DialogTools/HClusterDlg.cpp +++ b/DialogTools/HClusterDlg.cpp @@ -181,6 +181,10 @@ void HClusterDlg::CreateControls() gbox->Add(st16, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(combo_weights, 1, wxEXPAND); combo_weights->Disable(); + + st17->Hide(); + chk_contiguity->Hide(); + combo_weights->Hide(); wxStaticBoxSizer *hbox = new wxStaticBoxSizer(wxHORIZONTAL, panel, _("Parameters:")); hbox->Add(gbox, 1, wxEXPAND); From 9df7acffb020f92ed77b0dd1338ab8f08e8ff69d Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 29 Jul 2019 20:56:03 -0700 Subject: [PATCH 08/60] Update SkaterDlg.cpp set skater dialog to correctly use "min region size" --- DialogTools/SkaterDlg.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DialogTools/SkaterDlg.cpp b/DialogTools/SkaterDlg.cpp index f520efd4b..5044f57d9 100644 --- a/DialogTools/SkaterDlg.cpp +++ b/DialogTools/SkaterDlg.cpp @@ -533,7 +533,7 @@ void SkaterDlg::OnOK(wxCommandEvent& event ) } double* bound_vals = GetBoundVals(); - /* + if (bound_vals == NULL) { wxString str_min_regions = txt_minregions->GetValue(); long val_min_regions; @@ -545,7 +545,7 @@ void SkaterDlg::OnOK(wxCommandEvent& event ) for (int i=0; i Date: Mon, 29 Jul 2019 20:56:33 -0700 Subject: [PATCH 09/60] Update version.h update build date for 1.14 --- version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.h b/version.h index 7010ac926..f30625eb3 100644 --- a/version.h +++ b/version.h @@ -5,7 +5,7 @@ namespace Gda { const int version_subbuild = 0; const int version_year = 2019; const int version_month = 7; - const int version_day = 23; + const int version_day = 29; const int version_night = 0; const int version_type = 2; // 0: alpha, 1: beta, 2: release } From 6b8d038449e99ebd2f159c6aa7b7d5d29f0b0696 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 30 Jul 2019 09:59:06 -0700 Subject: [PATCH 10/60] Update redcap.cpp fix a bug in skater to replicate the lab: n=6 and min region size=12 --- Algorithms/redcap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Algorithms/redcap.cpp b/Algorithms/redcap.cpp index 2c7d12e86..76f90ce49 100644 --- a/Algorithms/redcap.cpp +++ b/Algorithms/redcap.cpp @@ -375,7 +375,7 @@ bool Tree::checkControl(vector& cand_ids, vector& ids, int flag) } } - return val > control_thres; + return val >= control_thres; } pair Tree::GetSubTrees() From 69f93368c5651acd587d61d25d0ae5de961f9bb1 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 30 Jul 2019 11:23:17 -0700 Subject: [PATCH 11/60] update #1847 on custom breaks update version for 1.4 build --- DialogTools/CatClassifDlg.cpp | 33 ++++++++------------------------- version.h | 2 +- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/DialogTools/CatClassifDlg.cpp b/DialogTools/CatClassifDlg.cpp index bb1963be2..bc6e6862f 100644 --- a/DialogTools/CatClassifDlg.cpp +++ b/DialogTools/CatClassifDlg.cpp @@ -889,10 +889,10 @@ useScientificNotation(_useScientificNotation) if (cc_state) { cc_data = cc_state->GetCatClassif(); SetSyncVars(true); - cc_data.cat_classif_type = GetClassifyType(); - CatClassification::CorrectCatClassifFromTable(cc_data, table_int, - IsAutomaticLabels()); - cc_data.cat_classif_type = CatClassification::custom; + //cc_data.cat_classif_type = GetClassifyType(); + //CatClassification::CorrectCatClassifFromTable(cc_data, table_int, + // IsAutomaticLabels()); + //cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); EnableControls(true); @@ -961,14 +961,10 @@ CatClassifState* CatClassifPanel::PromptNew(const CatClassifDef& ccd, if (cc_data.cat_classif_type == CatClassification::no_theme) { CatClassification::CatClassifTypeToBreakValsType(cc_data.cat_classif_type); - cc_data.cat_classif_type = GetClassifyType(); + cc_data.cat_classif_type = CatClassification::quantile; cc_data.break_vals_type = CatClassification::quantile_break_vals; CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - cc_data.cat_classif_type = CatClassification::custom; - // CorrectCatClassifFromTable() will change the break_vals_type - // to custom_break_vals, and will impact the "Breaks" contrl - cc_data.break_vals_type = CatClassification::quantile_break_vals; } else { cc_data.cat_classif_type = CatClassification::custom; cc_data.break_vals_type = CatClassification::custom_break_vals; @@ -1018,10 +1014,8 @@ void CatClassifPanel::OnCurCatsChoice(wxCommandEvent& event) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. - cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); EnableControls(true); @@ -1050,10 +1044,8 @@ void CatClassifPanel::OnBreaksChoice(wxCommandEvent& event) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. - cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - cc_data.cat_classif_type = CatClassification::custom; cc_data.break_vals_type = bv_type; InitFromCCData(); UpdateCCState(); @@ -1203,10 +1195,8 @@ void CatClassifPanel::OnAssocVarChoice(wxCommandEvent& ev) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. - cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); } @@ -1221,10 +1211,8 @@ void CatClassifPanel::OnAssocVarTmChoice(wxCommandEvent& ev) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. - cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); } @@ -1345,10 +1333,8 @@ void CatClassifPanel::OnUnifDistMinEnter(wxCommandEvent& event) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. - cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); } @@ -1399,10 +1385,8 @@ void CatClassifPanel::OnUnifDistMaxEnter(wxCommandEvent& event) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. - cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); } @@ -1698,7 +1682,9 @@ void CatClassifPanel::OnButtonNew(wxCommandEvent& event) } else { cc_data.title = new_title; - cc_data.cat_classif_type = CatClassification::custom; + // new custom breaks is set to quantile by default + cc_data.cat_classif_type = CatClassification::quantile; + cc_data.break_vals_type = CatClassification::quantile_break_vals; cc_data.assoc_db_fld_name = GetAssocDbFldNm(); cc_state = cat_classif_manager->CreateNewClassifState(cc_data); cur_cats_choice->Append(new_title); @@ -1707,11 +1693,8 @@ void CatClassifPanel::OnButtonNew(wxCommandEvent& event) // Verify that cc data is self-consistent and correct if not. This // will result in all breaks, colors and names being initialized. - cc_data.cat_classif_type = GetClassifyType(); CatClassification::CorrectCatClassifFromTable(cc_data, table_int, IsAutomaticLabels()); - cc_data.cat_classif_type = CatClassification::custom; - cc_data.break_vals_type = CatClassification::quantile_break_vals; InitFromCCData(); EnableControls(true); diff --git a/version.h b/version.h index f30625eb3..77b625938 100644 --- a/version.h +++ b/version.h @@ -5,7 +5,7 @@ namespace Gda { const int version_subbuild = 0; const int version_year = 2019; const int version_month = 7; - const int version_day = 29; + const int version_day = 30; const int version_night = 0; const int version_type = 2; // 0: alpha, 1: beta, 2: release } From 57e9dd4e747f5f06750cce7641dec7d46d9054dc Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 30 Jul 2019 11:48:53 -0700 Subject: [PATCH 12/60] Update OGRLayerProxy.cpp enhance multi-layer loading logic --- ShapeOperations/OGRLayerProxy.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ShapeOperations/OGRLayerProxy.cpp b/ShapeOperations/OGRLayerProxy.cpp index 9d4e0bf50..771630790 100644 --- a/ShapeOperations/OGRLayerProxy.cpp +++ b/ShapeOperations/OGRLayerProxy.cpp @@ -938,9 +938,14 @@ bool OGRLayerProxy::HasError() bool OGRLayerProxy::CheckIsTableOnly() { - layer->ResetReading(); - OGRFeature *feature = layer->GetNextFeature(); - OGRGeometry* my_geom = feature->GetGeometryRef(); + OGRGeometry* my_geom = NULL; + if (layer) { + layer->ResetReading(); + OGRFeature *feature = layer->GetNextFeature(); + if (feature) { + my_geom = feature->GetGeometryRef(); + } + } return my_geom == NULL; } From f77663615d13c38c36c4209d92d953aa300273e1 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 30 Jul 2019 15:33:09 -0700 Subject: [PATCH 13/60] update windows build script --- BuildTools/windows/installer/32bit/GeoDa.iss | 2 +- BuildTools/windows/installer/64bit/GeoDa.iss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BuildTools/windows/installer/32bit/GeoDa.iss b/BuildTools/windows/installer/32bit/GeoDa.iss index f2076383f..0aaf95629 100644 --- a/BuildTools/windows/installer/32bit/GeoDa.iss +++ b/BuildTools/windows/installer/32bit/GeoDa.iss @@ -5,7 +5,7 @@ AppPublisherURL=https://spatial.uchiago.edu/ AppSupportURL=https://spatial.uchiago.edu/ AppUpdatesURL=https://spatial.uchiago.edu/ AppSupportPhone=(480)965-7533 -AppVersion=1.12 +AppVersion=1.14 DefaultDirName={pf}\GeoDa Software DefaultGroupName=GeoDa Software ; Since no icons will be created in "{group}", we don't need the wizard diff --git a/BuildTools/windows/installer/64bit/GeoDa.iss b/BuildTools/windows/installer/64bit/GeoDa.iss index 7de8d1ca1..0f6037b36 100644 --- a/BuildTools/windows/installer/64bit/GeoDa.iss +++ b/BuildTools/windows/installer/64bit/GeoDa.iss @@ -5,7 +5,7 @@ AppPublisherURL=https://spatial.uchiago.edu/ AppSupportURL=https://spatial.uchiago.edu/ AppUpdatesURL=https://spatial.uchiago.edu/ AppSupportPhone=(480)965-7533 -AppVersion=1.12 +AppVersion=1.14 DefaultDirName={pf}\GeoDa Software DefaultGroupName=GeoDa Software ; Since no icons will be created in "{group}", we don't need the wizard From 420ef6c8c7bfd1c6f0ea20f6da9f307027207075 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Thu, 1 Aug 2019 13:51:27 -0700 Subject: [PATCH 14/60] update for auto-upgrade --- BuildTools/macosx/GeoDa-GDAL-Info.plist | 2 +- DialogTools/AutoUpdateDlg.cpp | 6 +++++- version.h | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/BuildTools/macosx/GeoDa-GDAL-Info.plist b/BuildTools/macosx/GeoDa-GDAL-Info.plist index e49c3081a..afcdaab58 100644 --- a/BuildTools/macosx/GeoDa-GDAL-Info.plist +++ b/BuildTools/macosx/GeoDa-GDAL-Info.plist @@ -15,7 +15,7 @@ CFBundleIconFile GeoDa.icns CFBundleIdentifier - edu.asu.geodacenter.GeoDa + edu.uchicago.spatial CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType diff --git a/DialogTools/AutoUpdateDlg.cpp b/DialogTools/AutoUpdateDlg.cpp index 274b10aa2..589105ef0 100644 --- a/DialogTools/AutoUpdateDlg.cpp +++ b/DialogTools/AutoUpdateDlg.cpp @@ -477,6 +477,10 @@ void AutoUpdateDlg::OnOkClick( wxCommandEvent& event ) progressDlg.Update(current_job++); } } + } else { + // if there is no items for upgrade, raise warning message to + // prompt user to download GeoDa from website + success = false; } } catch(...) { // raise warning message @@ -493,7 +497,7 @@ void AutoUpdateDlg::OnOkClick( wxCommandEvent& event ) } else { // raise warning message wxMessageDialog msgDlg(this, - _("Please check your network connection, or contact GeoDa support team."), + _("Please check your network connection, or download GeoDa from https://geodacenter.github.io"), _("Update GeoDa failed"), wxOK |wxICON_ERROR); msgDlg.ShowModal(); diff --git a/version.h b/version.h index 77b625938..42f1c6c24 100644 --- a/version.h +++ b/version.h @@ -4,8 +4,8 @@ namespace Gda { const int version_build = 0; const int version_subbuild = 0; const int version_year = 2019; - const int version_month = 7; - const int version_day = 30; + const int version_month = 8; + const int version_day = 1; const int version_night = 0; const int version_type = 2; // 0: alpha, 1: beta, 2: release } From 6ca7d7339686e5e8726030b431ca03b81276cdbc Mon Sep 17 00:00:00 2001 From: Xun Li Date: Fri, 2 Aug 2019 21:44:09 -0700 Subject: [PATCH 15/60] enhacenment and fix 1. Basemap works with world map 2. Using time grouped variable in Differential LISA 3. update metadata on saved classification in project file #1552 --- DataViewer/TableFrame.cpp | 2 +- DataViewer/VarOrderPtree.cpp | 2 +- Explore/Basemap.cpp | 23 +++++++++--------- Explore/Basemap.h | 2 ++ Explore/ConditionalClusterMapView.cpp | 33 +++++++++++++------------- ShapeOperations/OGRDatasourceProxy.cpp | 3 +++ 6 files changed, 35 insertions(+), 30 deletions(-) diff --git a/DataViewer/TableFrame.cpp b/DataViewer/TableFrame.cpp index df430f251..9c30b9a4b 100644 --- a/DataViewer/TableFrame.cpp +++ b/DataViewer/TableFrame.cpp @@ -124,7 +124,7 @@ TableFrame::TableFrame(wxFrame *parent, Project* project, grid->SetColMinimalWidth(i, cur_lbl_len * pw + 8); // attempt to scale up col width based on cur_col_size //double fac = 1.2; - grid->SetColSize(i, max_cell_len * pw); + grid->SetColSize(i, max_cell_len * 8); } grid->ForceRefresh(); diff --git a/DataViewer/VarOrderPtree.cpp b/DataViewer/VarOrderPtree.cpp index 92338e9e2..cda36cb48 100644 --- a/DataViewer/VarOrderPtree.cpp +++ b/DataViewer/VarOrderPtree.cpp @@ -298,7 +298,7 @@ bool VarOrderPtree::CorrectVarGroups(const std::vector& ds_var_list, } // Append all items in ds_var_list not in var_set - BOOST_FOREACH(const wxString& v, ds_var_list) { + BOOST_FOREACH(const wxString& v, ds_var_set) { if (var_set.find(v) == var_set.end()) { VarGroup ent; ent.name = v; diff --git a/Explore/Basemap.cpp b/Explore/Basemap.cpp index bc5e64f7e..e50738846 100644 --- a/Explore/Basemap.cpp +++ b/Explore/Basemap.cpp @@ -512,10 +512,12 @@ void Basemap::GetTiles() // if offset to left, need to zoom out if (map_offx < 0 && zoom > 0) { - zoom = zoom -1; - nn = pow(2.0, zoom); - GetTiles(); - return; + if (zoom > 1) { + zoom = zoom -1; + nn = pow(2.0, zoom); + GetTiles(); + return; + } } offsetX = topleft->GetXFrac() * 255 - map_offx; @@ -697,7 +699,9 @@ XYFraction* Basemap::LatLngToRawXY(LatLng &latlng) { double lat_rad = latlng.GetLatRad(); double x = (latlng.GetLngDeg() + 180.0 ) / 360.0 * nn; - double y = (1.0 - log(tan(lat_rad) + 1.0 / cos(lat_rad)) / M_PI) / 2.0 * nn; + double tan_lat = tan(lat_rad); + double cos_lat = cos(lat_rad); + double y = (1.0 - log(tan_lat + 1.0/cos_lat) / M_PI) / 2.0 * nn; return new XYFraction(x, y); } @@ -718,19 +722,14 @@ void Basemap::LatLngToXY(double lng, double lat, int &x, int &y) if (poCT!= NULL) { poCT->Transform(1, &lng, &lat); } - + if (lat > 85.0511) lat = 85.0511; + if (lat < -85.0511) lat = -85.0511; double lat_rad = lat * M_PI / 180.0; double yy = (1.0 - log(tan(lat_rad) + 1.0 / cos(lat_rad)) / M_PI) / 2.0 * nn; y = (int)(yy * 256 - topP) - offsetY; double xx = (lng + 180.0 ) / 360.0 * nn; x = (int)(xx * 256 - leftP) - offsetX; - - if ( endX > nn) { - if (x <0) { - x = nn*256 + x; - } - } } wxString Basemap::GetTileUrl(int x, int y) diff --git a/Explore/Basemap.h b/Explore/Basemap.h index ac259359f..5b2857957 100644 --- a/Explore/Basemap.h +++ b/Explore/Basemap.h @@ -135,6 +135,8 @@ namespace Gda { LatLng(double _lat, double _lng) { lat = _lat; lng = _lng; + if (lat > 85.0511) lat = 85.0511; + if (lat < -85.0511) lat = -85.0511; } ~LatLng(){} diff --git a/Explore/ConditionalClusterMapView.cpp b/Explore/ConditionalClusterMapView.cpp index f764f0aef..f1665b69a 100644 --- a/Explore/ConditionalClusterMapView.cpp +++ b/Explore/ConditionalClusterMapView.cpp @@ -542,7 +542,7 @@ void ConditionalClusterMapCanvas::DrawLayer0() wxSize sz = GetVirtualSize(); if (!layer0_bm) resizeLayerBms(sz.GetWidth(), sz.GetHeight()); - + ResetFadedLayer(); wxMemoryDC dc(*layer0_bm); dc.SetBackground(wxBrush(canvas_background_color)); dc.Clear(); @@ -1077,17 +1077,18 @@ void ConditionalLISAClusterMapCanvas::CreateAndUpdateCategories() // we do not allow smoothing with multiple time variables. cat_var_sorted.resize(num_time_vals); cat_var_undef.resize(num_time_vals); - + int lisa_time = lisa_coord->num_time_vals; + int lisa_t = 0; for (int t=0; tGetClusterIndicators(t); + if (t < lisa_time-1) lisa_t = t; + int* clst = lisa_coord->GetClusterIndicators(lisa_t); for (int i=0; iundef_data[0][t][i]; + cat_var_undef[t][i] = lisa_coord->undef_data[0][lisa_t][i]; } } @@ -1112,17 +1113,17 @@ void ConditionalLISAClusterMapCanvas::CreateAndUpdateCategories() // get cat_data int num_time = lisa_coord->num_time_vals; int num_obs = lisa_coord->num_obs; - cat_data.CreateEmptyCategories(num_time, num_obs); - + cat_data.CreateEmptyCategories(num_time_vals, num_obs); + lisa_t = 0; for (int t=0; tGetHasIsolates(t)) + if (lisa_t < num_time -1) lisa_t = t; + if (lisa_coord->GetHasIsolates(lisa_t)) num_cats++; - if (lisa_coord->GetHasUndefined(t)) + if (lisa_coord->GetHasUndefined(lisa_t)) num_cats++; num_cats += 5; @@ -1146,13 +1147,13 @@ void ConditionalLISAClusterMapCanvas::CreateAndUpdateCategories() cat_data.SetCategoryColor(t, 3, wxColour(150, 150, 255)); cat_data.SetCategoryLabel(t, 4, "High-Low"); cat_data.SetCategoryColor(t, 4, wxColour(255, 150, 150)); - if (lisa_coord->GetHasIsolates(t) && - lisa_coord->GetHasUndefined(t)) { + if (lisa_coord->GetHasIsolates(lisa_t) && + lisa_coord->GetHasUndefined(lisa_t)) { isolates_cat = 5; undefined_cat = 6; - } else if (lisa_coord->GetHasUndefined(t)) { + } else if (lisa_coord->GetHasUndefined(lisa_t)) { undefined_cat = 5; - } else if (lisa_coord->GetHasIsolates(t)) { + } else if (lisa_coord->GetHasIsolates(lisa_t)) { isolates_cat = 5; } @@ -1166,8 +1167,8 @@ void ConditionalLISAClusterMapCanvas::CreateAndUpdateCategories() } double cuttoff = lisa_coord->GetSignificanceCutoff(); - double* p = lisa_coord->GetLocalSignificanceValues(t); - int* cluster = lisa_coord->GetClusterIndicators(t); + double* p = lisa_coord->GetLocalSignificanceValues(lisa_t); + int* cluster = lisa_coord->GetClusterIndicators(lisa_t); //int* sigCat = lisa_coord->sig_cat_vecs[t]; for (int i=0, iend=lisa_coord->num_obs; iCreateLayer(layer_name.mb_str(), poOutputSRS, From b1389baf5ca4c7ec681d1684582619a268c6b81a Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 6 Aug 2019 13:34:45 -0700 Subject: [PATCH 16/60] update build script for ubuntu 16.04 and 18.04; although all will be replaced with Docker files soon:) --- BuildTools/ubuntu/GNUmakefile | 2 +- BuildTools/ubuntu/build64.sh | 2 +- BuildTools/ubuntu/build64_18.04.sh | 4 +- .../ubuntu/dep/gdal-1.9.2/GDALmake64.opt | 8 +- GeoDamake.opt | 43 ++-- GeoDamake.ubuntu.1804.opt | 77 +++++++ GeoDamake.ubuntu.opt | 11 +- rc/GdaAppResources.cpp | 188 +++++++++--------- 8 files changed, 207 insertions(+), 128 deletions(-) create mode 100644 GeoDamake.ubuntu.1804.opt diff --git a/BuildTools/ubuntu/GNUmakefile b/BuildTools/ubuntu/GNUmakefile index a17d795fb..21254c05f 100644 --- a/BuildTools/ubuntu/GNUmakefile +++ b/BuildTools/ubuntu/GNUmakefile @@ -97,7 +97,7 @@ build-geoda: cp $(GEODA_HOME)/libraries/lib/libminizip.so.0.0.0 build/plugins/libminizip.so.0 cp $(GEODA_HOME)/libraries/lib/liburiparser.so.1.0.5 build/plugins/liburiparser.so.1 cp $(GEODA_HOME)/libraries/lib/libgeos-3.3.8.so build/plugins/libgeos-3.3.8.so - cp $(GEODA_HOME)/libraries/lib/libcurl.so.4.4.0 build/plugins/libcurl.so.4 + #cp $(GEODA_HOME)/libraries/lib/libcurl.so.4.4.0 build/plugins/libcurl.so.4 cp $(GEODA_HOME)/libraries/lib/libcares.so.2.1.0 build/plugins/libcares.so.2 cp $(GEODA_HOME)/libraries/share/gdal/* build/gdaldata cp $(GEODA_HOME)/../CommonDistFiles/cache.sqlite build/cache.sqlite diff --git a/BuildTools/ubuntu/build64.sh b/BuildTools/ubuntu/build64.sh index 13e51ac28..d7b565f2c 100755 --- a/BuildTools/ubuntu/build64.sh +++ b/BuildTools/ubuntu/build64.sh @@ -34,7 +34,7 @@ echo if [[ $REPLY =~ ^[Yy]$ ]]; then sudo apt-get update sudo apt-get install g++ libssl-dev libreadline6-dev zlib1g-dev libexpat1-dev dh-autoreconf libcurl4-openssl-dev libgtk-3-dev libwebkit-dev mesa-common-dev freeglut3-dev libglu1-mesa-dev libgl1-mesa-dev libgtk2.0-dev -# for 14.10, experimenting with adding librtmp-dev, libidn11-dev and libldap-dev + sudo apt-get install librtmp-dev libidn11-dev libldap-dev fi unset ORACLE_HOME diff --git a/BuildTools/ubuntu/build64_18.04.sh b/BuildTools/ubuntu/build64_18.04.sh index d05b89009..45b8eebb3 100755 --- a/BuildTools/ubuntu/build64_18.04.sh +++ b/BuildTools/ubuntu/build64_18.04.sh @@ -606,9 +606,9 @@ echo "% Building: GeoDa %" echo "%%%%%%%%%%%%%%%%%%%" { cd $GEODA_HOME - cp ../../GeoDamake.ubuntu.opt ../../GeoDamake.opt + cp ../../GeoDamake.ubuntu.1804.opt ../../GeoDamake.opt mkdir ../../o $MAKER - cp GNUmakefile1804 GNUmakefile + cp GNUmakefile GNUmakefile make app18 } diff --git a/BuildTools/ubuntu/dep/gdal-1.9.2/GDALmake64.opt b/BuildTools/ubuntu/dep/gdal-1.9.2/GDALmake64.opt index d6f915a09..ceb30f1f7 100644 --- a/BuildTools/ubuntu/dep/gdal-1.9.2/GDALmake64.opt +++ b/BuildTools/ubuntu/dep/gdal-1.9.2/GDALmake64.opt @@ -11,7 +11,7 @@ LIBTOOL = $(SHELL) $(top_builddir)/libtool ifeq ($(HAVE_LIBTOOL),yes) LIBTOOL_COMPILE_CC = $(LIBTOOL) --mode=compile --tag=CC LIBTOOL_COMPILE_CXX = $(LIBTOOL) --mode=compile --tag=CXX -LIBTOOL_LINK = $(LIBTOOL) --mode=link +LIBTOOL_LINK = $(LIBTOOL) --mode=link --tag=LD LIBTOOL_INSTALL = $(LIBTOOL) --mode=install LIBTOOL_FINISH = $(LIBTOOL) --mode=finish --silent LIBTOOL_CLEAN = $(LIBTOOL) --mode=clean @@ -128,7 +128,7 @@ INGRES_INC = # MySQL support. # HAVE_MYSQL = yes -MYSQL_LIB = /usr/lib/x86_64-linux-gnu/libmysqlclient.a -lpthread +MYSQL_LIB = $(GEODA_HOME)/temp/mysql-5.6.14/bld/libmysql/libmysqlclient.a -lpthread MYSQL_INC = -I/usr/include/mysql -I$(GEODA_HOME)/dep/mysql-5.6.14/include LIBS += $(MYSQL_LIB) @@ -279,8 +279,8 @@ HAVE_VFK = yes # Curl # CURL_SETTING = yes -CURL_LIB = -L$(GEODA_HOME)/libraries/lib -lcurl -lldap -lz -lcares -CURL_INC = -I$(GEODA_HOME)/libraries/include +CURL_LIB = -L/lib/x86_64-linux-gnu -lcurl +CURL_INC = -I/usr/include/curl # # libjson-c diff --git a/GeoDamake.opt b/GeoDamake.opt index b737dc653..1c65c44dc 100644 --- a/GeoDamake.opt +++ b/GeoDamake.opt @@ -2,37 +2,38 @@ GeoDa_ROOT = $(GEODA_HOME)/../.. TARGET = GeoDa -CC = gcc -Os -CXX = g++ -Os -arch x86_64 -LD = g++ -arch x86_64 +CC = /usr/bin/gcc +CXX = /usr/bin/g++ +LD = /usr/bin/g++ RM = /bin/rm -f -WXLIBS = $(shell $(GEODA_HOME)/libraries/bin/wx-config --libs xrc,stc,richtext,ribbon,propgrid,aui,gl,html,qa,adv,core,webview,xml,net,base) +WXLIBS = $(shell $(GEODA_HOME)/libraries/bin/wx-config --libs xrc,stc,richtext,ribbon,propgrid,aui,gl,html,webview,qa,adv,core,xml,net,base) WX_HEADER = $(shell $(GEODA_HOME)/libraries/bin/wx-config --cppflags) -LIBS = $(WXLIBS) \ - $(GEODA_HOME)/temp/CLAPACK-3.2.1/blas.a \ - $(GEODA_HOME)/temp/CLAPACK-3.2.1/F2CLIBS/libf2c.a \ - $(GEODA_HOME)/temp/CLAPACK-3.2.1/lapack.a \ - -L/usr/lib -liconv -framework opencl \ - -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl \ - $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_date_time.a \ - $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ - $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ - $(GEODA_HOME)/libraries/lib/libjson_spirit.a - +LIBS = $(WXLIBS) \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/lapack.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/libf2c.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/blas.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/tmglib.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_date_time.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ + $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -lcares \ + -L/usr/lib/x86_64-linux-gnu -lGL -lGLU -lglut -lrt -lidn -lssl -lrtmp -lwebkitgtk-1.0 +# Note: Library -lrtmp causes a missing library problem at runtime on +# Ubuntu 14.10 and later. BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 -GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 +GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -I/usr/include -CPPFLAGS = -I$(GeoDa_ROOT) $(USER_LOG) -CFLAGS = -Os -arch x86_64 -Wall -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) -CXXFLAGS = -Os -arch x86_64 -Wall $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) -LDFLAGS = -arch x86_64 +CPPFLAGS = -I$(GeoDa_ROOT) +CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) +CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) +LDFLAGS = OBJ_EXT = o diff --git a/GeoDamake.ubuntu.1804.opt b/GeoDamake.ubuntu.1804.opt new file mode 100644 index 000000000..d833b7675 --- /dev/null +++ b/GeoDamake.ubuntu.1804.opt @@ -0,0 +1,77 @@ +GeoDa_ROOT = $(GEODA_HOME)/../.. + +TARGET = GeoDa + +CC = /usr/bin/gcc-5 +CXX = /usr/bin/g++-5 +LD = /usr/bin/g++-5 +RM = /bin/rm -f + +WXLIBS = $(shell $(GEODA_HOME)/libraries/bin/wx-config --libs xrc,stc,richtext,ribbon,propgrid,aui,gl,html,webview,qa,adv,core,xml,net,base) +WX_HEADER = $(shell $(GEODA_HOME)/libraries/bin/wx-config --cppflags) + +LIBS = $(WXLIBS) \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/lapack.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/libf2c.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/blas.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/tmglib.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_date_time.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ + $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ + -L/usr/lib/x86_64-linux-gnu -lgdal -lcurl -lcares -lGL -lGLU -lglut -lrt -lidn -lssl -lrtmp -lwebkitgtk-1.0 +# Note: Library -lrtmp causes a missing library problem at runtime on +# Ubuntu 14.10 and later. + +BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost + +EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 + +GDAL_HEADER = -I/usr/include/gdal -I$(GEODA_HOME)/libraries/include + +CPPFLAGS = -I$(GeoDa_ROOT) +CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) +CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) +LDFLAGS = + +OBJ_EXT = o + +# +# generic library rules +# + +# +# gdal and ogr low level drivers use the following default rules in order to +# populate the ../o/ directory with all object and library object files +# + +O_OBJ = $(foreach file,$(OBJ),../o/$(file)) +T_OBJ = $(foreach file,$(OBJ),o/$(file)) + +../o/%.$(OBJ_EXT): %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + +../o/%.$(OBJ_EXT): %.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + +o/%.$(OBJ_EXT): %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + +o/%.$(OBJ_EXT): %.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + +%.$(OBJ_EXT): %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + +%.$(OBJ_EXT): %.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + +# +# default rules for handling subdirectories +# + +%-target: + $(MAKE) -C $* + +%-clean: + $(MAKE) -C $* clean diff --git a/GeoDamake.ubuntu.opt b/GeoDamake.ubuntu.opt index d833b7675..1c65c44dc 100644 --- a/GeoDamake.ubuntu.opt +++ b/GeoDamake.ubuntu.opt @@ -2,9 +2,9 @@ GeoDa_ROOT = $(GEODA_HOME)/../.. TARGET = GeoDa -CC = /usr/bin/gcc-5 -CXX = /usr/bin/g++-5 -LD = /usr/bin/g++-5 +CC = /usr/bin/gcc +CXX = /usr/bin/g++ +LD = /usr/bin/g++ RM = /bin/rm -f WXLIBS = $(shell $(GEODA_HOME)/libraries/bin/wx-config --libs xrc,stc,richtext,ribbon,propgrid,aui,gl,html,webview,qa,adv,core,xml,net,base) @@ -19,7 +19,8 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ - -L/usr/lib/x86_64-linux-gnu -lgdal -lcurl -lcares -lGL -lGLU -lglut -lrt -lidn -lssl -lrtmp -lwebkitgtk-1.0 + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -lcares \ + -L/usr/lib/x86_64-linux-gnu -lGL -lGLU -lglut -lrt -lidn -lssl -lrtmp -lwebkitgtk-1.0 # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. @@ -27,7 +28,7 @@ BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 -GDAL_HEADER = -I/usr/include/gdal -I$(GEODA_HOME)/libraries/include +GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -I/usr/include CPPFLAGS = -I$(GeoDa_ROOT) CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) diff --git a/rc/GdaAppResources.cpp b/rc/GdaAppResources.cpp index f39259b02..f637ca160 100644 --- a/rc/GdaAppResources.cpp +++ b/rc/GdaAppResources.cpp @@ -15580,7 +15580,7 @@ static unsigned char xml_res_file_8[] = { 22,138,34,50,137,8,19,192,47,251,204,72,98,41,90,148,202,0,0,0,0,73,69, 78,68,174,66,96,130}; -static size_t xml_res_size_9 = 401768; +static size_t xml_res_size_9 = 401763; static unsigned char xml_res_file_9[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,117,116,102,45,56,34,63,62,10,60,114,101, @@ -33581,28 +33581,28 @@ static unsigned char xml_res_file_9[] = { 116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, 116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,62,72,69,82,69,32,65,112,112,32,75,101,121,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -84,101,120,116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,78, -79,75,73,65,95,75,69,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,115,105,122,101,62,49,51,48,44,45,49,100,60,47, -115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,108,115,62,51, -60,47,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,114,111,119,115,62,50,60,47,114,111,119,115,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,118,103,97,112,62,50,60,47,118,103, +108,62,72,69,82,69,32,65,112,112,32,67,111,100,101,60,47,108,97,98,101, +108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,84,101,120,116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95, +78,79,75,73,65,95,75,69,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,51,48,44,45,49,100,60, +47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,108,115,62, +51,60,47,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,114,111,119,115,62,50,60,47,114,111,119,115,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,118,103,97,112,62,50,60,47,118,103, 97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,104,103, 97,112,62,49,48,60,47,104,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, @@ -33623,82 +33623,82 @@ static unsigned char xml_res_file_9[] = { 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, 99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108, -97,98,101,108,62,71,101,116,32,97,32,102,114,101,101,32,78,111,107,105, -97,47,72,69,82,69,32,97,99,99,111,117,110,116,58,32,60,47,108,97,98,101, -108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84, -65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,72,121,112,101,114,108,105,110,107,67,116,114,108,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,117,114,108, -62,104,116,116,112,115,58,47,47,100,101,118,101,108,111,112,101,114,46, -104,101,114,101,46,99,111,109,47,60,47,117,114,108,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,76,69,70,84,124,119,120,65,76,76,124,119,120,65,76,73,71,78, -95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +97,98,101,108,62,71,101,116,32,97,32,102,114,101,101,32,72,69,82,69,32, +97,99,99,111,117,110,116,58,32,60,47,108,97,98,101,108,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114, +105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114, +105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, +116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,72,121,112, +101,114,108,105,110,107,67,116,114,108,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,117,114,108,62,104,116,116,112,115, +58,47,47,100,101,118,101,108,111,112,101,114,46,104,101,114,101,46,99,111, +109,47,60,47,117,114,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, -122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116, -116,111,110,34,32,110,97,109,101,61,34,73,68,95,78,79,75,73,65,95,82,69, -83,69,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, -101,108,62,82,101,115,101,116,60,47,108,97,98,101,108,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67, -69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102, +32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,76,69,70,84,124, +119,120,65,76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72, +79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120, +83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109, +101,61,34,73,68,95,78,79,75,73,65,95,82,69,83,69,84,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,82,101,115,101,116, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, +73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119, +120,73,68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +108,97,98,101,108,62,79,75,60,47,108,97,98,101,108,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69, +78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32, +110,97,109,101,61,34,119,120,73,68,95,67,65,78,67,69,76,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,97,110,99, +101,108,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,71,82,79,87,124,119,120,65,76,76,60,47,102, 108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100, 101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, 32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34, -32,110,97,109,101,61,34,119,120,73,68,95,79,75,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,79,75,60,47,108,97,98, -101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, -119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, -10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,65, -78,67,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,67,97,110,99,101,108,60,47,108,97,98,101,108,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,71,82,79,87,124, -119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, -10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82, -73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73, -90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,60,116,105,116,108,101,62,66,97,115,101,109,97,112,32,67,111,110, -102,105,103,117,114,97,116,105,111,110,32,68,105,97,108,111,103,60,47,116, -105,116,108,101,62,10,32,32,32,32,60,99,101,110,116,101,114,101,100,62, -49,60,47,99,101,110,116,101,114,101,100,62,10,32,32,32,32,60,115,116,121, -108,101,62,119,120,67,65,80,84,73,79,78,124,119,120,83,89,83,84,69,77,95, -77,69,78,85,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108, -101,62,10,32,32,32,32,60,115,105,122,101,62,53,54,48,44,50,52,48,60,47, -115,105,122,101,62,10,32,32,60,47,111,98,106,101,99,116,62,10,60,47,114, -101,115,111,117,114,99,101,62,10}; +111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47, +111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47, +102,108,97,103,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,116,105,116, +108,101,62,66,97,115,101,109,97,112,32,67,111,110,102,105,103,117,114,97, +116,105,111,110,32,68,105,97,108,111,103,60,47,116,105,116,108,101,62,10, +32,32,32,32,60,99,101,110,116,101,114,101,100,62,49,60,47,99,101,110,116, +101,114,101,100,62,10,32,32,32,32,60,115,116,121,108,101,62,119,120,67, +65,80,84,73,79,78,124,119,120,83,89,83,84,69,77,95,77,69,78,85,124,119, +120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108,101,62,10,32,32,32, +32,60,115,105,122,101,62,53,54,48,44,50,52,48,60,47,115,105,122,101,62, +10,32,32,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114, +99,101,62,10}; static size_t xml_res_size_10 = 936; static unsigned char xml_res_file_10[] = { From 70212cda959773ecf855fb2a62936226a60a9a9e Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 6 Aug 2019 15:00:38 -0700 Subject: [PATCH 17/60] update scripts on ubuntu 16.04 with system software updates --- BuildTools/ubuntu/build64.sh | 32 ++------------------ BuildTools/ubuntu/create_deb.sh | 4 +-- BuildTools/ubuntu/create_deb_18.04.sh | 4 +-- BuildTools/ubuntu/package/DEBIAN/control1804 | 4 +-- BuildTools/ubuntu/package/DEBIAN/control64 | 6 ++-- GeoDamake.opt | 4 +-- GeoDamake.ubuntu.opt | 4 +-- 7 files changed, 15 insertions(+), 43 deletions(-) diff --git a/BuildTools/ubuntu/build64.sh b/BuildTools/ubuntu/build64.sh index d7b565f2c..58524fb4f 100755 --- a/BuildTools/ubuntu/build64.sh +++ b/BuildTools/ubuntu/build64.sh @@ -34,7 +34,7 @@ echo if [[ $REPLY =~ ^[Yy]$ ]]; then sudo apt-get update sudo apt-get install g++ libssl-dev libreadline6-dev zlib1g-dev libexpat1-dev dh-autoreconf libcurl4-openssl-dev libgtk-3-dev libwebkit-dev mesa-common-dev freeglut3-dev libglu1-mesa-dev libgl1-mesa-dev libgtk2.0-dev - sudo apt-get install librtmp-dev libidn11-dev libldap-dev + sudo apt-get install librtmp-dev libidn11-dev libldap-dev fi unset ORACLE_HOME @@ -141,35 +141,7 @@ install_library c-ares-1.10.0 http://c-ares.haxx.se/download/c-ares-1.10.0.tar.g ######################################################################### # install cURL ######################################################################### - -LIB_NAME=curl-7.46.0 -LIB_CHECKER=libcurl.a -LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/curl-7.46.0.zip -LIB_FILENAME=curl-7.46.0.zip -echo $LIB_NAME - -cd $DOWNLOAD_HOME - -if ! [ -d "$LIB_NAME" ] ; then - curl -O $LIB_URL - unzip $LIB_FILENAME -fi - -if ! [ -d "$LIB_NAME" ]; then - tar -xf $LIB_FILENAME -fi - -if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - cd $LIB_NAME - ./configure --enable-ares=$PREFIX CC="$GDA_CC" CFLAGS="$GDA_CFLAGS" CXX="$GDA_CXX" CXXFLAGS="$GDA_CXXFLAGS" LDFLAGS="$GDA_LDFLAGS" --prefix=$PREFIX --without-librtmp - $MAKER - make install -fi - -if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit -fi +# libcurl4-openssl-dev is used instead ######################################################################### # install Xerces diff --git a/BuildTools/ubuntu/create_deb.sh b/BuildTools/ubuntu/create_deb.sh index 05075e805..7786b421a 100755 --- a/BuildTools/ubuntu/create_deb.sh +++ b/BuildTools/ubuntu/create_deb.sh @@ -39,7 +39,7 @@ fi rm -f *.deb if [ $# -ne 1 ]; then - dpkg -b product/ geoda_1.12-1xenial1.deb + dpkg -b product/ geoda_1.14-1xenial1.deb else - dpkg -b product/ geoda_1.12-1$1.deb + dpkg -b product/ geoda_1.14-1$1.deb fi diff --git a/BuildTools/ubuntu/create_deb_18.04.sh b/BuildTools/ubuntu/create_deb_18.04.sh index 84dc7bff9..d23e528fb 100755 --- a/BuildTools/ubuntu/create_deb_18.04.sh +++ b/BuildTools/ubuntu/create_deb_18.04.sh @@ -39,7 +39,7 @@ fi rm -f *.deb if [ $# -ne 1 ]; then - dpkg -b product/ geoda_1.12-1bionic1.deb + dpkg -b product/ geoda_1.14-1bionic1.deb else - dpkg -b product/ geoda_1.12-1$1.deb + dpkg -b product/ geoda_1.14-1$1.deb fi diff --git a/BuildTools/ubuntu/package/DEBIAN/control1804 b/BuildTools/ubuntu/package/DEBIAN/control1804 index 74c6cb3ad..a58bb23f4 100644 --- a/BuildTools/ubuntu/package/DEBIAN/control1804 +++ b/BuildTools/ubuntu/package/DEBIAN/control1804 @@ -1,9 +1,9 @@ Package: geoda -Version: 1.12-1bionic1 +Version: 1.14-1bionic1 Architecture: amd64 Priority: optional Section: graphics -Installed-Size: 88128 +Installed-Size: 12179512 Depends: libcurl4-openssl-dev, libgdal-dev, zlib1g, libexpat1, freeglut3, libreadline7, libgtk-3-0, libc-dev-bin, libssl1.0.0, libwebkitgtk-1.0-0 Maintainer: Luc Anselin < anselin@uchicago.edu > Provides: geoda diff --git a/BuildTools/ubuntu/package/DEBIAN/control64 b/BuildTools/ubuntu/package/DEBIAN/control64 index e661ae1ee..167c37026 100644 --- a/BuildTools/ubuntu/package/DEBIAN/control64 +++ b/BuildTools/ubuntu/package/DEBIAN/control64 @@ -1,10 +1,10 @@ Package: geoda -Version: 1.12-1xenial1 +Version: 1.14-1xenial1 Architecture: amd64 Priority: optional Section: graphics -Installed-Size: 88128 -Depends: zlib1g, libexpat1, freeglut3, libreadline6, libgtk-3-0, libc-dev-bin, libssl1.0.0, libwebkitgtk-1.0-0 +Installed-Size: 20857476 +Depends: libcurl4-openssl-dev, zlib1g, libexpat1, freeglut3, libreadline6, libgtk-3-0, libc-dev-bin, libssl1.0.0, libwebkitgtk-1.0-0 Maintainer: Luc Anselin < anselin@uchicago.edu > Provides: geoda Homepage: http://spatial.uchicago.edu diff --git a/GeoDamake.opt b/GeoDamake.opt index 1c65c44dc..f512efc6c 100644 --- a/GeoDamake.opt +++ b/GeoDamake.opt @@ -19,8 +19,8 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ - -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -lcares \ - -L/usr/lib/x86_64-linux-gnu -lGL -lGLU -lglut -lrt -lidn -lssl -lrtmp -lwebkitgtk-1.0 + -L$(GEODA_HOME)/libraries/lib -lgdal \ + -L/usr/lib/x86_64-linux-gnu -lcurl -lGL -lGLU -lglut -lrt -lidn -lssl -lrtmp -lwebkitgtk-1.0 # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. diff --git a/GeoDamake.ubuntu.opt b/GeoDamake.ubuntu.opt index 1c65c44dc..f512efc6c 100644 --- a/GeoDamake.ubuntu.opt +++ b/GeoDamake.ubuntu.opt @@ -19,8 +19,8 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ - -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -lcares \ - -L/usr/lib/x86_64-linux-gnu -lGL -lGLU -lglut -lrt -lidn -lssl -lrtmp -lwebkitgtk-1.0 + -L$(GEODA_HOME)/libraries/lib -lgdal \ + -L/usr/lib/x86_64-linux-gnu -lcurl -lGL -lGLU -lglut -lrt -lidn -lssl -lrtmp -lwebkitgtk-1.0 # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. From 2a6e91b6ca43a66fda9d296ff4121ada9d145092 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Wed, 7 Aug 2019 10:20:43 -0700 Subject: [PATCH 18/60] enhancement: let user to config if creating csvt file when saving csv file CSVT file is to used to describe the type of each column of the layer and its optional width and precision in CSV file. It causes many issues in GeoDa, especially when original CSV file has been modified in other apps (e.g. Excel). This fix will add a perference option "Create CSVT file when saving CSV", and it is set to "false" by default. --- DialogTools/CsvFieldConfDlg.cpp | 2 +- DialogTools/PreferenceDlg.cpp | 35 ++++++++++++++++++++++++++ DialogTools/PreferenceDlg.h | 4 ++- GdaConst.cpp | 1 + GdaConst.h | 1 + Project.cpp | 12 +++++++-- ShapeOperations/OGRDatasourceProxy.cpp | 2 +- 7 files changed, 52 insertions(+), 5 deletions(-) diff --git a/DialogTools/CsvFieldConfDlg.cpp b/DialogTools/CsvFieldConfDlg.cpp index 6597f5c5d..378630f9c 100644 --- a/DialogTools/CsvFieldConfDlg.cpp +++ b/DialogTools/CsvFieldConfDlg.cpp @@ -640,7 +640,7 @@ void CsvFieldConfDlg::OnOkClick( wxCommandEvent& event ) { wxLogMessage("CsvFieldConfDlg::OnOkClick()"); - WriteCSVT(); + //WriteCSVT(); EndDialog(wxID_OK); } diff --git a/DialogTools/PreferenceDlg.cpp b/DialogTools/PreferenceDlg.cpp index 43576c38a..958d83371 100644 --- a/DialogTools/PreferenceDlg.cpp +++ b/DialogTools/PreferenceDlg.cpp @@ -396,6 +396,13 @@ void PreferenceDlg::Init() grid_sizer2->Add(txt25, 0, wxALIGN_RIGHT); txt25->Bind(wxEVT_TEXT, &PreferenceDlg::OnDisplayDecimal, this); + wxString lbl27 = _("Create CSVT when saving CSV file:"); + wxStaticText* lbl_txt27 = new wxStaticText(gdal_page, wxID_ANY, lbl27); + cbox_csvt = new wxCheckBox(gdal_page, wxID_ANY, "", pos); + grid_sizer2->Add(lbl_txt27, 1, wxEXPAND); + grid_sizer2->Add(cbox_csvt, 0, wxALIGN_RIGHT); + cbox_csvt->Bind(wxEVT_CHECKBOX, &PreferenceDlg::OnCreateCSVT, this); + grid_sizer2->AddGrowableCol(0, 1); wxBoxSizer *nb_box2 = new wxBoxSizer(wxVERTICAL); @@ -432,6 +439,7 @@ void PreferenceDlg::Init() void PreferenceDlg::OnReset(wxCommandEvent& ev) { + GdaConst::gda_create_csvt = false; GdaConst::gda_use_gpu = false; GdaConst::gda_ui_language = 0; GdaConst::gda_eigen_tol = 1.0E-8; @@ -497,6 +505,7 @@ void PreferenceDlg::OnReset(wxCommandEvent& ev) ogr_adapt.AddEntry("gda_use_gpu", "0"); ogr_adapt.AddEntry("gda_displayed_decimals", "6"); ogr_adapt.AddEntry("gda_enable_set_transparency_windows", "0"); + ogr_adapt.AddEntry("gda_create_csvt", "0"); } void PreferenceDlg::SetupControls() @@ -549,6 +558,8 @@ void PreferenceDlg::SetupControls() cbox_gpu->SetValue(GdaConst::gda_use_gpu); cbox26->SetValue(GdaConst::gda_enable_set_transparency_windows); + + cbox_csvt->SetValue(GdaConst::gda_create_csvt); } void PreferenceDlg::ReadFromCache() @@ -792,6 +803,18 @@ void PreferenceDlg::ReadFromCache() } } + vector gda_create_csvt = ogr_adapt.GetHistory("gda_create_csvt"); + if (!gda_create_csvt.empty()) { + long sel_l = 0; + wxString sel = gda_create_csvt[0]; + if (sel.ToLong(&sel_l)) { + if (sel_l == 1) + GdaConst::gda_create_csvt = true; + else if (sel_l == 0) + GdaConst::gda_create_csvt = false; + } + } + vector gda_disp_decimals = ogr_adapt.GetHistory("gda_displayed_decimals"); if (!gda_disp_decimals.empty()) { long sel_l = 0; @@ -1158,3 +1181,15 @@ void PreferenceDlg::OnUseGPU(wxCommandEvent& ev) OGRDataAdapter::GetInstance().AddEntry("gda_use_gpu", "1"); } } +void PreferenceDlg::OnCreateCSVT(wxCommandEvent& ev) +{ + int sel = ev.GetSelection(); + if (sel == 0) { + GdaConst::gda_create_csvt = false; + OGRDataAdapter::GetInstance().AddEntry("gda_create_csvt", "0"); + } + else { + GdaConst::gda_create_csvt = true; + OGRDataAdapter::GetInstance().AddEntry("gda_create_csvt", "1"); + } +} diff --git a/DialogTools/PreferenceDlg.h b/DialogTools/PreferenceDlg.h index b9267c48c..d13efe864 100644 --- a/DialogTools/PreferenceDlg.h +++ b/DialogTools/PreferenceDlg.h @@ -113,6 +113,8 @@ class PreferenceDlg : public wxDialog wxCheckBox* cbox_gpu; // transp wxCheckBox* cbox26; + // csvt + wxCheckBox* cbox_csvt; void Init(); void SetupControls(); @@ -144,7 +146,7 @@ class PreferenceDlg : public wxDialog void OnPowerEpsEnter(wxCommandEvent& ev); void OnUseGPU(wxCommandEvent& ev); - + void OnCreateCSVT(wxCommandEvent& ev); void OnEnableTransparencyWin(wxCommandEvent& ev); void OnReset(wxCommandEvent& ev); diff --git a/GdaConst.cpp b/GdaConst.cpp index 5af5a22b6..59335ec73 100644 --- a/GdaConst.cpp +++ b/GdaConst.cpp @@ -319,6 +319,7 @@ wxFont* GdaConst::small_font = 0; wxFont* GdaConst::medium_font = 0; wxFont* GdaConst::large_font = 0; +bool GdaConst::gda_create_csvt = false; bool GdaConst::gda_enable_set_transparency_windows = false; int GdaConst::default_display_decimals = 6; // move in preference bool GdaConst::gda_use_gpu = false; diff --git a/GdaConst.h b/GdaConst.h index fff5e238f..327651685 100644 --- a/GdaConst.h +++ b/GdaConst.h @@ -241,6 +241,7 @@ class GdaConst { static const wxString gda_lbl_2sigma; // Preferences + static bool gda_create_csvt; static wxString gda_basemap_sources; static bool gda_use_gpu; static int gda_ui_language; diff --git a/Project.cpp b/Project.cpp index 8509851d8..283271190 100644 --- a/Project.cpp +++ b/Project.cpp @@ -1553,8 +1553,16 @@ bool Project::InitFromOgrLayer() OGRDataAdapter& ogr_adapter = OGRDataAdapter::GetInstance(); // ReadLayer() is running in a seperate thread. // This gives us a chance to get its progress for a Progress window. - layer_proxy = ogr_adapter.T_ReadLayer(datasource_name, ds_type, layername); - OGRwkbGeometryType eGType = layer_proxy->GetShapeType(); + try { + layer_proxy = ogr_adapter.T_ReadLayer(datasource_name, ds_type, layername); + } catch (GdaException& e) { + // remove this datasource_proxy from cache + ogr_adapter.RemoveDatasourceProxy(datasource_name); + throw e; + return false; + } + + OGRwkbGeometryType eGType = layer_proxy->GetShapeType(); if ( eGType == wkbLineString || eGType == wkbMultiLineString ) { open_err_msg << _("GeoDa does not support datasource with line data at this time. Please choose a datasource with either point or polygon data."); diff --git a/ShapeOperations/OGRDatasourceProxy.cpp b/ShapeOperations/OGRDatasourceProxy.cpp index 3fec1f9ff..cfc883c32 100644 --- a/ShapeOperations/OGRDatasourceProxy.cpp +++ b/ShapeOperations/OGRDatasourceProxy.cpp @@ -364,7 +364,7 @@ OGRDatasourceProxy::CreateLayer(wxString layer_name, opt << cpg_encode; papszLCO = CSLAddString(papszLCO, opt.c_str()); } - } else if (ds_type == GdaConst::ds_csv) { + } else if (ds_type == GdaConst::ds_csv && GdaConst::gda_create_csvt) { wxString opt = "CREATE_CSVT=YES"; papszLCO = CSLAddString(papszLCO, opt.c_str()); } From f562e44287f27732a76719f62440659129b8ddd8 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Wed, 7 Aug 2019 11:18:09 -0700 Subject: [PATCH 19/60] enhancement: handle csv if column names in first row are empty --- DialogTools/CsvFieldConfDlg.cpp | 4 ++-- DialogTools/CsvFieldConfDlg.h | 2 +- GdaConst.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DialogTools/CsvFieldConfDlg.cpp b/DialogTools/CsvFieldConfDlg.cpp index 378630f9c..fad5322e1 100644 --- a/DialogTools/CsvFieldConfDlg.cpp +++ b/DialogTools/CsvFieldConfDlg.cpp @@ -77,7 +77,7 @@ CsvFieldConfDlg::CsvFieldConfDlg(wxWindow* parent, wxString prmop_txt = _("(Optional) You can change the data type for a field:"); wxString csvt_path = filepath + "t"; - PrereadCSV(); + PrereadCSV(HEADERS); // Create controls UI wxPanel* panel = new wxPanel(this); @@ -425,7 +425,7 @@ void CsvFieldConfDlg::UpdateFieldGrid( ) for (int i=0; iSetCellValue(i, 0, col_name); - + fieldGrid->SetReadOnly(i, 0); wxString strChoices[7] = {"Real", "Integer", "Integer64","String", "Date", "Time", "DateTime"}; int COL_T = 1; wxGridCellChoiceEditor* m_editor = new wxGridCellChoiceEditor(7, strChoices, false); diff --git a/DialogTools/CsvFieldConfDlg.h b/DialogTools/CsvFieldConfDlg.h index b920a5242..e9109d5f8 100644 --- a/DialogTools/CsvFieldConfDlg.h +++ b/DialogTools/CsvFieldConfDlg.h @@ -68,7 +68,7 @@ class CsvFieldConfDlg: public wxDialog void ReadCSVT(); void WriteCSVT(); - void PrereadCSV(int HEADERS=2); + void PrereadCSV(int HEADERS=1); void UpdateFieldGrid(); void UpdatePreviewGrid(); diff --git a/GdaConst.cpp b/GdaConst.cpp index 59335ec73..2d0d2399b 100644 --- a/GdaConst.cpp +++ b/GdaConst.cpp @@ -346,7 +346,7 @@ bool GdaConst::disable_crash_detect = false; bool GdaConst::disable_auto_upgrade = false; int GdaConst::plot_transparency_highlighted = 255; int GdaConst::plot_transparency_unhighlighted = 50; -int GdaConst::gda_ogr_csv_header = 2; +int GdaConst::gda_ogr_csv_header = 1; wxString GdaConst::gda_display_datetime_format = ""; std::vector GdaConst::gda_datetime_formats(10); wxString GdaConst::gda_datetime_formats_str = "%Y-%m-%d %H:%M:%S,%Y/%m/%d %H:%M:%S,%d.%m.%Y %H:%M:%S,%m/%d/%Y %H:%M:%S,%Y-%m-%d,%m/%d/%Y,%Y/%m/%d,%H:%M:%S,%H:%M,%Y/%m/%d %H:%M %p"; From af387057eb646b5fde8dc541bae849f7150ee733 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Wed, 7 Aug 2019 11:18:31 -0700 Subject: [PATCH 20/60] Update version.h --- version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.h b/version.h index 42f1c6c24..36cfc228d 100644 --- a/version.h +++ b/version.h @@ -5,7 +5,7 @@ namespace Gda { const int version_subbuild = 0; const int version_year = 2019; const int version_month = 8; - const int version_day = 1; + const int version_day = 7; const int version_night = 0; const int version_type = 2; // 0: alpha, 1: beta, 2: release } From 93f94aae3c751ebe5f65f56652775b07dd189e43 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Thu, 8 Aug 2019 10:08:08 -0700 Subject: [PATCH 21/60] enhancement: handle csv with lat/lon --- DialogTools/CsvFieldConfDlg.cpp | 14 ++++++++++++++ GdaConst.cpp | 4 +++- GdaConst.h | 2 ++ ShapeOperations/OGRDatasourceProxy.cpp | 10 ++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/DialogTools/CsvFieldConfDlg.cpp b/DialogTools/CsvFieldConfDlg.cpp index fad5322e1..40380ebe1 100644 --- a/DialogTools/CsvFieldConfDlg.cpp +++ b/DialogTools/CsvFieldConfDlg.cpp @@ -641,6 +641,20 @@ void CsvFieldConfDlg::OnOkClick( wxCommandEvent& event ) wxLogMessage("CsvFieldConfDlg::OnOkClick()"); //WriteCSVT(); + int lon_sel = lng_box->GetSelection(); + if (lon_sel > -1) { + wxString lon_name = lng_box->GetString(lon_sel); + if (lon_name.IsEmpty()==false) { + GdaConst::gda_ogr_csv_y_name = lon_name; + } + } + int lat_sel = lat_box->GetSelection(); + if (lat_sel > -1) { + wxString lat_name = lat_box->GetString(lat_sel); + if (lat_name.IsEmpty()==false) { + GdaConst::gda_ogr_csv_x_name = lat_name; + } + } EndDialog(wxID_OK); } diff --git a/GdaConst.cpp b/GdaConst.cpp index 2d0d2399b..9ff953584 100644 --- a/GdaConst.cpp +++ b/GdaConst.cpp @@ -346,7 +346,9 @@ bool GdaConst::disable_crash_detect = false; bool GdaConst::disable_auto_upgrade = false; int GdaConst::plot_transparency_highlighted = 255; int GdaConst::plot_transparency_unhighlighted = 50; -int GdaConst::gda_ogr_csv_header = 1; +int GdaConst::gda_ogr_csv_header = 1; +wxString GdaConst::gda_ogr_csv_x_name = ""; +wxString GdaConst::gda_ogr_csv_y_name = ""; wxString GdaConst::gda_display_datetime_format = ""; std::vector GdaConst::gda_datetime_formats(10); wxString GdaConst::gda_datetime_formats_str = "%Y-%m-%d %H:%M:%S,%Y/%m/%d %H:%M:%S,%d.%m.%Y %H:%M:%S,%m/%d/%Y %H:%M:%S,%Y-%m-%d,%m/%d/%Y,%Y/%m/%d,%H:%M:%S,%H:%M,%Y/%m/%d %H:%M %p"; diff --git a/GdaConst.h b/GdaConst.h index 327651685..35195c656 100644 --- a/GdaConst.h +++ b/GdaConst.h @@ -272,6 +272,8 @@ class GdaConst { static wxString gda_display_datetime_format; static int gda_ogr_csv_header; static bool gda_enable_set_transparency_windows; + static wxString gda_ogr_csv_x_name; + static wxString gda_ogr_csv_y_name; static const wxSize map_default_size; static const int map_default_legend_width; diff --git a/ShapeOperations/OGRDatasourceProxy.cpp b/ShapeOperations/OGRDatasourceProxy.cpp index cfc883c32..01547d70d 100644 --- a/ShapeOperations/OGRDatasourceProxy.cpp +++ b/ShapeOperations/OGRDatasourceProxy.cpp @@ -66,6 +66,16 @@ OGRDatasourceProxy::OGRDatasourceProxy(wxString _ds_name, GdaConst::DataSourceTy } else if (GdaConst::gda_ogr_csv_header == 1) { papszOpenOptions = CSLAddString(papszOpenOptions, "HEADERS=YES"); } + if (GdaConst::gda_ogr_csv_x_name.IsEmpty() == false) { + wxString opt = "X_POSSIBLE_NAMES="; + opt << GdaConst::gda_ogr_csv_x_name; + papszOpenOptions = CSLAddString(papszOpenOptions, opt.c_str()); + } + if (GdaConst::gda_ogr_csv_y_name.IsEmpty() == false) { + wxString opt = "Y_POSSIBLE_NAMES="; + opt << GdaConst::gda_ogr_csv_y_name; + papszOpenOptions = CSLAddString(papszOpenOptions, opt.c_str()); + } } ds = (GDALDataset*) GDALOpenEx(pszDsPath, GDAL_OF_VECTOR|GDAL_OF_UPDATE, NULL, papszOpenOptions, NULL); From 9d9124a756b02d06823d12ab8205bcd2becd55c2 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Fri, 9 Aug 2019 12:58:03 -0700 Subject: [PATCH 22/60] enhancement for windows (go through lab notes) --- DialogTools/CatClassifDlg.cpp | 2 +- Explore/ColocationMapView.h | 2 +- Explore/MapLayoutView.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DialogTools/CatClassifDlg.cpp b/DialogTools/CatClassifDlg.cpp index bc6e6862f..65aca5718 100644 --- a/DialogTools/CatClassifDlg.cpp +++ b/DialogTools/CatClassifDlg.cpp @@ -1080,7 +1080,7 @@ void CatClassifPanel::OnColorSchemeChoice(wxCommandEvent& event) cat_color_button[i]->SetBackgroundColour(cc_data.colors[0]); } } - + cc_data.cat_classif_type = CatClassification::custom; InitFromCCData(); UpdateCCState(); } diff --git a/Explore/ColocationMapView.h b/Explore/ColocationMapView.h index a3f2343d7..5a65cda16 100644 --- a/Explore/ColocationMapView.h +++ b/Explore/ColocationMapView.h @@ -111,7 +111,7 @@ class ColocationMapCanvas : public MapCanvas virtual void TimeSyncVariableToggle(int var_index); virtual void UpdateStatusBar(); - vector& select_vars; + vector select_vars; vector co_vals; vector co_clrs; vector co_lbls; diff --git a/Explore/MapLayoutView.cpp b/Explore/MapLayoutView.cpp index 53deec8c5..01aa79097 100644 --- a/Explore/MapLayoutView.cpp +++ b/Explore/MapLayoutView.cpp @@ -193,10 +193,10 @@ void CanvasExportSettingDialog::setTextValue(wxTextCtrl* tc, double val) wxString tmp; if (unit_choice == 0) { tmp = wxString::Format("%d", (int)(val) ); - tc->SetLabel(tmp); + tc->ChangeValue(tmp); } else { tmp = wxString::Format("%.2f", val); - tc->SetLabel(tmp); + tc->ChangeValue(tmp); } if (tc == tc1) { tc1_value = val; From 5bdf17bf984957258f0ddd256fdcf33c871b8ca9 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Fri, 9 Aug 2019 16:54:40 -0700 Subject: [PATCH 23/60] try to avoid hanging when basemap tiles are slow to download --- Explore/Basemap.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Explore/Basemap.cpp b/Explore/Basemap.cpp index e50738846..b2d3b3696 100644 --- a/Explore/Basemap.cpp +++ b/Explore/Basemap.cpp @@ -177,7 +177,8 @@ Basemap::Basemap(BasemapItem& _basemap_item, isTileDrawn = false; wxInitAllImageHandlers(); - + curl_global_init(CURL_GLOBAL_ALL); + GetEasyZoomLevel(); SetupMapType(basemap_item); } @@ -237,7 +238,7 @@ void Basemap::SetupMapType(BasemapItem& _basemap_item) basemapUrl.Find("JPEG") != wxNOT_FOUND) { imageSuffix = ".jpeg"; } else { - imageSuffix = ".jpeg"; + imageSuffix = ".png"; } // if ( !hdpi ) { // basemapUrl.Replace("@2x", ""); @@ -661,7 +662,8 @@ void Basemap::DownloadTile(int x, int y) //curl_easy_setopt(image, CURLOPT_FOLLOWLOCATION, 1); curl_easy_setopt(image, CURLOPT_SSL_VERIFYHOST, 0); curl_easy_setopt(image, CURLOPT_SSL_VERIFYPEER, 0); - curl_easy_setopt(image, CURLOPT_CONNECTTIMEOUT, 10L); + curl_easy_setopt(image, CURLOPT_CONNECTTIMEOUT, 2L); + curl_easy_setopt(image, CURLOPT_TIMEOUT, 2L); curl_easy_setopt(image, CURLOPT_NOSIGNAL, 1L); // Grab image From 8594910c8df543d7ccf08ae23f98bafd35b02f90 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Fri, 9 Aug 2019 16:55:05 -0700 Subject: [PATCH 24/60] update version --- version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.h b/version.h index 36cfc228d..87cc93937 100644 --- a/version.h +++ b/version.h @@ -5,7 +5,7 @@ namespace Gda { const int version_subbuild = 0; const int version_year = 2019; const int version_month = 8; - const int version_day = 7; + const int version_day = 9; const int version_night = 0; const int version_type = 2; // 0: alpha, 1: beta, 2: release } From a297732a2f90d4a52ff10834a279b3e954d0c868 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 12 Aug 2019 11:52:53 -0700 Subject: [PATCH 25/60] #1923 reorg basemap options Add subdomains to load tiles from different server in parallel --- Explore/Basemap.cpp | 62 +++++++++++++++++++++++++++++++++++++-------- Explore/Basemap.h | 8 +++--- GdaConst.cpp | 35 +++++++++++-------------- 3 files changed, 70 insertions(+), 35 deletions(-) diff --git a/Explore/Basemap.cpp b/Explore/Basemap.cpp index b2d3b3696..76174d38d 100644 --- a/Explore/Basemap.cpp +++ b/Explore/Basemap.cpp @@ -20,7 +20,8 @@ #include #include #include -#include "stdio.h" +#include +#include #include #include #include @@ -150,7 +151,6 @@ XYFraction::XYFraction(double _x, double _y) yfrac = modf(_y, &yint); } - Basemap::Basemap(BasemapItem& _basemap_item, Screen* _screen, MapLayer* _map, @@ -238,7 +238,14 @@ void Basemap::SetupMapType(BasemapItem& _basemap_item) basemapUrl.Find("JPEG") != wxNOT_FOUND) { imageSuffix = ".jpeg"; } else { - imageSuffix = ".png"; + if (basemapUrl.Find("ArcGIS")) { + imageSuffix = ".jpeg"; + } else if (basemapUrl.Find("autonavi")) { + imageSuffix = ".png"; + } else { + imageSuffix = ".png"; + } + } // if ( !hdpi ) { // basemapUrl.Replace("@2x", ""); @@ -637,7 +644,7 @@ void Basemap::DownloadTile(int x, int y) wxString filepathStr = GetTilePath(x, y); std::string filepath = GET_ENCODED_FILENAME(filepathStr); - if (!wxFileExists(filepathStr)) { + if (!wxFileExists(filepathStr) || wxFileName::GetSize(filepathStr) == 0) { // otherwise, download the image wxString urlStr = GetTileUrl(x, y); char* url = new char[urlStr.length() + 1]; @@ -654,16 +661,15 @@ void Basemap::DownloadTile(int x, int y) #else fp = fopen(GET_ENCODED_FILENAME(filepathStr), "wb"); #endif - if (fp) - { + if (fp) { curl_easy_setopt(image, CURLOPT_URL, url); curl_easy_setopt(image, CURLOPT_WRITEFUNCTION, curlCallback); curl_easy_setopt(image, CURLOPT_WRITEDATA, fp); //curl_easy_setopt(image, CURLOPT_FOLLOWLOCATION, 1); curl_easy_setopt(image, CURLOPT_SSL_VERIFYHOST, 0); curl_easy_setopt(image, CURLOPT_SSL_VERIFYPEER, 0); - curl_easy_setopt(image, CURLOPT_CONNECTTIMEOUT, 2L); - curl_easy_setopt(image, CURLOPT_TIMEOUT, 2L); + curl_easy_setopt(image, CURLOPT_CONNECTTIMEOUT, 1L); + curl_easy_setopt(image, CURLOPT_TIMEOUT, 1L); curl_easy_setopt(image, CURLOPT_NOSIGNAL, 1L); // Grab image @@ -673,9 +679,7 @@ void Basemap::DownloadTile(int x, int y) fclose(fp); } } - delete[] url; - } isTileReady = false; // notice template_canvas to draw //canvas->Refresh(true); @@ -734,6 +738,42 @@ void Basemap::LatLngToXY(double lng, double lat, int &x, int &y) x = (int)(xx * 256 - leftP) - offsetX; } +wxString Basemap::GetRandomSubdomain(wxString url) +{ + unsigned int initseed = (unsigned int) time(0); + srand(initseed); + + std::vector domains; + if (url.Find("openstreetmap") != wxNOT_FOUND || + url.Find("carto") != wxNOT_FOUND || + url.Find("wmflabs") != wxNOT_FOUND || + url.Find("fastly") != wxNOT_FOUND) + { + domains.push_back("a"); + domains.push_back("b"); + domains.push_back("c"); + } else if (url.Find("here") != wxNOT_FOUND || + url.Find("bdimg") != wxNOT_FOUND) { + domains.push_back("1"); + domains.push_back("2"); + domains.push_back("3"); + domains.push_back("4"); + } else if (url.Find("autonavi") != wxNOT_FOUND) { + domains.push_back("01"); + domains.push_back("02"); + domains.push_back("03"); + domains.push_back("04"); + } else { + return wxEmptyString; + } + + int n_domains = domains.size(); + int idx = rand() % n_domains; + if (idx < 0 || idx >= n_domains) return wxEmptyString; + + return domains[idx]; +} + wxString Basemap::GetTileUrl(int x, int y) { wxString url = basemapUrl; @@ -742,6 +782,8 @@ wxString Basemap::GetTileUrl(int x, int y) url.Replace("{y}", wxString::Format("%d", y)); url.Replace("HERE_APP_ID", nokia_id); url.Replace("HERE_APP_CODE", nokia_code); + url.Replace("{s}", GetRandomSubdomain(url)); + std::cout << url.c_str() << std::endl; return url; } diff --git a/Explore/Basemap.h b/Explore/Basemap.h index 5b2857957..552d9ce9d 100644 --- a/Explore/Basemap.h +++ b/Explore/Basemap.h @@ -333,18 +333,16 @@ namespace Gda { boost::thread* downloadThread; boost::thread* downloadThread1; + wxString GetRandomSubdomain(wxString url); int GetOptimalZoomLevel(double paddingFactor=1.2); int GetEasyZoomLevel(); - void GetTiles(); void _GetTiles(int start_x, int start_y, int end_x, int end_y); void _GetTiles(int x, int start_y, int end_y); - void DownloadTile(int x, int y); - - bool _HasInternet(); + public: - Basemap(){} + Basemap() {} Basemap(BasemapItem& basemap_item, Screen* _screen, MapLayer* _map, diff --git a/GdaConst.cpp b/GdaConst.cpp index 9ff953584..c99de3841 100644 --- a/GdaConst.cpp +++ b/GdaConst.cpp @@ -353,33 +353,28 @@ wxString GdaConst::gda_display_datetime_format = ""; std::vector GdaConst::gda_datetime_formats(10); wxString GdaConst::gda_datetime_formats_str = "%Y-%m-%d %H:%M:%S,%Y/%m/%d %H:%M:%S,%d.%m.%Y %H:%M:%S,%m/%d/%Y %H:%M:%S,%Y-%m-%d,%m/%d/%Y,%Y/%m/%d,%H:%M:%S,%H:%M,%Y/%m/%d %H:%M %p"; wxString GdaConst::gda_basemap_sources = -"Carto.Light,https://a.basemaps.cartocdn.com/light_all/{z}/{x}/{y}@2x.png" -"\nCarto.Dark,https://a.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}@2x.png" -"\nCarto.Light(No Label),https://a.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}@2x.png" -"\nCarto.Dark(No Label),https://a.basemaps.cartocdn.com/dark_nolabels/{z}/{x}/{y}@2x.png" +"Carto.Light,https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}@2x.png" +"\nCarto.Dark,https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}@2x.png" +"\nCarto.Light(No Label),https://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}@2x.png" +"\nCarto.Dark(No Label),https://{s}.basemaps.cartocdn.com/dark_nolabels/{z}/{x}/{y}@2x.png" "\nESRI.WorldStreetMap,https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}" "\nESRI.WorldTopoMap,https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}" "\nESRI.WorldTerrain,https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/{z}/{y}/{x}" "\nESRI.Ocean,https://server.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer/tile/{z}/{y}/{x}" -"\nHERE.Day,http://1.base.maps.api.here.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?app_id=HERE_APP_ID&app_code=HERE_APP_CODE" -"\nHERE.Night,http://4.base.maps.api.here.com/maptile/2.1/maptile/newest/normal.night/{z}/{x}/{y}/256/png8?app_id=HERE_APP_ID&app_code=HERE_APP_CODE" -"\nHERE.Hybrid,http://3.aerial.maps.api.here.com/maptile/2.1/maptile/newest/hybrid.day/{z}/{x}/{y}/256/png8?app_id=HERE_APP_ID&app_code=HERE_APP_CODE" -"\nHERE.Satellite,http://4.aerial.maps.api.here.com/maptile/2.1/maptile/newest/satellite.day/{z}/{x}/{y}/256/png8?app_id=HERE_APP_ID&app_code=HERE_APP_CODE" -"\nOpenStreetMap.Mapnik,https://a.tile.openstreetmap.org/{z}/{x}/{y}.png" -"\nOpenStreetMap.BlackAndWhite,http://a.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png" -"\nStamen.Toner,https://stamen-tiles-a.a.ssl.fastly.net/toner/{z}/{x}/{y}@2x.png" -"\nStamen.TonerLite,https://stamen-tiles-a.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}@2x.png" -"\nStamen.Watercolor,https://stamen-tiles-a.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.jpg" -"\nOther (China).AMAP,http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}" -"\nOther (China).AMAP(Satellite),http://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}" -"\nOther (China).AMAP(SatelliteLabel),http://webst01.is.autonavi.com/appmaptile?style=8&x={x}&y={y}&z={z}" -"\nOther (China).TianDiTu,http://t0.tianditu.cn/DataServer?T=vec_w&X={x}&Y={y}&L={z}" -"\nOther (China).TianDiTu(Satellite),http://t0.tianditu.cn/DataServer?T=cia_w&X={x}&Y={y}&L={z}" -"\nOther (China).TianDiTu(Terrain),http://t0.tianditu.cn/DataServer?T=cta_w&X={x}&Y={y}&L={z}" +"\nHERE.Day,http://{s}.base.maps.api.here.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?app_id=HERE_APP_ID&app_code=HERE_APP_CODE" +"\nHERE.Night,http://{s}.base.maps.api.here.com/maptile/2.1/maptile/newest/normal.night/{z}/{x}/{y}/256/png8?app_id=HERE_APP_ID&app_code=HERE_APP_CODE" +"\nHERE.Hybrid,http://{s}.aerial.maps.api.here.com/maptile/2.1/maptile/newest/hybrid.day/{z}/{x}/{y}/256/png8?app_id=HERE_APP_ID&app_code=HERE_APP_CODE" +"\nHERE.Satellite,http://{s}.aerial.maps.api.here.com/maptile/2.1/maptile/newest/satellite.day/{z}/{x}/{y}/256/png8?app_id=HERE_APP_ID&app_code=HERE_APP_CODE" +"\nOpenStreetMap.Mapnik,https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" +"\nOpenStreetMap.BlackAndWhite,https://tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png" +"\nStamen.Toner,https://stamen-tiles-{s}.a.ssl.fastly.net/toner/{z}/{x}/{y}@2x.png" +"\nStamen.TonerLite,https://stamen-tiles-{s}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}@2x.png" +"\nStamen.Watercolor,https://stamen-tiles-{s}.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.jpg" +"\nOther (China).GaoDe,http://webrd{s}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}" +"\nOther (China).GeoDe(Satellite),http://webst{s}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}" ; - const wxString GdaConst::gda_lbl_not_sig = _("Not Significant"); const wxString GdaConst::gda_lbl_undefined = _("Undefined"); const wxString GdaConst::gda_lbl_neighborless = _("Neighborless"); From 28bdf73a8423fdd30df722791fc1c3474aad0665 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 12 Aug 2019 19:07:43 -0700 Subject: [PATCH 26/60] Update GdaConst.cpp --- GdaConst.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/GdaConst.cpp b/GdaConst.cpp index c99de3841..64f662174 100644 --- a/GdaConst.cpp +++ b/GdaConst.cpp @@ -370,10 +370,9 @@ wxString GdaConst::gda_basemap_sources = "\nStamen.Toner,https://stamen-tiles-{s}.a.ssl.fastly.net/toner/{z}/{x}/{y}@2x.png" "\nStamen.TonerLite,https://stamen-tiles-{s}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}@2x.png" "\nStamen.Watercolor,https://stamen-tiles-{s}.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.jpg" -"\nOther (China).GaoDe,http://webrd{s}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}" -"\nOther (China).GeoDe(Satellite),http://webst{s}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}" -; - +"\nOther (China).GaoDe,http://webst{s}.is.autonavi.com/appmaptile?style=8&x={x}&y={y}&z={z}" +"\nOther (China).GaoDe(Satellite),http://webst{s}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}" +; const wxString GdaConst::gda_lbl_not_sig = _("Not Significant"); const wxString GdaConst::gda_lbl_undefined = _("Undefined"); From 0c3aabd9ba68c330186220e1fd8a64db33e67d52 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 12 Aug 2019 19:07:37 -0700 Subject: [PATCH 27/60] enhancement for windows version GeoDa lab2b: label display in conditional plot --- DialogTools/VariableSettingsDlg.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DialogTools/VariableSettingsDlg.cpp b/DialogTools/VariableSettingsDlg.cpp index a394e97d1..5d1428845 100644 --- a/DialogTools/VariableSettingsDlg.cpp +++ b/DialogTools/VariableSettingsDlg.cpp @@ -1334,7 +1334,7 @@ wxString VariableSettingsDlg::FillData() v3_name = table_int->GetColName(v3_col_id); col_ids[2] = v3_col_id; var_info[2].time = v3_time; - + var_info[2].is_hide = false; if (emptyVar.empty() && CheckEmptyColumn(v3_col_id, v3_time)) { emptyVar = v3_name; } @@ -1347,7 +1347,7 @@ wxString VariableSettingsDlg::FillData() v4_name = table_int->GetColName(v4_col_id); col_ids[3] = v4_col_id; var_info[3].time = v4_time; - + var_info[3].is_hide = false; if (emptyVar.empty() && CheckEmptyColumn(v4_col_id, v4_time)) { emptyVar = v4_name; } From f370938ee8d6420226fef17316ac4ecd2062a851 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 12 Aug 2019 20:49:01 -0700 Subject: [PATCH 28/60] Fix a Merge related crash (Windows only) Caused by wxWidgets behaves differently on windows --- DialogTools/ConnectDatasourceDlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DialogTools/ConnectDatasourceDlg.cpp b/DialogTools/ConnectDatasourceDlg.cpp index b2428e658..ce0a9f792 100644 --- a/DialogTools/ConnectDatasourceDlg.cpp +++ b/DialogTools/ConnectDatasourceDlg.cpp @@ -1180,7 +1180,7 @@ wxCSConv* ConnectDatasourceDlg::GetEncoding() { if (m_encodings && m_encodings->IsShown()) { - wxFontEncoding encoding_type = wxFONTENCODING_DEFAULT; + wxFontEncoding encoding_type = wxFONTENCODING_SYSTEM; int sel = m_encodings->GetSelection(); wxString encode_str = m_encodings->GetString(sel); From 540ea57b89008be1268a72a10f77499c13ab2ad0 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 12 Aug 2019 21:19:19 -0700 Subject: [PATCH 29/60] BP should NOT be used for multicollinearity remove the "Extrem multicollinearity" print based on BP; only print the multicollinearity condition number for user; --- DialogTools/RegressionDlg.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DialogTools/RegressionDlg.cpp b/DialogTools/RegressionDlg.cpp index d90bdab72..bace41aa7 100644 --- a/DialogTools/RegressionDlg.cpp +++ b/DialogTools/RegressionDlg.cpp @@ -1374,8 +1374,8 @@ void RegressionDlg::printAndShowClassicalResults(const wxString& datasetname, slog << wxString::Format("MULTICOLLINEARITY CONDITION NUMBER %7f\n", r->GetConditionNumber()); cnt++; - slog << " "; - slog << " (Extreme Multicollinearity)\n"; + //slog << " "; + //slog << " (Extreme Multicollinearity)\n"; cnt++; } slog << "TEST ON NORMALITY OF ERRORS\n"; From 1a8a1d5c1d84641b268c6de016229aadb28206ec Mon Sep 17 00:00:00 2001 From: Xun Li Date: Mon, 12 Aug 2019 21:19:38 -0700 Subject: [PATCH 30/60] update version --- version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.h b/version.h index 87cc93937..92361688b 100644 --- a/version.h +++ b/version.h @@ -5,7 +5,7 @@ namespace Gda { const int version_subbuild = 0; const int version_year = 2019; const int version_month = 8; - const int version_day = 9; + const int version_day = 12; const int version_night = 0; const int version_type = 2; // 0: alpha, 1: beta, 2: release } From bbfe6617d186eda96f2222e9c300e75900ac7771 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 13 Aug 2019 09:24:21 -0700 Subject: [PATCH 31/60] enhancement update close GeoDa logic update basemap options --- BuildTools/CommonDistFiles/cache.sqlite | Bin 5120 -> 8192 bytes GeoDa.cpp | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/BuildTools/CommonDistFiles/cache.sqlite b/BuildTools/CommonDistFiles/cache.sqlite index 4658ea784de48b2d21e819f49da5ab77a3d7ed22..be41819ca3ecd13840826cc6c11fefb00d59bbe4 100644 GIT binary patch literal 8192 zcmeHL%}*Og6yIeHM2J-Cq2iDOn;Z}bJR2Mgq>_~w*n%a#{E^a2wHoh^?Jc`A%glgr z5C_zA)njvN|A71ft$OIK=l&I`)LVPbr8Bd(V;oB4LLw{Ll~+3-Z+`Fh-prdfo^o;9 z=g6!P8bWS9(o&kPYfnv6)3izP-Vtx-85M<8ry{<3Px-%!lUn+pU+x+yEv5gV8IvRC z$nT<%Jnzc`d#SOhd-wDvht&Wze8vfFwLhclB|BfS%}Rc4+cw*c=4=Eh44p&NGAs61 zl?5}dpTI!X=Pn+Mj8Dza>lbGVl0}gFFmNcUIjqI{s>UT1eVu0enN?p#ea|fHR_sl? zWIo$16rb4(sskSLhJ#^<+I(cAYEvU(j)d!i7pooUZB6FfUAYo_ zqxyZV%mg>_K;nU+^FR{+LpLP}p~M3p%mWirQRBgXXC95Ifl<9pCUXk~RVyM&grix6hLjJM)uR;wuc(0y2~ zEqPV%@e0f?exe)GpUP2AC|oa@x6YoQTW6=@ZJk@0?6MW%`sx!HMS@Un%P!eYet+L7Y|O|emw4z+889`2k17a?L`QeIYo%? zzzB#J`-h4kYkN*k8X!W7DJkJWKxn>V^Z_DVPj#XvKx1+dB# zO0}65fI{V4cx5i`>oBMgjA)k+Q;lhblUCCT7z;oRG9I)5M%?03z8CCi=2Y?P#go_5 zgJP!T%v}R~ASQ*1TRk!e+h%uAFEaQh68_{Oa?IKFhL7PK`0M41SHJz-SvXBpWn7x? zix?Akk{F)&D#k=i2zN^NJYl>Qpxo-rX-)*wOe-hCY36xO1lN_wv#-8;`R9wD<_6cW z{I&-9|34+tzVWy5tMNmU|3AWflbAGI9vGJVFY+-aGX8Zft;ydzpYOLuQ;&Wmbq_jK z$dK5+97c|*i`Y7(oPce4DCln1a?@*zG2lu8*TZV-3#6O_gP?aO?QH%r)CQ!NQ`^-@ zo)EhpNO79oCFVA)q9EQhJL&Rj%$OY}BJrVsT~Bc!U`6&iT)SKFb`qTgb delta 41 pcmZp0XwaA-Ey%&Zz`zQ`Fu*cV$C#00W5NRdNgOPjStR~20|0`r2U`FD diff --git a/GeoDa.cpp b/GeoDa.cpp index b58183e44..13b7aa367 100644 --- a/GeoDa.cpp +++ b/GeoDa.cpp @@ -991,12 +991,12 @@ void GdaFrame::OnClose(wxCloseEvent& event) msg = _("OK to Exit?"); } - if (IsProjectOpen()) { - wxMessageDialog msgDlg(this, msg, title, - wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION); - // Show the message dialog, and if it returns wxID_YES... - if (msgDlg.ShowModal() != wxID_YES) - return; + wxMessageDialog msgDlg(this, msg, title, + wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION); + // Show the message dialog, and if it returns wxID_YES... + if (msgDlg.ShowModal() != wxID_YES) { + event.Veto(); + return; } OnCloseProject(true); From b7367588f3b404ecc45f4f284bf2516c12a3d0d5 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 13 Aug 2019 10:18:06 -0700 Subject: [PATCH 32/60] Update VarOrderPtree.cpp fix an issue that field names are disordered in table --- DataViewer/VarOrderPtree.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DataViewer/VarOrderPtree.cpp b/DataViewer/VarOrderPtree.cpp index cda36cb48..92338e9e2 100644 --- a/DataViewer/VarOrderPtree.cpp +++ b/DataViewer/VarOrderPtree.cpp @@ -298,7 +298,7 @@ bool VarOrderPtree::CorrectVarGroups(const std::vector& ds_var_list, } // Append all items in ds_var_list not in var_set - BOOST_FOREACH(const wxString& v, ds_var_set) { + BOOST_FOREACH(const wxString& v, ds_var_list) { if (var_set.find(v) == var_set.end()) { VarGroup ent; ent.name = v; From 4df17155090dbb8a3f57f603ca63f374cbde87eb Mon Sep 17 00:00:00 2001 From: lixun910 Date: Tue, 13 Aug 2019 21:53:17 -0700 Subject: [PATCH 33/60] ref #1919 replicate and fix a ubuntu only crash when saving CSV with null values --- ShapeOperations/OGRLayerProxy.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/ShapeOperations/OGRLayerProxy.cpp b/ShapeOperations/OGRLayerProxy.cpp index 771630790..a1a1ef60e 100644 --- a/ShapeOperations/OGRLayerProxy.cpp +++ b/ShapeOperations/OGRLayerProxy.cpp @@ -872,6 +872,7 @@ OGRLayerProxy::AddFeatures(vector& geometries, if (ds_type == GdaConst::ds_csv) { for (int m=0; m Date: Thu, 15 Aug 2019 16:33:23 -0700 Subject: [PATCH 34/60] update build scripts for Ubuntu bionic --- BuildTools/ubuntu/GNUmakefile | 8 +- BuildTools/ubuntu/build_bionic.sh | 660 ++++++++++++++++++ .../ubuntu/dep/gdal-1.9.2/GDALmake64.opt | 16 +- DialogTools/ExportDataDlg.cpp | 10 +- GeoDamake.bionic.opt | 77 ++ GeoDamake.opt | 40 +- Project.cpp | 16 +- 7 files changed, 790 insertions(+), 37 deletions(-) create mode 100755 BuildTools/ubuntu/build_bionic.sh create mode 100644 GeoDamake.bionic.opt diff --git a/BuildTools/ubuntu/GNUmakefile b/BuildTools/ubuntu/GNUmakefile index a17d795fb..466fc7e1c 100644 --- a/BuildTools/ubuntu/GNUmakefile +++ b/BuildTools/ubuntu/GNUmakefile @@ -90,14 +90,14 @@ build-geoda: cp $(GEODA_HOME)/libraries/lib/libspatialite.so.5.0.1 build/plugins/libspatialite.so.5 cp $(GEODA_HOME)/libraries/lib/libfreexl.so.1.0.0 build/plugins/libfreexl.so.1 cp $(GEODA_HOME)/libraries/lib/libproj.so.0.7.0 build/plugins/libproj.so.0 - cp $(GEODA_HOME)/libraries/lib/libgeos_c.so.1.7.8 build/plugins/libgeos_c.so.1 + cp $(GEODA_HOME)/libraries/lib/libgeos_c.so.1.10.2 build/plugins/libgeos_c.so.1 cp $(GEODA_HOME)/libraries/lib/libsqlite3.so.0.8.6 build/plugins/libsqlite3.so.0 cp $(GEODA_HOME)/libraries/lib/libiconv.so.2.5.0 build/plugins/libiconv.so.2 - chmod +x build/plugins/libiconv.so.2 + #chmod +x build/plugins/libiconv.so.2 cp $(GEODA_HOME)/libraries/lib/libminizip.so.0.0.0 build/plugins/libminizip.so.0 cp $(GEODA_HOME)/libraries/lib/liburiparser.so.1.0.5 build/plugins/liburiparser.so.1 - cp $(GEODA_HOME)/libraries/lib/libgeos-3.3.8.so build/plugins/libgeos-3.3.8.so - cp $(GEODA_HOME)/libraries/lib/libcurl.so.4.4.0 build/plugins/libcurl.so.4 + cp $(GEODA_HOME)/libraries/lib/libgeos-3.6.2.so build/plugins/libgeos-3.6.2.so + cp $(GEODA_HOME)/libraries/lib/libcurl.so.4.5.0 build/plugins/libcurl.so.4 cp $(GEODA_HOME)/libraries/lib/libcares.so.2.1.0 build/plugins/libcares.so.2 cp $(GEODA_HOME)/libraries/share/gdal/* build/gdaldata cp $(GEODA_HOME)/../CommonDistFiles/cache.sqlite build/cache.sqlite diff --git a/BuildTools/ubuntu/build_bionic.sh b/BuildTools/ubuntu/build_bionic.sh new file mode 100755 index 000000000..36e189970 --- /dev/null +++ b/BuildTools/ubuntu/build_bionic.sh @@ -0,0 +1,660 @@ +#!/bin/bash +############################################################################# +# ./build.sh +# ./build.sh [CPU] +# ./build.sh 8 (with debug) +# ./build.sh [CPU] [NODEBUG, true=1 false=0(default)] +# ./build.sh 8 1 (no debug) +############################################################################# +CPUS=2 +NODEBUG=1 + +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Install prerequisit ?" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +read -p "Install pre-requisites for development: cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlibg-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkit-dev libssl-dev? [y/n]" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]]; then + sudo apt install cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlib1g-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkit2gtk-dev libssl-dev +fi + + +unset ORACLE_HOME +export GEODA_HOME=$PWD +PREFIX=$GEODA_HOME/libraries +DOWNLOAD_HOME=$GEODA_HOME/temp +echo $PREFIX + +MAKER="make -j $CPUS" +export CFLAGS="-m64 -std=c++98" +export CXXFLAGS="-m64 -std=c++98" +export LDFLAGS="-m64 -L/usr/lib/x86_64-linux-gnu" + +if ! [ -d $DOWNLOAD_HOME ]; then + mkdir $DOWNLOAD_HOME +fi + +if ! [ -d $PREFIX ]; then + mkdir $PREFIX +fi + +######################################################################### +# install library function +######################################################################### +install_library() +{ + LIB_NAME=$1 + LIB_URL=$2 + LIB_CHECKER=$3 + LIB_FILENAME=$(basename "$LIB_URL") + CONFIGURE_FLAGS=$4 + echo "" + echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + echo "% Building: $LIB_FILENAME" + echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + + cd $DOWNLOAD_HOME + + if ! [ -f "$LIB_FILENAME" ] ; then + echo "$LIB_FILENAME not found. Downloading..." + curl -L -O $LIB_URL + else + echo "$LIB_FILENAME found. Download skipped." + fi + + if ! [ -d "$LIB_NAME" ] ; then + echo "Directory $LIB_NAME not found. Expanding..." + tar -xf $LIB_FILENAME + else + echo "Directory $LIB_NAME found. File expansion skipped." + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + chmod +x configure + ./configure CFLAGS="-m64" CXXFLAGS="-m64" LDFLAGS="-m64 -L/usr/lib/x86_64-linux-gnu" --prefix=$PREFIX $CONFIGURE_FLAGS + $MAKER + make install + fi + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} +######################################################################### +# install libiConv +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: libiConv %" +echo "%%%%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME="libiconv-1.13" + LIB_URL="http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz" + LIB_CHECKER="libiconv.a" + LIB_FILENAME="libiconv-1.13.tar.gz" + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + tar -xf $LIB_FILENAME + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + chmod +x configure + ./configure --enable-static --prefix=$PREFIX + $MAKER + make install + fi + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# install c-ares -- for cURL, prevent crash on Mac oSx with threads +######################################################################### +install_library c-ares-1.10.0 http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz libcares.a + + +######################################################################### +# install cURL +######################################################################### + +LIB_NAME=curl-7.61.0 +LIB_CHECKER=libcurl.a +LIB_URL=https://curl.haxx.se/download/curl-7.61.0.tar.gz +LIB_FILENAME=curl-7.61.0.tar.gz +echo $LIB_NAME + +cd $DOWNLOAD_HOME + +if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + unzip $LIB_FILENAME +fi + +if ! [ -d "$LIB_NAME" ]; then + tar -xf $LIB_FILENAME +fi + +if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + ./configure --with-ssl --enable-ares=$PREFIX CC="$GDA_CC" CFLAGS="$GDA_CFLAGS" CXX="$GDA_CXX" CXXFLAGS="$GDA_CXXFLAGS" LDFLAGS="$GDA_LDFLAGS" --prefix=$PREFIX + $MAKER + make install +fi + +if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit +fi + + +######################################################################### +# install Xerces +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%" +echo "% Building: Xerces %" +echo "%%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME="xerces-c-3.1.1" + LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/xerces-c-3.1.1.tar.gz" + LIB_CHECKER="libxerces-c.a" + LIB_FILENAME=$(basename "$LIB_URL" ".tar") + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + tar -xf $LIB_FILENAME + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + chmod +x configure + ./configure --prefix=$PREFIX + chmod +x config/pretty-make + $MAKER + make install + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# install GEOS +######################################################################### +install_library geos-3.6.2 https://download.osgeo.org/geos/geos-3.6.2.tar.bz2 libgeos.a + +######################################################################### +# install PROJ.4 +######################################################################### +install_library proj-4.8.0 https://s3.us-east-2.amazonaws.com/geodabuild/proj-4.8.0.tar.gz libproj.a + +######################################################################### +# install FreeXL +######################################################################### +install_library freexl-1.0.0f https://s3.us-east-2.amazonaws.com/geodabuild/freexl-1.0.0f.tar.gz libfreexl.a + +######################################################################### +# install SQLite +######################################################################### +install_library sqlite-autoconf-3071602 https://s3.us-east-2.amazonaws.com/geodabuild/sqlite-autoconf-3071602.tar.gz libsqlite3.a + +######################################################################### +# install PostgreSQL +######################################################################### +# libreadline, zlib +echo "install libreadline, zlib" +install_library postgresql-9.2.4 https://s3.us-east-2.amazonaws.com/geodabuild/postgresql-9.2.4.tar.bz2 libpq.a + +######################################################################### +# install libjpeg +######################################################################### +install_library jpeg-8 https://s3.us-east-2.amazonaws.com/geodabuild/jpegsrc.v8.tar.gz libjpeg.a + +######################################################################### +# install libkml requires 1.3 +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%" +echo "% Building: libkml %" +echo "%%%%%%%%%%%%%%%%%%%%" +# libexpat,libcurl4-gnutls-dev +#install_library libkml-1.2.0 https://libkml.googlecode.com/files/libkml-1.2.0.tar.gz libkmlbase.a +{ + LIB_NAME="libkml" + LIB_CHECKER="libkmlbase.a" + LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/libkml-r680.tar.gz + LIB_FILENAME=libkml-r680.tar.gz + echo $LIB_NAME + + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + fi + + if ! [ -d "$LIB_NAME" ]; then + tar -xf $LIB_FILENAME + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cp -rf ../dep/"$LIB_NAME" . + cd $LIB_NAME + export PATH=$PREFIX/bin:$PATH + ./autogen.sh + chmod +x configure + ./configure CXXFLAGS="-Wno-long-long" --prefix=$PREFIX + sed -i.old "/gtest-death-test.Plo/d" third_party/Makefile + sed -i.old "/gtest-filepath.Plo/d" third_party/Makefile + sed -i.old "/gtest-port.Plo/d" third_party/Makefile + sed -i.old "/gtest-test-part.Plo/d" third_party/Makefile + sed -i.old "/gtest-typed-test.Plo/d" third_party/Makefile + sed -i.old "/gtest-test.Plo/d" third_party/Makefile + sed -i.old "/gtest.Plo/d" third_party/Makefile + sed -i.old "/gtest_main.Plo/d" third_party/Makefile + sed -i.old "/UriCommon.Plo/d" third_party/Makefile + sed -i.old "/UriCompare.Plo/d" third_party/Makefile + sed -i.old "/UriEscape.Plo/d" third_party/Makefile + sed -i.old "/UriFile.Plo/d" third_party/Makefile + sed -i.old "/UriIp4.Plo/d" third_party/Makefile + sed -i.old "/UriIp4Base.Plo/d" third_party/Makefile + sed -i.old "/UriNormalize.Plo/d" third_party/Makefile + sed -i.old "/UriNormalizeBase.Plo/d" third_party/Makefile + sed -i.old "/UriParse.Plo/d" third_party/Makefile + sed -i.old "/UriParseBase.Plo/d" third_party/Makefile + sed -i.old "/UriQuery.Plo/d" third_party/Makefile + sed -i.old "/UriRecompose.Plo/d" third_party/Makefile + sed -i.old "/UriResolve.Plo/d" third_party/Makefile + sed -i.old "/UriShorten.Plo/d" third_party/Makefile + sed -i.old "/ioapi.Plo/d" third_party/Makefile + sed -i.old "/iomem_simple.Plo/d" third_party/Makefile + sed -i.old "/zip.Plo/d" third_party/Makefile + #$MAKER + sed -i.old "s/examples//g" Makefile + make third_party + make src + make testdata + make install + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# install SpatiaLite +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: Spatialite %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME=libspatialite-4.0.0 + LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/libspatialite-4.0.0.tar.gz + LIB_FILENAME=$(basename "$LIB_URL" ".tar") + LIB_CHECKER=libspatialite.a + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + tar -xf $LIB_FILENAME + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + chmod +x configure + ./configure CFLAGS="-I$PREFIX/include" CXXFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib -liconv" --prefix=$PREFIX --with-geosconfig=$PREFIX/bin/geos-config + $MAKER + make install + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} +######################################################################### +# MySQL +######################################################################### +#cmake, curse +echo "" +echo "%%%%%%%%%%%%%%%%%%%" +echo "% Building: MySQL %" +echo "%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME=mysql-5.6.14 + LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/mysql-5.6.14.tar.gz + LIB_CHECKER=libmysqlclient.a + + echo $LIB_NAME + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + tar -xf $LIB_NAME.tar.gz + #cp $GEODA_HOME/dep/mysql/my_default.h $GEODA_HOME/temp/mysql-5.6.14/include/my_default.h + fi + + if ! [ -f "$GEODA_HOME/temp/mysql-5.6.14/bld/libmysql/$LIB_CHECKER" ] ; then + echo "HERE" + cd $LIB_NAME + mkdir -p bld + cd bld + cmake -DCURSES_LIBRARY=/usr/lib/libncurses.so -DCURSES_INCLUDE_PATH=/usr/include .. + chmod +x bld/extra/comp_err + chmod +x bld/sql/gen_lex_hash + chmod +x storage/perfschema/gen_pfs_lex_token + $MAKER + fi + + if ! [ -f "$GEODA_HOME/temp/$LIB_NAME/bld/libmysql/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# Eigen3 +######################################################################### +LIB_NAME=eigen3 +LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/eigen3.zip +LIB_CHECKER=Dense +LIB_FILENAME=$LIB_NAME.zip +echo $LIB_FILENAME +cd $DOWNLOAD_HOME + +if ! [ -f "$LIB_FILENAME" ] ; then + curl -O $LIB_URL +fi + +if ! [ -d "$LIB_NAME" ]; then + unzip $LIB_FILENAME +fi + +cd $DOWNLOAD_HOME/$LIB_NAME +if ! [ -f "$PREFIX/include/eigen3/Eigen/$LIB_CHECKER" ] ; then + mkdir bld + cd bld + cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX + make install +fi + +if ! [ -f "$PREFIX/include/eigen3/Eigen/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit +fi +######################################################################### +# install boost library +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: Boost 1.57 %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME=boost_1_57_0 + LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/boost_1_57_0.tar.gz + LIB_FILENAME=boost_1_57_0.tar.gz + LIB_CHECKER=libboost_thread.a + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -f "$LIB_FILENAME" ]; then + echo "$LIB_FILENAME not found. Downloading..." + curl -O $LIB_URL + else + echo "$LIB_FILENAME found. Skipping download." + fi + + if ! [ -d "$LIB_NAME" ]; then + echo "Directory $LIB_NAME not found. Expanding archive." + tar -xf $LIB_FILENAME + else + echo "Directory $LIB_NAME found. Skipping expansion." + fi + + if ! [ -f "$GEODA_HOME/temp/$LIB_NAME/stage/lib/$LIB_CHECKER" ] ; then + echo "$LIB_CHECKER not found. Building Boost..." + cd $PREFIX/include + rm boost + ln -s $DOWNLOAD_HOME/boost_1_57_0 boost + cd $DOWNLOAD_HOME/boost_1_57_0 + chmod +x bootstrap.sh + #chmod +x tools/build/v2/engine/build.sh + ./bootstrap.sh + chmod +x b2 + ./b2 --with-thread --with-date_time --with-chrono --with-system link=static threading=multi stage + fi + + if ! [ -f "$GEODA_HOME/temp/$LIB_NAME/stage/lib/$LIB_CHECKER" ] ; then + echo "Error: Target library $LIB_CHECKER not found. Exiting build." + exit + fi +} + +######################################################################### +# install JSON Spirit +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: JSON Spirit %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%" +LIB_NAME="json_spirit_v4.08" +LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/json_spirit_v4.08.zip" +LIB_CHECKER="libjson_spirit.a" +LIB_FILENAME="json_spirit_v4.08.zip" +echo $LIB_FILENAME + +cd $DOWNLOAD_HOME + +if ! [ -d "$LIB_NAME" ]; then + curl -O https://s3.us-east-2.amazonaws.com/geodabuild/json_spirit_v4.08.zip + unzip $LIB_FILENAME +fi + +cd $DOWNLOAD_HOME/$LIB_NAME + +if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cp $GEODA_HOME/dep/json_spirit/CMakeLists.txt . + mkdir bld + cd bld + CC=$GDA_CC CXX=$GDA_CXX CFLAGS=$GDA_CFLAGS CXXFLAGS=$GDA_CXXFLAGS LDFLAGS=$GDA_LDFLAGS cmake .. + make + rm -rf "$PREFIX/include/json_spirit" + rm -f "$PREFIX/lib/$LIB_CHECKER" + mkdir "$PREFIX/include/json_spirit" + echo "Copying JSON Sprit includes..." + cp -R "../json_spirit" "$PREFIX/include/." + echo "Copying libjson_spirit.a" + cp json_spirit/libjson_spirit.a "$PREFIX/lib/." +fi + +if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit +fi + +######################################################################### +# install CLAPACK +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: CLAPACK 3.2.1 %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%" +{ + CLAPACK_NAME="CLAPACK-3.2.1" + LIB_CHECKER="libf2c.a" + echo $CLAPACK_NAME + + cd $DOWNLOAD_HOME + if ! [ -d "$CLAPACK_NAME" ]; then + curl -O https://s3.us-east-2.amazonaws.com/geodabuild/clapack.tgz + tar -xvf clapack.tgz + fi + + cp -rf $GEODA_HOME/dep/$CLAPACK_NAME . + cd $CLAPACK_NAME + if ! [ -f "libf2c.a" ] || ! [ -f "blas.a" ] || ! [ -f "lapack.a" ]; then + cp make.inc.example make.inc + $MAKER f2clib + cp F2CLIBS/libf2c.a . + $MAKER blaslib + cd INSTALL + $MAKER + cd .. + cd SRC + $MAKER + cd .. + $MAKER + mv -f blas_LINUX.a blas.a + mv -f lapack_LINUX.a lapack.a + mv -f tmglib_LINUX.a tmglib.a + cd .. + fi + + if ! [ -f "$GEODA_HOME/temp/$CLAPACK_NAME/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# install json-c +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: json-c " +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +{ + + LIB_NAME=json-c + LIB_CHECKER=libjson-c.a + + if ! [ -d "$LIB_NAME" ] ; then + git clone https://github.com/json-c/json-c.git + fi + + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + sh autogen.sh + ./configure --prefix=$PREFIX + make + make install + fi + + #if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + #echo "Error! Exit" + #exit + #fi +} + +######################################################################### +# install GDAL/OGR +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: Custom GDAL/OGR 1.9.2 %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME=gdal + LIB_URL=https://codeload.github.com/lixun910/gdal/zip/GeoDa17Merge + LIB_FILENAME=GeoDa17Merge + LIB_CHECKER=libgdal.a + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -k -O $LIB_URL + unzip $LIB_FILENAME + mv gdal-GeoDa17Merge/gdal gdal + fi + + cp -rf $GEODA_HOME/dep/$LIB_NAME . + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + chmod +x configure + chmod +x install-sh + ./configure + cp -rf $GEODA_HOME/dep/gdal-1.9.2/* . + cp GDALmake64.opt GDALmake.opt + #make clean + $MAKER + make install + #cd ogr/ogrsf_frmts/oci + #make plugin + #mv ogr_OCI.so ogr_OCI.dylib + #install_name_tool -change "/scratch/plebld/208/network/lib/libnnz10.dylib" "/Users/xun/Downloads/Oracle_10204Client_MAC_X86/ohome/lib/libnnz10.dylib" ogr_OCI.so + fi + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# install wxWidgets library +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building wxWidgets 3.0.2 %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +# sudo apt-get install libgtk2.0-dev libglu1-mesa-dev libgl1-mesa-dev +{ + LIB_NAME=wxWidgets-3.1.0 + LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/wxWidgets-3.1.0.tar.bz2" + + LIB_FILENAME=$(basename "$LIB_URL" ".tar") + LIB_CHECKER=wx-config + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -f "$LIB_FILENAME" ] ; then + curl -k -o $LIB_FILENAME $LIB_URL + fi + + if ! [ -d "$LIB_NAME" ]; then + tar -xf $LIB_FILENAME + fi + + if ! [ -f "$PREFIX/bin/$LIB_CHECKER" ] ; then + cd $LIB_NAME + cp -rf $GEODA_HOME/dep/$LIB_NAME/* . + chmod +x configure + chmod +x src/stc/gen_iface.py + ./configure --with-gtk=2 --disable-shared --disable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX + $MAKER + make install + cd .. + fi + + if ! [ -f "$PREFIX/bin/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# build GeoDa +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%" +echo "% Building: GeoDa %" +echo "%%%%%%%%%%%%%%%%%%%" +{ + cd $GEODA_HOME + cp ../../GeoDamake.bionic.opt ../../GeoDamake.opt + mkdir ../../o + $MAKER + make app +} diff --git a/BuildTools/ubuntu/dep/gdal-1.9.2/GDALmake64.opt b/BuildTools/ubuntu/dep/gdal-1.9.2/GDALmake64.opt index d6f915a09..f79606a52 100644 --- a/BuildTools/ubuntu/dep/gdal-1.9.2/GDALmake64.opt +++ b/BuildTools/ubuntu/dep/gdal-1.9.2/GDALmake64.opt @@ -11,7 +11,7 @@ LIBTOOL = $(SHELL) $(top_builddir)/libtool ifeq ($(HAVE_LIBTOOL),yes) LIBTOOL_COMPILE_CC = $(LIBTOOL) --mode=compile --tag=CC LIBTOOL_COMPILE_CXX = $(LIBTOOL) --mode=compile --tag=CXX -LIBTOOL_LINK = $(LIBTOOL) --mode=link +LIBTOOL_LINK = $(LIBTOOL) --mode=link --tag=LD LIBTOOL_INSTALL = $(LIBTOOL) --mode=install LIBTOOL_FINISH = $(LIBTOOL) --mode=finish --silent LIBTOOL_CLEAN = $(LIBTOOL) --mode=clean @@ -21,9 +21,9 @@ LIBTOOL_FINISH = /bin/true OBJ_EXT = o endif -CC = $(LIBTOOL_COMPILE_CC) gcc-5 -CXX = $(LIBTOOL_COMPILE_CXX) g++-5 -LD = $(LIBTOOL_LINK) g++-5 +CC = $(LIBTOOL_COMPILE_CC) gcc +CXX = $(LIBTOOL_COMPILE_CXX) g++ +LD = $(LIBTOOL_LINK) g++ RM = $(LIBTOOL_CLEAN) /bin/rm -f *.lo INSTALL = $(LIBTOOL_INSTALL) $(GDAL_ROOT)/install-sh -c INSTALL_LIB = $(LIBTOOL_INSTALL) $(GDAL_ROOT)/install-sh -c @@ -32,8 +32,8 @@ INSTALL_DIR = $(GDAL_ROOT)/install-sh -d # SDE_LIB needs to be first because it embeds zlib. We need to use its symbols instead of -lz's -LIBS = -L/lib/x86_64-linux-gnu -lssl $(SDE_LIB) -lrtmp -L/usr/lib/x86_64-linux-gnu -lidn -lexpat -lz -lpthread -lm -lrt -ldl $(GEODA_HOME)/libraries/lib/libpq.a -L$(GEODA_HOME)/libraries/lib -lgeos -lgeos_c -lproj -lfreexl -lxerces-c -lspatialite -lsqlite3 \ - $(KAK_LIBS) $(DWG_LIBS) $(CURL_LIB) \ +LIBS = -L/lib/x86_64-linux-gnu -lexpat -lz -lpthread -lm -lrt -ldl $(GEODA_HOME)/libraries/lib/libpq.a -L$(GEODA_HOME)/libraries/lib -lgeos -lgeos_c -lproj -lfreexl -lxerces-c -lspatialite -lsqlite3 \ + $(KAK_LIBS) $(DWG_LIBS) $(CURL_LIB) $(SDE_LIB) \ $(MRSID_LIBS) $(MRSID_LIDAR_LIBS) $(INGRES_LIB) \ $(PCIDSK_LIB) $(RASDAMAN_LIB) $(CHARLS_LIB) \ $(OPENCL_LIB) $(JVM_LIB) $(LIBICONV) $(FGDB_LIB) @@ -128,7 +128,7 @@ INGRES_INC = # MySQL support. # HAVE_MYSQL = yes -MYSQL_LIB = /usr/lib/x86_64-linux-gnu/libmysqlclient.a -lpthread +MYSQL_LIB = $(GEODA_HOME)/temp/mysql-5.6.14/bld/libmysql/libmysqlclient.a -lpthread MYSQL_INC = -I/usr/include/mysql -I$(GEODA_HOME)/dep/mysql-5.6.14/include LIBS += $(MYSQL_LIB) @@ -279,7 +279,7 @@ HAVE_VFK = yes # Curl # CURL_SETTING = yes -CURL_LIB = -L$(GEODA_HOME)/libraries/lib -lcurl -lldap -lz -lcares +CURL_LIB = -L$(GEODA_HOME)/libraries/lib -lcurl CURL_INC = -I$(GEODA_HOME)/libraries/include # diff --git a/DialogTools/ExportDataDlg.cpp b/DialogTools/ExportDataDlg.cpp index ecd348749..ad166ce0b 100644 --- a/DialogTools/ExportDataDlg.cpp +++ b/DialogTools/ExportDataDlg.cpp @@ -569,10 +569,10 @@ ExportDataDlg::CreateOGRLayer(wxString& ds_name, bool is_table, OGRDataAdapter& ogr_adapter = OGRDataAdapter::GetInstance(); vector ogr_geometries; OGRwkbGeometryType geom_type = wkbNone; - OGRSpatialReference new_ref = NULL; + OGRSpatialReference new_ref; if (is_table) { spatial_ref = NULL; // table only data, void creating e.g. prj file - } else if (spatial_ref) { + } else { geom_type = ogr_adapter.MakeOGRGeometries(geometries, shape_type, ogr_geometries, selected_rows); wxString str_crs = m_crs_input->GetValue(); @@ -587,7 +587,7 @@ ExportDataDlg::CreateOGRLayer(wxString& ds_name, bool is_table, new_ref.importFromEPSG(4326); valid_input_crs = true; } - if (valid_input_crs && !spatial_ref->IsSame(&new_ref)) { + if (spatial_ref && (valid_input_crs && !spatial_ref->IsSame(&new_ref))) { OGRCoordinateTransformation *poCT; poCT = OGRCreateCoordinateTransformation(spatial_ref, &new_ref); for (size_t i=0; i < ogr_geometries.size(); i++) { @@ -613,22 +613,26 @@ ExportDataDlg::CreateOGRLayer(wxString& ds_name, bool is_table, table_p, selected_rows, spatial_ref, is_update, cpg_encode); if (new_layer == NULL) return false; +#ifndef __linux__ wxProgressDialog prog_dlg(_("Save data source progress dialog"), _("Saving data..."), prog_n_max, this, wxPD_CAN_ABORT|wxPD_AUTO_HIDE|wxPD_APP_MODAL); +#endif bool cont = true; while (new_layer->export_progress < prog_n_max) { wxMilliSleep(100); if ( new_layer->stop_exporting == true ) return false; // update progress bar +#ifndef __linux__ cont = prog_dlg.Update(new_layer->export_progress); if (!cont ) { new_layer->stop_exporting = true; OGRDataAdapter::GetInstance().CancelExport(new_layer); return false; } +#endif if (new_layer->export_progress == -1) { wxString tmp = _("Saving to data source (%s) failed.\n\nDetails: %s"); wxString msg = wxString::Format(tmp, ds_name, diff --git a/GeoDamake.bionic.opt b/GeoDamake.bionic.opt new file mode 100644 index 000000000..74703d954 --- /dev/null +++ b/GeoDamake.bionic.opt @@ -0,0 +1,77 @@ +GeoDa_ROOT = $(GEODA_HOME)/../.. + +TARGET = GeoDa + +CC = /usr/bin/gcc +CXX = /usr/bin/g++ +LD = /usr/bin/g++ +RM = /bin/rm -f + +WXLIBS = $(shell $(GEODA_HOME)/libraries/bin/wx-config --libs xrc,stc,richtext,ribbon,propgrid,aui,gl,html,webview,qa,adv,core,xml,net,base) +WX_HEADER = $(shell $(GEODA_HOME)/libraries/bin/wx-config --cppflags) + +LIBS = $(WXLIBS) \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/lapack.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/libf2c.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/blas.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/tmglib.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_date_time.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ + $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkitgtk-1.0 -lEGL +# Note: Library -lrtmp causes a missing library problem at runtime on +# Ubuntu 14.10 and later. + +BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost + +EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 + +GDAL_HEADER = -I$(GEODA_HOME)/libraries/include + +CPPFLAGS = -I$(GeoDa_ROOT) -std=c++98 +CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) +CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) +LDFLAGS = + +OBJ_EXT = o + +# +# generic library rules +# + +# +# gdal and ogr low level drivers use the following default rules in order to +# populate the ../o/ directory with all object and library object files +# + +O_OBJ = $(foreach file,$(OBJ),../o/$(file)) +T_OBJ = $(foreach file,$(OBJ),o/$(file)) + +../o/%.$(OBJ_EXT): %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + +../o/%.$(OBJ_EXT): %.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + +o/%.$(OBJ_EXT): %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + +o/%.$(OBJ_EXT): %.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + +%.$(OBJ_EXT): %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + +%.$(OBJ_EXT): %.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + +# +# default rules for handling subdirectories +# + +%-target: + $(MAKE) -C $* + +%-clean: + $(MAKE) -C $* clean diff --git a/GeoDamake.opt b/GeoDamake.opt index b737dc653..74703d954 100644 --- a/GeoDamake.opt +++ b/GeoDamake.opt @@ -2,37 +2,37 @@ GeoDa_ROOT = $(GEODA_HOME)/../.. TARGET = GeoDa -CC = gcc -Os -CXX = g++ -Os -arch x86_64 -LD = g++ -arch x86_64 +CC = /usr/bin/gcc +CXX = /usr/bin/g++ +LD = /usr/bin/g++ RM = /bin/rm -f -WXLIBS = $(shell $(GEODA_HOME)/libraries/bin/wx-config --libs xrc,stc,richtext,ribbon,propgrid,aui,gl,html,qa,adv,core,webview,xml,net,base) +WXLIBS = $(shell $(GEODA_HOME)/libraries/bin/wx-config --libs xrc,stc,richtext,ribbon,propgrid,aui,gl,html,webview,qa,adv,core,xml,net,base) WX_HEADER = $(shell $(GEODA_HOME)/libraries/bin/wx-config --cppflags) -LIBS = $(WXLIBS) \ - $(GEODA_HOME)/temp/CLAPACK-3.2.1/blas.a \ - $(GEODA_HOME)/temp/CLAPACK-3.2.1/F2CLIBS/libf2c.a \ - $(GEODA_HOME)/temp/CLAPACK-3.2.1/lapack.a \ - -L/usr/lib -liconv -framework opencl \ - -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl \ - $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_date_time.a \ - $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ - $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ - $(GEODA_HOME)/libraries/lib/libjson_spirit.a - +LIBS = $(WXLIBS) \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/lapack.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/libf2c.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/blas.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/tmglib.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_date_time.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ + $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkitgtk-1.0 -lEGL +# Note: Library -lrtmp causes a missing library problem at runtime on +# Ubuntu 14.10 and later. BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 -CPPFLAGS = -I$(GeoDa_ROOT) $(USER_LOG) -CFLAGS = -Os -arch x86_64 -Wall -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) -CXXFLAGS = -Os -arch x86_64 -Wall $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) -LDFLAGS = -arch x86_64 +CPPFLAGS = -I$(GeoDa_ROOT) -std=c++98 +CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) +CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) +LDFLAGS = OBJ_EXT = o diff --git a/Project.cpp b/Project.cpp index 8509851d8..c4f8b9c59 100644 --- a/Project.cpp +++ b/Project.cpp @@ -604,10 +604,12 @@ void Project::SaveDataSourceAs(const wxString& new_ds_name, bool is_update) // Start saving int prog_n_max = 0; if (table_int) prog_n_max = table_int->GetNumberRows(); +#ifndef __linux__ wxProgressDialog prog_dlg(_("Save data source progress dialog"), _("Saving data..."), prog_n_max, NULL, wxPD_CAN_ABORT|wxPD_AUTO_HIDE|wxPD_APP_MODAL); +#endif OGRLayerProxy* new_layer; new_layer = ogr_adapter.ExportDataSource(ds_format, new_ds_name, layername, geom_type, @@ -621,12 +623,14 @@ void Project::SaveDataSourceAs(const wxString& new_ds_name, bool is_update) bool cont = true; while ( new_layer && new_layer->export_progress < prog_n_max ) { +#ifndef __linux__ cont = prog_dlg.Update(new_layer->export_progress); if ( !cont ) { new_layer->stop_exporting = true; ogr_adapter.CancelExport(new_layer); return; } +#endif if ( new_layer->export_progress == -1 ) { wxString msg = wxString::Format(_("Save as data source (%s) failed.\n\nDetails:"),new_ds_name); msg << new_layer->error_message; @@ -1553,8 +1557,16 @@ bool Project::InitFromOgrLayer() OGRDataAdapter& ogr_adapter = OGRDataAdapter::GetInstance(); // ReadLayer() is running in a seperate thread. // This gives us a chance to get its progress for a Progress window. - layer_proxy = ogr_adapter.T_ReadLayer(datasource_name, ds_type, layername); - OGRwkbGeometryType eGType = layer_proxy->GetShapeType(); + try { + layer_proxy = ogr_adapter.T_ReadLayer(datasource_name, ds_type, layername); + } catch (GdaException& e) { + // remove this datasource_proxy from cache + ogr_adapter.RemoveDatasourceProxy(datasource_name); + throw e; + return false; + } + + OGRwkbGeometryType eGType = layer_proxy->GetShapeType(); if ( eGType == wkbLineString || eGType == wkbMultiLineString ) { open_err_msg << _("GeoDa does not support datasource with line data at this time. Please choose a datasource with either point or polygon data."); From 4c314636bcb36cda8146b395a5a12ba27644b287 Mon Sep 17 00:00:00 2001 From: lixun910 Date: Thu, 15 Aug 2019 16:53:39 -0700 Subject: [PATCH 35/60] update build scripts on Ubuntu xenial and packaging scripts --- BuildTools/ubuntu/build_xenial.sh | 661 +++++++++++++++++++ BuildTools/ubuntu/package/DEBIAN/control1804 | 4 +- BuildTools/ubuntu/package/DEBIAN/control64 | 4 +- BuildTools/ubuntu/run.sh | 6 +- BuildTools/ubuntu/run_geoda.sh | 6 +- GeoDamake.opt | 11 +- GeoDamake.xenial.opt | 78 +++ 7 files changed, 755 insertions(+), 15 deletions(-) create mode 100755 BuildTools/ubuntu/build_xenial.sh create mode 100644 GeoDamake.xenial.opt diff --git a/BuildTools/ubuntu/build_xenial.sh b/BuildTools/ubuntu/build_xenial.sh new file mode 100755 index 000000000..239b44c5c --- /dev/null +++ b/BuildTools/ubuntu/build_xenial.sh @@ -0,0 +1,661 @@ +#!/bin/bash +############################################################################# +# ./build.sh +# ./build.sh [CPU] +# ./build.sh 8 (with debug) +# ./build.sh [CPU] [NODEBUG, true=1 false=0(default)] +# ./build.sh 8 1 (no debug) +############################################################################# +CPUS=2 +NODEBUG=1 + +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Install prerequisit ?" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +read -p "Install pre-requisites for development: cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlib1g-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkit-dev libssl-dev? [y/n]" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]]; then + sudo apt install cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlib1g-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkit-dev libssl-dev +fi + + +unset ORACLE_HOME +export GEODA_HOME=$PWD +PREFIX=$GEODA_HOME/libraries +DOWNLOAD_HOME=$GEODA_HOME/temp +echo $PREFIX + +MAKER="make -j $CPUS" +export CFLAGS="-m64" +export CXXFLAGS="-m64" +export LDFLAGS="-m64 -L/usr/lib/x86_64-linux-gnu" + +if ! [ -d $DOWNLOAD_HOME ]; then + mkdir $DOWNLOAD_HOME +fi + +if ! [ -d $PREFIX ]; then + mkdir $PREFIX +fi + +######################################################################### +# install library function +######################################################################### +install_library() +{ + LIB_NAME=$1 + LIB_URL=$2 + LIB_CHECKER=$3 + LIB_FILENAME=$(basename "$LIB_URL") + CONFIGURE_FLAGS=$4 + echo "" + echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + echo "% Building: $LIB_FILENAME" + echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + + cd $DOWNLOAD_HOME + + if ! [ -f "$LIB_FILENAME" ] ; then + echo "$LIB_FILENAME not found. Downloading..." + curl -L -O $LIB_URL + else + echo "$LIB_FILENAME found. Download skipped." + fi + + if ! [ -d "$LIB_NAME" ] ; then + echo "Directory $LIB_NAME not found. Expanding..." + tar -xf $LIB_FILENAME + else + echo "Directory $LIB_NAME found. File expansion skipped." + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + chmod +x configure + ./configure CFLAGS="-m64" CXXFLAGS="-m64" LDFLAGS="-m64 -L/usr/lib/x86_64-linux-gnu" --prefix=$PREFIX $CONFIGURE_FLAGS + $MAKER + make install + fi + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} +######################################################################### +# install libiConv +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: libiConv %" +echo "%%%%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME="libiconv-1.13" + LIB_URL="http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz" + LIB_CHECKER="libiconv.a" + LIB_FILENAME="libiconv-1.13.tar.gz" + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + tar -xf $LIB_FILENAME + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + chmod +x configure + ./configure --enable-static --prefix=$PREFIX + $MAKER + make install + fi + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# install c-ares -- for cURL, prevent crash on Mac oSx with threads +######################################################################### +install_library c-ares-1.10.0 http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz libcares.a + + +######################################################################### +# install cURL +######################################################################### + +LIB_NAME=curl-7.61.0 +LIB_CHECKER=libcurl.a +LIB_URL=https://curl.haxx.se/download/curl-7.61.0.tar.gz +LIB_FILENAME=curl-7.61.0.tar.gz +echo $LIB_NAME + +cd $DOWNLOAD_HOME + +if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + unzip $LIB_FILENAME +fi + +if ! [ -d "$LIB_NAME" ]; then + tar -xf $LIB_FILENAME +fi + +if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + ./configure --with-ssl --enable-ares=$PREFIX CC="$GDA_CC" CFLAGS="$GDA_CFLAGS" CXX="$GDA_CXX" CXXFLAGS="$GDA_CXXFLAGS" LDFLAGS="$GDA_LDFLAGS" --prefix=$PREFIX + $MAKER + make install +fi + +if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit +fi + + +######################################################################### +# install Xerces +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%" +echo "% Building: Xerces %" +echo "%%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME="xerces-c-3.1.1" + LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/xerces-c-3.1.1.tar.gz" + LIB_CHECKER="libxerces-c.a" + LIB_FILENAME=$(basename "$LIB_URL" ".tar") + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + tar -xf $LIB_FILENAME + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + chmod +x configure + ./configure --prefix=$PREFIX + chmod +x config/pretty-make + $MAKER + make install + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# install GEOS +######################################################################### +install_library geos-3.6.2 https://download.osgeo.org/geos/geos-3.6.2.tar.bz2 libgeos.a + +######################################################################### +# install PROJ.4 +######################################################################### +install_library proj-4.8.0 https://s3.us-east-2.amazonaws.com/geodabuild/proj-4.8.0.tar.gz libproj.a + +######################################################################### +# install FreeXL +######################################################################### +install_library freexl-1.0.0f https://s3.us-east-2.amazonaws.com/geodabuild/freexl-1.0.0f.tar.gz libfreexl.a + +######################################################################### +# install SQLite +######################################################################### +install_library sqlite-autoconf-3071602 https://s3.us-east-2.amazonaws.com/geodabuild/sqlite-autoconf-3071602.tar.gz libsqlite3.a + +######################################################################### +# install PostgreSQL +######################################################################### +# libreadline, zlib +echo "install libreadline, zlib" +install_library postgresql-9.2.4 https://s3.us-east-2.amazonaws.com/geodabuild/postgresql-9.2.4.tar.bz2 libpq.a + +######################################################################### +# install libjpeg +######################################################################### +install_library jpeg-8 https://s3.us-east-2.amazonaws.com/geodabuild/jpegsrc.v8.tar.gz libjpeg.a + +######################################################################### +# install libkml requires 1.3 +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%" +echo "% Building: libkml %" +echo "%%%%%%%%%%%%%%%%%%%%" +# libexpat,libcurl4-gnutls-dev +#install_library libkml-1.2.0 https://libkml.googlecode.com/files/libkml-1.2.0.tar.gz libkmlbase.a +{ + LIB_NAME="libkml" + LIB_CHECKER="libkmlbase.a" + LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/libkml-r680.tar.gz + LIB_FILENAME=libkml-r680.tar.gz + echo $LIB_NAME + + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + fi + + if ! [ -d "$LIB_NAME" ]; then + tar -xf $LIB_FILENAME + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cp -rf ../dep/"$LIB_NAME" . + cd $LIB_NAME + export PATH=$PREFIX/bin:$PATH + ./autogen.sh + chmod +x configure + ./configure CXXFLAGS="-Wno-long-long" --prefix=$PREFIX + sed -i.old "/gtest-death-test.Plo/d" third_party/Makefile + sed -i.old "/gtest-filepath.Plo/d" third_party/Makefile + sed -i.old "/gtest-port.Plo/d" third_party/Makefile + sed -i.old "/gtest-test-part.Plo/d" third_party/Makefile + sed -i.old "/gtest-typed-test.Plo/d" third_party/Makefile + sed -i.old "/gtest-test.Plo/d" third_party/Makefile + sed -i.old "/gtest.Plo/d" third_party/Makefile + sed -i.old "/gtest_main.Plo/d" third_party/Makefile + sed -i.old "/UriCommon.Plo/d" third_party/Makefile + sed -i.old "/UriCompare.Plo/d" third_party/Makefile + sed -i.old "/UriEscape.Plo/d" third_party/Makefile + sed -i.old "/UriFile.Plo/d" third_party/Makefile + sed -i.old "/UriIp4.Plo/d" third_party/Makefile + sed -i.old "/UriIp4Base.Plo/d" third_party/Makefile + sed -i.old "/UriNormalize.Plo/d" third_party/Makefile + sed -i.old "/UriNormalizeBase.Plo/d" third_party/Makefile + sed -i.old "/UriParse.Plo/d" third_party/Makefile + sed -i.old "/UriParseBase.Plo/d" third_party/Makefile + sed -i.old "/UriQuery.Plo/d" third_party/Makefile + sed -i.old "/UriRecompose.Plo/d" third_party/Makefile + sed -i.old "/UriResolve.Plo/d" third_party/Makefile + sed -i.old "/UriShorten.Plo/d" third_party/Makefile + sed -i.old "/ioapi.Plo/d" third_party/Makefile + sed -i.old "/iomem_simple.Plo/d" third_party/Makefile + sed -i.old "/zip.Plo/d" third_party/Makefile + #$MAKER + sed -i.old "s/examples//g" Makefile + make third_party + make src + make testdata + make install + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# install SpatiaLite +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: Spatialite %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME=libspatialite-4.0.0 + LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/libspatialite-4.0.0.tar.gz + LIB_FILENAME=$(basename "$LIB_URL" ".tar") + LIB_CHECKER=libspatialite.a + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + tar -xf $LIB_FILENAME + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + chmod +x configure + ./configure CFLAGS="-I$PREFIX/include" CXXFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib -liconv" --prefix=$PREFIX --with-geosconfig=$PREFIX/bin/geos-config + $MAKER + make install + fi + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} +######################################################################### +# MySQL +######################################################################### +#cmake, curse +echo "" +echo "%%%%%%%%%%%%%%%%%%%" +echo "% Building: MySQL %" +echo "%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME=mysql-5.6.14 + LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/mysql-5.6.14.tar.gz + LIB_CHECKER=libmysqlclient.a + + echo $LIB_NAME + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -O $LIB_URL + tar -xf $LIB_NAME.tar.gz + #cp $GEODA_HOME/dep/mysql/my_default.h $GEODA_HOME/temp/mysql-5.6.14/include/my_default.h + fi + + if ! [ -f "$GEODA_HOME/temp/mysql-5.6.14/bld/libmysql/$LIB_CHECKER" ] ; then + echo "HERE" + cd $LIB_NAME + mkdir -p bld + cd bld + cmake -DCURSES_LIBRARY=/usr/lib/libncurses.so -DCURSES_INCLUDE_PATH=/usr/include .. + chmod +x bld/extra/comp_err + chmod +x bld/sql/gen_lex_hash + chmod +x storage/perfschema/gen_pfs_lex_token + $MAKER + fi + + if ! [ -f "$GEODA_HOME/temp/$LIB_NAME/bld/libmysql/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# Eigen3 +######################################################################### +LIB_NAME=eigen3 +LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/eigen3.zip +LIB_CHECKER=Dense +LIB_FILENAME=$LIB_NAME.zip +echo $LIB_FILENAME +cd $DOWNLOAD_HOME + +if ! [ -f "$LIB_FILENAME" ] ; then + curl -O $LIB_URL +fi + +if ! [ -d "$LIB_NAME" ]; then + unzip $LIB_FILENAME +fi + +cd $DOWNLOAD_HOME/$LIB_NAME +if ! [ -f "$PREFIX/include/eigen3/Eigen/$LIB_CHECKER" ] ; then + mkdir bld + cd bld + cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX + make install +fi + +if ! [ -f "$PREFIX/include/eigen3/Eigen/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit +fi +######################################################################### +# install boost library +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: Boost 1.57 %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME=boost_1_57_0 + LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/boost_1_57_0.tar.gz + LIB_FILENAME=boost_1_57_0.tar.gz + LIB_CHECKER=libboost_thread.a + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -f "$LIB_FILENAME" ]; then + echo "$LIB_FILENAME not found. Downloading..." + curl -O $LIB_URL + else + echo "$LIB_FILENAME found. Skipping download." + fi + + if ! [ -d "$LIB_NAME" ]; then + echo "Directory $LIB_NAME not found. Expanding archive." + tar -xf $LIB_FILENAME + else + echo "Directory $LIB_NAME found. Skipping expansion." + fi + + if ! [ -f "$GEODA_HOME/temp/$LIB_NAME/stage/lib/$LIB_CHECKER" ] ; then + echo "$LIB_CHECKER not found. Building Boost..." + cd $PREFIX/include + rm boost + ln -s $DOWNLOAD_HOME/boost_1_57_0 boost + cd $DOWNLOAD_HOME/boost_1_57_0 + chmod +x bootstrap.sh + #chmod +x tools/build/v2/engine/build.sh + ./bootstrap.sh + chmod +x b2 + ./b2 --with-thread --with-date_time --with-chrono --with-system link=static threading=multi stage + fi + + if ! [ -f "$GEODA_HOME/temp/$LIB_NAME/stage/lib/$LIB_CHECKER" ] ; then + echo "Error: Target library $LIB_CHECKER not found. Exiting build." + exit + fi +} + +######################################################################### +# install JSON Spirit +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: JSON Spirit %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%" +LIB_NAME="json_spirit_v4.08" +LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/json_spirit_v4.08.zip" +LIB_CHECKER="libjson_spirit.a" +LIB_FILENAME="json_spirit_v4.08.zip" +echo $LIB_FILENAME + +cd $DOWNLOAD_HOME + +if ! [ -d "$LIB_NAME" ]; then + curl -O https://s3.us-east-2.amazonaws.com/geodabuild/json_spirit_v4.08.zip + unzip $LIB_FILENAME +fi + +cd $DOWNLOAD_HOME/$LIB_NAME + +if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cp $GEODA_HOME/dep/json_spirit/CMakeLists.txt . + mkdir bld + cd bld + CC=$GDA_CC CXX=$GDA_CXX CFLAGS=$GDA_CFLAGS CXXFLAGS=$GDA_CXXFLAGS LDFLAGS=$GDA_LDFLAGS cmake .. + make + rm -rf "$PREFIX/include/json_spirit" + rm -f "$PREFIX/lib/$LIB_CHECKER" + mkdir "$PREFIX/include/json_spirit" + echo "Copying JSON Sprit includes..." + cp -R "../json_spirit" "$PREFIX/include/." + echo "Copying libjson_spirit.a" + cp json_spirit/libjson_spirit.a "$PREFIX/lib/." +fi + +if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit +fi + +######################################################################### +# install CLAPACK +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: CLAPACK 3.2.1 %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%" +{ + CLAPACK_NAME="CLAPACK-3.2.1" + LIB_CHECKER="libf2c.a" + echo $CLAPACK_NAME + + cd $DOWNLOAD_HOME + if ! [ -d "$CLAPACK_NAME" ]; then + curl -O https://s3.us-east-2.amazonaws.com/geodabuild/clapack.tgz + tar -xvf clapack.tgz + fi + + cp -rf $GEODA_HOME/dep/$CLAPACK_NAME . + cd $CLAPACK_NAME + if ! [ -f "libf2c.a" ] || ! [ -f "blas.a" ] || ! [ -f "lapack.a" ]; then + cp make.inc.example make.inc + $MAKER f2clib + cp F2CLIBS/libf2c.a . + $MAKER blaslib + cd INSTALL + $MAKER + cd .. + cd SRC + $MAKER + cd .. + $MAKER + mv -f blas_LINUX.a blas.a + mv -f lapack_LINUX.a lapack.a + mv -f tmglib_LINUX.a tmglib.a + cd .. + fi + + if ! [ -f "$GEODA_HOME/temp/$CLAPACK_NAME/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# install json-c +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: json-c " +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +{ + + LIB_NAME=json-c + LIB_CHECKER=libjson-c.a + + if ! [ -d "$LIB_NAME" ] ; then + git clone https://github.com/json-c/json-c.git + fi + + + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + sh autogen.sh + ./configure --prefix=$PREFIX + make + make install + fi + + #if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + #echo "Error! Exit" + #exit + #fi +} + +######################################################################### +# install GDAL/OGR +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building: Custom GDAL/OGR 1.9.2 %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +{ + LIB_NAME=gdal + LIB_URL=https://codeload.github.com/lixun910/gdal/zip/GeoDa17Merge + LIB_FILENAME=GeoDa17Merge + LIB_CHECKER=libgdal.a + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -d "$LIB_NAME" ] ; then + curl -k -O $LIB_URL + unzip $LIB_FILENAME + mv gdal-GeoDa17Merge/gdal gdal + fi + + cp -rf $GEODA_HOME/dep/$LIB_NAME . + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + chmod +x configure + chmod +x install-sh + ./configure + cp -rf $GEODA_HOME/dep/gdal-1.9.2/* . + cp GDALmake64.opt GDALmake.opt + #make clean + $MAKER + make install + #cd ogr/ogrsf_frmts/oci + #make plugin + #mv ogr_OCI.so ogr_OCI.dylib + #install_name_tool -change "/scratch/plebld/208/network/lib/libnnz10.dylib" "/Users/xun/Downloads/Oracle_10204Client_MAC_X86/ohome/lib/libnnz10.dylib" ogr_OCI.so + fi + if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# install wxWidgets library +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "% Building wxWidgets 3.0.2 %" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +# sudo apt-get install libgtk2.0-dev libglu1-mesa-dev libgl1-mesa-dev +{ + LIB_NAME=wxWidgets-3.1.0 + LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/wxWidgets-3.1.0.tar.bz2" + + + LIB_FILENAME=$(basename "$LIB_URL" ".tar") + LIB_CHECKER=wx-config + echo $LIB_FILENAME + + cd $DOWNLOAD_HOME + if ! [ -f "$LIB_FILENAME" ] ; then + curl -k -o $LIB_FILENAME $LIB_URL + fi + + if ! [ -d "$LIB_NAME" ]; then + tar -xf $LIB_FILENAME + fi + + if ! [ -f "$PREFIX/bin/$LIB_CHECKER" ] ; then + cd $LIB_NAME + cp -rf $GEODA_HOME/dep/$LIB_NAME/* . + chmod +x configure + chmod +x src/stc/gen_iface.py + ./configure --with-gtk=2 --disable-shared --enable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX + $MAKER + make install + cd .. + fi + + if ! [ -f "$PREFIX/bin/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit + fi +} + +######################################################################### +# build GeoDa +######################################################################### +echo "" +echo "%%%%%%%%%%%%%%%%%%%" +echo "% Building: GeoDa %" +echo "%%%%%%%%%%%%%%%%%%%" +{ + cd $GEODA_HOME + cp ../../GeoDamake.xenial.opt ../../GeoDamake.opt + mkdir ../../o + $MAKER + make app +} diff --git a/BuildTools/ubuntu/package/DEBIAN/control1804 b/BuildTools/ubuntu/package/DEBIAN/control1804 index a58bb23f4..4b9e2f861 100644 --- a/BuildTools/ubuntu/package/DEBIAN/control1804 +++ b/BuildTools/ubuntu/package/DEBIAN/control1804 @@ -3,8 +3,8 @@ Version: 1.14-1bionic1 Architecture: amd64 Priority: optional Section: graphics -Installed-Size: 12179512 -Depends: libcurl4-openssl-dev, libgdal-dev, zlib1g, libexpat1, freeglut3, libreadline7, libgtk-3-0, libc-dev-bin, libssl1.0.0, libwebkitgtk-1.0-0 +Installed-Size: 121795 +Depends: zlib1g, libexpat1, freeglut3, libreadline7, libgtk-3-0, libssl1.0.0, libwebkitgtk-1.0-0 Maintainer: Luc Anselin < anselin@uchicago.edu > Provides: geoda Homepage: http://spatial.uchicago.edu diff --git a/BuildTools/ubuntu/package/DEBIAN/control64 b/BuildTools/ubuntu/package/DEBIAN/control64 index 167c37026..b07211075 100644 --- a/BuildTools/ubuntu/package/DEBIAN/control64 +++ b/BuildTools/ubuntu/package/DEBIAN/control64 @@ -3,8 +3,8 @@ Version: 1.14-1xenial1 Architecture: amd64 Priority: optional Section: graphics -Installed-Size: 20857476 -Depends: libcurl4-openssl-dev, zlib1g, libexpat1, freeglut3, libreadline6, libgtk-3-0, libc-dev-bin, libssl1.0.0, libwebkitgtk-1.0-0 +Installed-Size: 208574 +Depends: zlib1g, libexpat1, freeglut3, libreadline6, libgtk-3-0, libssl1.0.0, libwebkitgtk-1.0-0 Maintainer: Luc Anselin < anselin@uchicago.edu > Provides: geoda Homepage: http://spatial.uchicago.edu diff --git a/BuildTools/ubuntu/run.sh b/BuildTools/ubuntu/run.sh index 562c0bd7c..479db87e0 100755 --- a/BuildTools/ubuntu/run.sh +++ b/BuildTools/ubuntu/run.sh @@ -6,7 +6,7 @@ GEODA_HOME=$(cd "$(dirname "$0")"; pwd) export LD_LIBRARY_PATH=$GEODA_HOME/plugins:$ORACLE_HOME:$LD_LIBRARY_PATH export GDAL_DATA=$GEODA_HOME/gdaldata export OGR_DRIVER_PATH=$GEODA_HOME/plugins -chmod +x $GEODA_HOME/plugins/* -chmod +x $GEODA_HOME/cache.sqlite -chmod +x $GEODA_HOME/GeoDa +#chmod +x $GEODA_HOME/plugins/* +#chmod +x $GEODA_HOME/cache.sqlite +#chmod +x $GEODA_HOME/GeoDa exec "$GEODA_HOME/GeoDa" diff --git a/BuildTools/ubuntu/run_geoda.sh b/BuildTools/ubuntu/run_geoda.sh index 53cf6509d..e4bacd9c0 100755 --- a/BuildTools/ubuntu/run_geoda.sh +++ b/BuildTools/ubuntu/run_geoda.sh @@ -6,7 +6,7 @@ GEODA_HOME=/usr/local/geoda export LD_LIBRARY_PATH=$GEODA_HOME/plugins:$ORACLE_HOME:$LD_LIBRARY_PATH export GDAL_DATA=$GEODA_HOME/gdaldata export OGR_DRIVER_PATH=$GEODA_HOME/plugins -chmod +x $GEODA_HOME/plugins/* -chmod +x $GEODA_HOME/cache.sqlite -chmod +x $GEODA_HOME/GeoDa +#chmod +x $GEODA_HOME/plugins/* +#chmod +x $GEODA_HOME/cache.sqlite +#chmod +x $GEODA_HOME/GeoDa exec "$GEODA_HOME/GeoDa" diff --git a/GeoDamake.opt b/GeoDamake.opt index a9c7db66c..ed96cc914 100644 --- a/GeoDamake.opt +++ b/GeoDamake.opt @@ -19,20 +19,21 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ - -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkitgtk-1.0 -lEGL + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl \ + -L/usr/lib/x86_64-linux-gnu -lwebkitgtk-1.0 -lGL -lz -lGLU -lEGL -lexpat # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. -BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost +BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -I/usr/include -CPPFLAGS = -I$(GeoDa_ROOT) +CPPFLAGS = -I$(GeoDa_ROOT) CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) -LDFLAGS = +LDFLAGS = OBJ_EXT = o @@ -64,7 +65,7 @@ o/%.$(OBJ_EXT): %.cpp $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< %.$(OBJ_EXT): %.cpp - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< # # default rules for handling subdirectories diff --git a/GeoDamake.xenial.opt b/GeoDamake.xenial.opt new file mode 100644 index 000000000..ed96cc914 --- /dev/null +++ b/GeoDamake.xenial.opt @@ -0,0 +1,78 @@ +GeoDa_ROOT = $(GEODA_HOME)/../.. + +TARGET = GeoDa + +CC = /usr/bin/gcc +CXX = /usr/bin/g++ +LD = /usr/bin/g++ +RM = /bin/rm -f + +WXLIBS = $(shell $(GEODA_HOME)/libraries/bin/wx-config --libs xrc,stc,richtext,ribbon,propgrid,aui,gl,html,webview,qa,adv,core,xml,net,base) +WX_HEADER = $(shell $(GEODA_HOME)/libraries/bin/wx-config --cppflags) + +LIBS = $(WXLIBS) \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/lapack.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/libf2c.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/blas.a \ + $(GEODA_HOME)/temp/CLAPACK-3.2.1/tmglib.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_date_time.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ + $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ + $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl \ + -L/usr/lib/x86_64-linux-gnu -lwebkitgtk-1.0 -lGL -lz -lGLU -lEGL -lexpat +# Note: Library -lrtmp causes a missing library problem at runtime on +# Ubuntu 14.10 and later. + +BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost + +EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 + +GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -I/usr/include + +CPPFLAGS = -I$(GeoDa_ROOT) +CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) +CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) +LDFLAGS = + +OBJ_EXT = o + +# +# generic library rules +# + +# +# gdal and ogr low level drivers use the following default rules in order to +# populate the ../o/ directory with all object and library object files +# + +O_OBJ = $(foreach file,$(OBJ),../o/$(file)) +T_OBJ = $(foreach file,$(OBJ),o/$(file)) + +../o/%.$(OBJ_EXT): %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + +../o/%.$(OBJ_EXT): %.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + +o/%.$(OBJ_EXT): %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + +o/%.$(OBJ_EXT): %.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + +%.$(OBJ_EXT): %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + +%.$(OBJ_EXT): %.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< + +# +# default rules for handling subdirectories +# + +%-target: + $(MAKE) -C $* + +%-clean: + $(MAKE) -C $* clean From b80c519d83d6435d4e745b82d9b91a89092ad382 Mon Sep 17 00:00:00 2001 From: lixun910 Date: Thu, 15 Aug 2019 20:31:37 -0700 Subject: [PATCH 36/60] update build scripts on Ubuntu for lab environment --- BuildTools/ubuntu/GNUmakefile | 2 +- BuildTools/ubuntu/build64_18.04.sh | 614 ------------------ BuildTools/ubuntu/build_bionic.sh | 3 +- ...eate_deb_18.04.sh => create_deb_bionic.sh} | 0 .../{create_deb.sh => create_deb_xenial.sh} | 0 .../ubuntu/dep/mysql-5.6.14/CMakeLists.txt | 483 ++++++++++++++ .../ubuntu/package_trusty/DEBIAN/control | 13 - .../ubuntu/package_trusty/DEBIAN/control1804 | 13 - .../ubuntu/package_trusty/DEBIAN/control64 | 13 - .../ubuntu/package_trusty/DEBIAN/postinst | 4 - .../usr/share/applications/GeoDa.desktop | 10 - .../icons/hicolor/128x128/apps/geoda.png | Bin 4073 -> 0 bytes .../share/icons/hicolor/16x16/apps/geoda.png | Bin 737 -> 0 bytes .../share/icons/hicolor/22x22/apps/geoda.png | Bin 1199 -> 0 bytes .../share/icons/hicolor/24x24/apps/geoda.png | Bin 1314 -> 0 bytes .../share/icons/hicolor/32x32/apps/geoda.png | Bin 2075 -> 0 bytes .../share/icons/hicolor/48x48/apps/geoda.png | Bin 4073 -> 0 bytes .../share/icons/hicolor/64x64/apps/geoda.png | Bin 4073 -> 0 bytes .../share/icons/hicolor/96x96/apps/geoda.png | Bin 4073 -> 0 bytes DialogTools/AggregateDlg.cpp | 4 +- DialogTools/DissolveDlg.cpp | 6 +- GeoDamake.bionic.opt | 4 +- GeoDamake.opt | 7 +- 23 files changed, 496 insertions(+), 680 deletions(-) delete mode 100755 BuildTools/ubuntu/build64_18.04.sh rename BuildTools/ubuntu/{create_deb_18.04.sh => create_deb_bionic.sh} (100%) rename BuildTools/ubuntu/{create_deb.sh => create_deb_xenial.sh} (100%) create mode 100644 BuildTools/ubuntu/dep/mysql-5.6.14/CMakeLists.txt delete mode 100644 BuildTools/ubuntu/package_trusty/DEBIAN/control delete mode 100644 BuildTools/ubuntu/package_trusty/DEBIAN/control1804 delete mode 100644 BuildTools/ubuntu/package_trusty/DEBIAN/control64 delete mode 100755 BuildTools/ubuntu/package_trusty/DEBIAN/postinst delete mode 100644 BuildTools/ubuntu/package_trusty/usr/share/applications/GeoDa.desktop delete mode 100644 BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/128x128/apps/geoda.png delete mode 100644 BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/16x16/apps/geoda.png delete mode 100644 BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/22x22/apps/geoda.png delete mode 100644 BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/24x24/apps/geoda.png delete mode 100644 BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/32x32/apps/geoda.png delete mode 100644 BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/48x48/apps/geoda.png delete mode 100644 BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/64x64/apps/geoda.png delete mode 100644 BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/96x96/apps/geoda.png diff --git a/BuildTools/ubuntu/GNUmakefile b/BuildTools/ubuntu/GNUmakefile index c12773c94..e9d012d98 100644 --- a/BuildTools/ubuntu/GNUmakefile +++ b/BuildTools/ubuntu/GNUmakefile @@ -93,7 +93,7 @@ build-geoda: cp $(GEODA_HOME)/libraries/lib/libgeos_c.so.1.10.2 build/plugins/libgeos_c.so.1 cp $(GEODA_HOME)/libraries/lib/libsqlite3.so.0.8.6 build/plugins/libsqlite3.so.0 cp $(GEODA_HOME)/libraries/lib/libiconv.so.2.5.0 build/plugins/libiconv.so.2 - #chmod +x build/plugins/libiconv.so.2 + chmod +x build/plugins/libiconv.so.2 cp $(GEODA_HOME)/libraries/lib/libminizip.so.0.0.0 build/plugins/libminizip.so.0 cp $(GEODA_HOME)/libraries/lib/liburiparser.so.1.0.5 build/plugins/liburiparser.so.1 cp $(GEODA_HOME)/libraries/lib/libgeos-3.6.2.so build/plugins/libgeos-3.6.2.so diff --git a/BuildTools/ubuntu/build64_18.04.sh b/BuildTools/ubuntu/build64_18.04.sh deleted file mode 100755 index 45b8eebb3..000000000 --- a/BuildTools/ubuntu/build64_18.04.sh +++ /dev/null @@ -1,614 +0,0 @@ -#!/bin/bash -############################################################################# -# ./build.sh -# ./build.sh [CPU] -# ./build.sh 8 (with debug) -# ./build.sh [CPU] [NODEBUG, true=1 false=0(default)] -# ./build.sh 8 1 (no debug) -############################################################################# -CPUS=2 -NODEBUG=1 - -if ! type "cmake" > /dev/null; then - echo "You need to install cmake to run this script." - sudo apt-get install cmake -fi - -if ! type "g++" > /dev/null; then - echo "You need to install g++/gcc version 6 to run this script." - sudo apt-get install g++-5 - sudo apt-get install gcc-5 -fi - -if ! type "svn" > /dev/null; then - echo "You need to install SVN to run this script." - sudo apt-get install subversion -fi - -if ! type "curl" > /dev/null; then - echo "You need to install curl to run this script." - sudo apt-get install curl -fi - -read -p "Do you want to install pre-requisites (e.g. libreadline, zlib, libexpat, libcurl ...)?[y/n]" -n 1 -r -echo -if [[ $REPLY =~ ^[Yy]$ ]]; then - sudo apt-get update - sudo apt-get install libssl-dev - sudo apt-get install libreadline-dev - sudo apt-get install zlib1g-dev - sudo apt-get install libexpat1-dev - sudo apt-get install dh-autoreconf - sudo apt-get install libcurl4-openssl-dev - sudo apt-get install libgtk-3-dev - sudo apt-get install libwebkit-dev - sudo apt-get install libwebkitgtk-dev - sudo apt-get install mesa-common-dev - sudo apt-get install freeglut3-dev - sudo apt-get install libglu1-mesa-dev - sudo apt-get install libgl1-mesa-dev - sudo apt-get install libgtk2.0-dev - sudo apt-get install librtmp-dev - sudo apt-get install libidn11-dev - sudo apt-get install libldap-dev -fi - -unset ORACLE_HOME -export GEODA_HOME=$PWD -PREFIX=$GEODA_HOME/libraries -DOWNLOAD_HOME=$GEODA_HOME/temp -echo $PREFIX - -MAKER="make CC=gcc-5 CPP=g++-5 CXX=g++-5 LD=g++-5 -j $CPUS" -export CFLAGS="-m64" -export CXXFLAGS="-m64" -export LDFLAGS="-m64 -L/usr/lib/x86_64-linux-gnu" - -if ! [ -d $DOWNLOAD_HOME ]; then - mkdir $DOWNLOAD_HOME -fi - -if ! [ -d $PREFIX ]; then - mkdir $PREFIX -fi - -######################################################################### -# install library function -######################################################################### -install_library() -{ - LIB_NAME=$1 - LIB_URL=$2 - LIB_CHECKER=$3 - LIB_FILENAME=$(basename "$LIB_URL") - CONFIGURE_FLAGS=$4 - echo "" - echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" - echo "% Building: $LIB_FILENAME" - echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" - - cd $DOWNLOAD_HOME - - if ! [ -f "$LIB_FILENAME" ] ; then - echo "$LIB_FILENAME not found. Downloading..." - curl -O $LIB_URL - else - echo "$LIB_FILENAME found. Download skipped." - fi - - if ! [ -d "$LIB_NAME" ] ; then - echo "Directory $LIB_NAME not found. Expanding..." - tar -xf $LIB_FILENAME - else - echo "Directory $LIB_NAME found. File expansion skipped." - fi - - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - cd $LIB_NAME - chmod +x configure - ./configure CFLAGS="-m64" CXXFLAGS="-m64" LDFLAGS="-m64 -L/usr/lib/x86_64-linux-gnu" --prefix=$PREFIX $CONFIGURE_FLAGS - $MAKER - make install - fi - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit - fi -} -######################################################################### -# install libiConv -######################################################################### -echo "" -echo "%%%%%%%%%%%%%%%%%%%%%%" -echo "% Building: libiConv %" -echo "%%%%%%%%%%%%%%%%%%%%%%" -{ - LIB_NAME="libiconv-1.13" - LIB_URL="http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz" - LIB_CHECKER="libiconv.a" - LIB_FILENAME="libiconv-1.13.tar.gz" - echo $LIB_FILENAME - - cd $DOWNLOAD_HOME - if ! [ -d "$LIB_NAME" ] ; then - curl -O $LIB_URL - tar -xf $LIB_FILENAME - fi - - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - cd $LIB_NAME - chmod +x configure - ./configure --enable-static --prefix=$PREFIX - $MAKER - make install - fi - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit - fi -} - -######################################################################### -# install c-ares -- for cURL, prevent crash on Mac oSx with threads -######################################################################### -install_library c-ares-1.10.0 https://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz libcares.a - - -######################################################################### -# install cURL -######################################################################### - -LIB_NAME=curl-7.61.0 -LIB_CHECKER=libcurl.a -LIB_URL=https://curl.haxx.se/download/curl-7.61.0.tar.gz -LIB_FILENAME=curl-7.61.0.tar.gz -echo $LIB_NAME - -cd $DOWNLOAD_HOME - -if ! [ -d "$LIB_NAME" ] ; then - curl -O $LIB_URL - unzip $LIB_FILENAME -fi - -if ! [ -d "$LIB_NAME" ]; then - tar -xf $LIB_FILENAME -fi - -if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - cd $LIB_NAME - ./configure --enable-ares=$PREFIX CC="$GDA_CC" CFLAGS="$GDA_CFLAGS" CXX="$GDA_CXX" CXXFLAGS="$GDA_CXXFLAGS" LDFLAGS="$GDA_LDFLAGS" --prefix=$PREFIX --without-librtmp - $MAKER - make install -fi - -if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit -fi - -######################################################################### -# install Xerces -######################################################################### -echo "" -echo "%%%%%%%%%%%%%%%%%%%%" -echo "% Building: Xerces %" -echo "%%%%%%%%%%%%%%%%%%%%" -{ - LIB_NAME="xerces-c-3.1.1" - LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/xerces-c-3.1.1.tar.gz" - LIB_CHECKER="libxerces-c.a" - LIB_FILENAME=$(basename "$LIB_URL" ".tar") - echo $LIB_FILENAME - - cd $DOWNLOAD_HOME - if ! [ -d "$LIB_NAME" ] ; then - curl -O $LIB_URL - tar -xf $LIB_FILENAME - fi - - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - cd $LIB_NAME - chmod +x configure - ./configure --prefix=$PREFIX - chmod +x config/pretty-make - $MAKER - make install - fi - - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit - fi -} - -######################################################################### -# install GEOS -######################################################################### -install_library geos-3.6.2 https://download.osgeo.org/geos/geos-3.6.2.tar.bz2 libgeos.a - -######################################################################### -# install PROJ.4 -######################################################################### -install_library proj-4.8.0 https://s3.us-east-2.amazonaws.com/geodabuild/proj-4.8.0.tar.gz libproj.a - -######################################################################### -# install FreeXL -######################################################################### -install_library freexl-1.0.0f https://s3.us-east-2.amazonaws.com/geodabuild/freexl-1.0.0f.tar.gz libfreexl.a - -######################################################################### -# install SQLite -######################################################################### -install_library sqlite-autoconf-3071602 https://s3.us-east-2.amazonaws.com/geodabuild/sqlite-autoconf-3071602.tar.gz libsqlite3.a - -######################################################################### -# install PostgreSQL -######################################################################### -# libreadline, zlib -echo "install libreadline, zlib" -install_library postgresql-9.2.4 https://s3.us-east-2.amazonaws.com/geodabuild/postgresql-9.2.4.tar.bz2 libpq.a - -######################################################################### -# install libjpeg -######################################################################### -install_library jpeg-8 https://s3.us-east-2.amazonaws.com/geodabuild/jpegsrc.v8.tar.gz libjpeg.a - -######################################################################### -# install libkml requires 1.3 -######################################################################### -echo "" -echo "%%%%%%%%%%%%%%%%%%%%" -echo "% Building: libkml %" -echo "%%%%%%%%%%%%%%%%%%%%" -# libexpat,libcurl4-gnutls-dev -#install_library libkml-1.2.0 https://libkml.googlecode.com/files/libkml-1.2.0.tar.gz libkmlbase.a -{ - LIB_NAME="libkml" - LIB_CHECKER="libkmlbase.a" - LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/libkml-r680.tar.gz - LIB_FILENAME=libkml-r680.tar.gz - echo $LIB_NAME - - cd $DOWNLOAD_HOME - if ! [ -d "$LIB_NAME" ] ; then - curl -O $LIB_URL - fi - - if ! [ -d "$LIB_NAME" ]; then - tar -xf $LIB_FILENAME - fi - - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - sudo apt-get install libexpat1-dev - cp -rf ../dep/"$LIB_NAME" . - cd $LIB_NAME - ./autogen.sh - chmod +x configure - ./configure CXXFLAGS="-Wno-long-long" --prefix=$PREFIX - sed -i.old "/gtest-death-test.Plo/d" third_party/Makefile - sed -i.old "/gtest-filepath.Plo/d" third_party/Makefile - sed -i.old "/gtest-port.Plo/d" third_party/Makefile - sed -i.old "/gtest-test-part.Plo/d" third_party/Makefile - sed -i.old "/gtest-typed-test.Plo/d" third_party/Makefile - sed -i.old "/gtest-test.Plo/d" third_party/Makefile - sed -i.old "/gtest.Plo/d" third_party/Makefile - sed -i.old "/gtest_main.Plo/d" third_party/Makefile - sed -i.old "/UriCommon.Plo/d" third_party/Makefile - sed -i.old "/UriCompare.Plo/d" third_party/Makefile - sed -i.old "/UriEscape.Plo/d" third_party/Makefile - sed -i.old "/UriFile.Plo/d" third_party/Makefile - sed -i.old "/UriIp4.Plo/d" third_party/Makefile - sed -i.old "/UriIp4Base.Plo/d" third_party/Makefile - sed -i.old "/UriNormalize.Plo/d" third_party/Makefile - sed -i.old "/UriNormalizeBase.Plo/d" third_party/Makefile - sed -i.old "/UriParse.Plo/d" third_party/Makefile - sed -i.old "/UriParseBase.Plo/d" third_party/Makefile - sed -i.old "/UriQuery.Plo/d" third_party/Makefile - sed -i.old "/UriRecompose.Plo/d" third_party/Makefile - sed -i.old "/UriResolve.Plo/d" third_party/Makefile - sed -i.old "/UriShorten.Plo/d" third_party/Makefile - sed -i.old "/ioapi.Plo/d" third_party/Makefile - sed -i.old "/iomem_simple.Plo/d" third_party/Makefile - sed -i.old "/zip.Plo/d" third_party/Makefile - #$MAKER - sed -i.old "s/examples//g" Makefile - make third_party - make src - make testdata - make install - fi - - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit - fi -} - -######################################################################### -# install SpatiaLite -######################################################################### -echo "" -echo "%%%%%%%%%%%%%%%%%%%%%%%%" -echo "% Building: Spatialite %" -echo "%%%%%%%%%%%%%%%%%%%%%%%%" -{ - LIB_NAME=libspatialite-4.0.0 - LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/libspatialite-4.0.0.tar.gz - LIB_FILENAME=$(basename "$LIB_URL" ".tar") - LIB_CHECKER=libspatialite.a - echo $LIB_FILENAME - - cd $DOWNLOAD_HOME - if ! [ -d "$LIB_NAME" ] ; then - curl -O $LIB_URL - tar -xf $LIB_FILENAME - fi - - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - cd $LIB_NAME - chmod +x configure - ./configure CFLAGS="-I$PREFIX/include" CXXFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib -liconv" --prefix=$PREFIX --with-geosconfig=$PREFIX/bin/geos-config - $MAKER - make install - fi - - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit - fi -} - -######################################################################### -# Eigen3 -######################################################################### -LIB_NAME=eigen3 -LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/eigen3.zip -LIB_CHECKER=Dense -LIB_FILENAME=$LIB_NAME.zip -echo $LIB_FILENAME -cd $DOWNLOAD_HOME - -if ! [ -f "$LIB_FILENAME" ] ; then - curl -O $LIB_URL -fi - -if ! [ -d "$LIB_NAME" ]; then - unzip $LIB_FILENAME -fi - -cd $DOWNLOAD_HOME/$LIB_NAME -if ! [ -f "$PREFIX/include/eigen3/Eigen/$LIB_CHECKER" ] ; then - mkdir bld - cd bld - cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX - make install -fi - -if ! [ -f "$PREFIX/include/eigen3/Eigen/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit -fi -######################################################################### -# install boost library -######################################################################### -echo "" -echo "%%%%%%%%%%%%%%%%%%%%%%%%" -echo "% Building: Boost 1.57 %" -echo "%%%%%%%%%%%%%%%%%%%%%%%%" -{ - LIB_NAME=boost_1_57_0 - LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/boost_1_57_0.tar.gz - LIB_FILENAME=boost_1_57_0.tar.gz - LIB_CHECKER=libboost_thread.a - echo $LIB_FILENAME - - cd $DOWNLOAD_HOME - if ! [ -f "$LIB_FILENAME" ]; then - echo "$LIB_FILENAME not found. Downloading..." - curl -O $LIB_URL - else - echo "$LIB_FILENAME found. Skipping download." - fi - - if ! [ -d "$LIB_NAME" ]; then - echo "Directory $LIB_NAME not found. Expanding archive." - tar -xf $LIB_FILENAME - else - echo "Directory $LIB_NAME found. Skipping expansion." - fi - - if ! [ -f "$GEODA_HOME/temp/$LIB_NAME/stage/lib/$LIB_CHECKER" ] ; then - echo "$LIB_CHECKER not found. Building Boost..." - cd $PREFIX/include - rm boost - ln -s $DOWNLOAD_HOME/boost_1_57_0 boost - cd $DOWNLOAD_HOME/boost_1_57_0 - chmod +x bootstrap.sh - #chmod +x tools/build/v2/engine/build.sh - ./bootstrap.sh - chmod +x b2 - ./b2 --toolset=gcc-5 --with-thread --with-date_time --with-chrono --with-system link=static threading=multi stage - fi - - if ! [ -f "$GEODA_HOME/temp/$LIB_NAME/stage/lib/$LIB_CHECKER" ] ; then - echo "Error: Target library $LIB_CHECKER not found. Exiting build." - exit - fi -} - -######################################################################### -# install JSON Spirit -######################################################################### -echo "" -echo "%%%%%%%%%%%%%%%%%%%%%%%%%" -echo "% Building: JSON Spirit %" -echo "%%%%%%%%%%%%%%%%%%%%%%%%%" -LIB_NAME="json_spirit_v4.08" -LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/json_spirit_v4.08.zip" -LIB_CHECKER="libjson_spirit.a" -LIB_FILENAME="json_spirit_v4.08.zip" -echo $LIB_FILENAME - -cd $DOWNLOAD_HOME - -if ! [ -d "$LIB_NAME" ]; then - curl -O https://s3.us-east-2.amazonaws.com/geodabuild/json_spirit_v4.08.zip - unzip $LIB_FILENAME -fi - -cd $DOWNLOAD_HOME/$LIB_NAME - -if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - cp $GEODA_HOME/dep/json_spirit/CMakeLists.txt . - mkdir bld - cd bld - CC=$GDA_CC CXX=$GDA_CXX CFLAGS=$GDA_CFLAGS CXXFLAGS=$GDA_CXXFLAGS LDFLAGS=$GDA_LDFLAGS cmake .. - make - rm -rf "$PREFIX/include/json_spirit" - rm -f "$PREFIX/lib/$LIB_CHECKER" - mkdir "$PREFIX/include/json_spirit" - echo "Copying JSON Sprit includes..." - cp -R "../json_spirit" "$PREFIX/include/." - echo "Copying libjson_spirit.a" - cp json_spirit/libjson_spirit.a "$PREFIX/lib/." -fi - -if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit -fi - -######################################################################### -# install CLAPACK -######################################################################### -echo "" -echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%" -echo "% Building: CLAPACK 3.2.1 %" -echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%" -{ - CLAPACK_NAME="CLAPACK-3.2.1" - LIB_CHECKER="libf2c.a" - echo $CLAPACK_NAME - - cd $DOWNLOAD_HOME - if ! [ -d "$CLAPACK_NAME" ]; then - curl -O https://s3.us-east-2.amazonaws.com/geodabuild/clapack.tgz - tar -xvf clapack.tgz - fi - - cp -rf $GEODA_HOME/dep/$CLAPACK_NAME . - cd $CLAPACK_NAME - if ! [ -f "libf2c.a" ] || ! [ -f "blas.a" ] || ! [ -f "lapack.a" ]; then - cp make.inc.example make.inc - $MAKER f2clib - cp F2CLIBS/libf2c.a . - $MAKER blaslib - cd INSTALL - $MAKER - cd .. - cd SRC - $MAKER - cd .. - $MAKER - mv -f blas_LINUX.a blas.a - mv -f lapack_LINUX.a lapack.a - mv -f tmglib_LINUX.a tmglib.a - cd .. - fi - - if ! [ -f "$GEODA_HOME/temp/$CLAPACK_NAME/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit - fi -} - -######################################################################### -# install json-c -######################################################################### -echo "" -echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" -echo "% Building: json-c " -echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" -{ - - LIB_NAME=json-c - LIB_CHECKER=libjson-c.a - - if ! [ -d "$LIB_NAME" ] ; then - git clone https://github.com/json-c/json-c.git - fi - - - if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - cd $LIB_NAME - sh autogen.sh - ./configure --prefix=$PREFIX - make - make install - fi - - #if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then - #echo "Error! Exit" - #exit - #fi -} - - -######################################################################### -# install wxWidgets library -######################################################################### -echo "" -echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" -echo "% Building wxWidgets 3.0.2 %" -echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" -# sudo apt-get install libgtk2.0-dev libglu1-mesa-dev libgl1-mesa-dev -{ - LIB_NAME=wxWidgets-3.1.0 - LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/wxWidgets-3.1.0.tar.bz2" - - LIB_FILENAME=$(basename "$LIB_URL" ".tar") - LIB_CHECKER=wx-config - echo $LIB_FILENAME - - cd $DOWNLOAD_HOME - if ! [ -f "$LIB_FILENAME" ] ; then - curl -k -o $LIB_FILENAME $LIB_URL - fi - - if ! [ -d "$LIB_NAME" ]; then - tar -xf $LIB_FILENAME - fi - - if ! [ -f "$PREFIX/bin/$LIB_CHECKER" ] ; then - cd $LIB_NAME - cp -rf $GEODA_HOME/dep/$LIB_NAME/* . - chmod +x configure - chmod +x src/stc/gen_iface.py - CC=gcc-5 CXX=g++-5 CPP=g++-5 LD=g++-5 ./configure --with-gtk=2 --enable-ascii --disable-shared --disable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX - $MAKE - make install - cd .. - fi - - if ! [ -f "$PREFIX/bin/$LIB_CHECKER" ] ; then - echo "Error! Exit" - exit - fi -} - -######################################################################### -# build GeoDa -######################################################################### -echo "" -echo "%%%%%%%%%%%%%%%%%%%" -echo "% Building: GeoDa %" -echo "%%%%%%%%%%%%%%%%%%%" -{ - cd $GEODA_HOME - cp ../../GeoDamake.ubuntu.1804.opt ../../GeoDamake.opt - mkdir ../../o - $MAKER - cp GNUmakefile GNUmakefile - make app18 -} diff --git a/BuildTools/ubuntu/build_bionic.sh b/BuildTools/ubuntu/build_bionic.sh index 36e189970..9a8ec8a34 100755 --- a/BuildTools/ubuntu/build_bionic.sh +++ b/BuildTools/ubuntu/build_bionic.sh @@ -349,6 +349,7 @@ echo "%%%%%%%%%%%%%%%%%%%" if ! [ -f "$GEODA_HOME/temp/mysql-5.6.14/bld/libmysql/$LIB_CHECKER" ] ; then echo "HERE" cd $LIB_NAME + cp $GEODA_HOME/dep/mysql-5.6.14/CMakeLists.txt . mkdir -p bld cd bld cmake -DCURSES_LIBRARY=/usr/lib/libncurses.so -DCURSES_INCLUDE_PATH=/usr/include .. @@ -632,7 +633,7 @@ echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" cp -rf $GEODA_HOME/dep/$LIB_NAME/* . chmod +x configure chmod +x src/stc/gen_iface.py - ./configure --with-gtk=2 --disable-shared --disable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX + ./configure --with-gtk=2 --disable-optimise --disable-shared --disable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX $MAKER make install cd .. diff --git a/BuildTools/ubuntu/create_deb_18.04.sh b/BuildTools/ubuntu/create_deb_bionic.sh similarity index 100% rename from BuildTools/ubuntu/create_deb_18.04.sh rename to BuildTools/ubuntu/create_deb_bionic.sh diff --git a/BuildTools/ubuntu/create_deb.sh b/BuildTools/ubuntu/create_deb_xenial.sh similarity index 100% rename from BuildTools/ubuntu/create_deb.sh rename to BuildTools/ubuntu/create_deb_xenial.sh diff --git a/BuildTools/ubuntu/dep/mysql-5.6.14/CMakeLists.txt b/BuildTools/ubuntu/dep/mysql-5.6.14/CMakeLists.txt new file mode 100644 index 000000000..1911e215e --- /dev/null +++ b/BuildTools/ubuntu/dep/mysql-5.6.14/CMakeLists.txt @@ -0,0 +1,483 @@ +# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +# Avoid warnings in higher versions +if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.6) + CMAKE_POLICY(VERSION 2.8) +endif() + +MESSAGE(STATUS "Running cmake version ${CMAKE_VERSION}") +SET(CMAKE_CXX_STANDARD 98) +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) + +# First, decide about build type (debug or release) +# If custom compiler flags are set or cmake is invoked with -DCMAKE_BUILD_TYPE, +# respect user wishes and do not (re)define CMAKE_BUILD_TYPE. If WITH_DEBUG{_FULL} +# is given, set CMAKE_BUILD_TYPE = Debug. Otherwise, use Relwithdebinfo. + + +IF(DEFINED CMAKE_BUILD_TYPE) + SET(HAVE_CMAKE_BUILD_TYPE TRUE) +ENDIF() +SET(CUSTOM_C_FLAGS $ENV{CFLAGS}) + +OPTION(WITH_DEBUG "Use dbug/safemutex" OFF) + +# Distinguish between community and non-community builds, with the +# default being a community build. This does not impact the feature +# set that will be compiled in; it's merely provided as a hint to +# custom packaging steps. +OPTION(COMMUNITY_BUILD "Set to true if this is a community build" ON) + +# Use a default manufacturer if no manufacturer was identified. +SET(MANUFACTURER_DOCSTRING + "Set the entity that appears as the manufacturer of packages that support a manufacturer field.") +IF(NOT DEFINED MANUFACTURER) + SET(MANUFACTURER "Built from Source" CACHE STRING ${MANUFACTURER_DOCSTRING}) + MARK_AS_ADVANCED(MANUFACTURER) +ENDIF() + +# We choose to provide WITH_DEBUG as alias to standard CMAKE_BUILD_TYPE=Debug +# which turns out to be not trivial, as this involves synchronization +# between CMAKE_BUILD_TYPE and WITH_DEBUG. Besides, we have to deal with cases +# where WITH_DEBUG is reset from ON to OFF and here we need to reset +# CMAKE_BUILD_TYPE to either none or default RelWithDebInfo + +SET(BUILDTYPE_DOCSTRING + "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or + CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel") + +# Possibly temporary fix: Clang on 32 bit causes non-debug server to crash +IF(CMAKE_OSX_ARCHITECTURES MATCHES "i386") + SET(CMAKE_CXX_COMPILER g++) +ENDIF() + +IF(WITH_DEBUG) + SET(CMAKE_BUILD_TYPE "Debug" CACHE STRING ${BUILDTYPE_DOCSTRING} FORCE) + SET(MYSQL_MAINTAINER_MODE ON CACHE BOOL + "MySQL maintainer-specific development environment") + IF(UNIX AND NOT APPLE) + # Compiling with PIC speeds up embedded build, on PIC sensitive systems + # Predefine it to ON, in case user chooses to build embedded. + SET(WITH_PIC ON CACHE BOOL "Compile with PIC") + ENDIF() + SET(OLD_WITH_DEBUG 1 CACHE INTERNAL "" FORCE) +ELSEIF(NOT HAVE_CMAKE_BUILD_TYPE OR OLD_WITH_DEBUG) + IF(CUSTOM_C_FLAGS) + SET(CMAKE_BUILD_TYPE "" CACHE STRING ${BUILDTYPE_DOCSTRING} FORCE) + ELSE(CMAKE_BUILD_TYPE MATCHES "Debug" OR NOT HAVE_CMAKE_BUILD_TYPE) + SET(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING + ${BUILDTYPE_DOCSTRING} FORCE) + ENDIF() + SET(OLD_WITH_DEBUG 0 CACHE INTERNAL "" FORCE) +ENDIF() + +# Optionally set project name, e.g. +# foo.xcodeproj (mac) or foo.sln (windows) +SET(MYSQL_PROJECT_NAME_DOCSTRING "MySQL project name") +IF(DEFINED MYSQL_PROJECT_NAME) + SET(MYSQL_PROJECT_NAME ${MYSQL_PROJECT_NAME} CACHE STRING + ${MYSQL_PROJECT_NAME_DOCSTRING} FORCE) +ELSE() + SET(MYSQL_PROJECT_NAME "MySQL" CACHE STRING + ${MYSQL_PROJECT_NAME_DOCSTRING} FORCE) + MARK_AS_ADVANCED(MYSQL_PROJECT_NAME) +ENDIF() +PROJECT(${MYSQL_PROJECT_NAME}) + +OPTION(WITH_DEFAULT_COMPILER_OPTIONS + "Use flags from cmake/build_configurations/compiler_options.cmake" + ON) +OPTION(WITH_DEFAULT_FEATURE_SET + "Use feature set in cmake/build_configurations/feature_set.cmake" + ON) +IF(BUILD_CONFIG) + INCLUDE( + ${CMAKE_SOURCE_DIR}/cmake/build_configurations/${BUILD_CONFIG}.cmake) +ENDIF() + +#cmake on 64bit windows/mac/solaris doesn't set CMAKE_SYSTEM_PROCESSOR correctly +SET(MYSQL_MACHINE_TYPE ${CMAKE_SYSTEM_PROCESSOR}) + + +# Include the platform-specific file. To allow exceptions, this code +# looks for files in order of how specific they are. If there is, for +# example, a generic Linux.cmake and a version-specific +# Linux-2.6.28-11-generic, it will pick Linux-2.6.28-11-generic and +# include it. It is then up to the file writer to include the generic +# version if necessary. +FOREACH(_base + ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}-${CMAKE_SYSTEM_PROCESSOR} + ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION} + ${CMAKE_SYSTEM_NAME}) + SET(_file ${CMAKE_SOURCE_DIR}/cmake/os/${_base}.cmake) + IF(EXISTS ${_file}) + INCLUDE(${_file}) + BREAK() + ENDIF() +ENDFOREACH() + + +IF(UNIX) + OPTION(WITH_INNODB_MEMCACHED "" OFF) + OPTION(ENABLE_MEMCACHED_SASL "Enable SASL on InnoDB Memcached" OFF) + OPTION(ENABLE_MEMCACHED_SASL_PWDB "Enable SASL on InnoDB Memcached" OFF) +ELSE() + OPTION(WITH_INNODB_MEMCACHED "" OFF) +ENDIF() + +# Following autotools tradition, add preprocessor definitions +# specified in environment variable CPPFLAGS +IF(DEFINED ENV{CPPFLAGS}) + ADD_DEFINITIONS($ENV{CPPFLAGS}) +ENDIF() + +INCLUDE(CheckTypeSize) +CHECK_TYPE_SIZE("void *" SIZEOF_VOIDP) +IF(WITH_DEFAULT_COMPILER_OPTIONS) + INCLUDE(${CMAKE_SOURCE_DIR}/cmake/build_configurations/compiler_options.cmake) +ENDIF() +IF(WITH_DEFAULT_FEATURE_SET) + INCLUDE(${CMAKE_SOURCE_DIR}/cmake/build_configurations/feature_set.cmake) +ENDIF() + +# +# Control aspects of the development environment which are +# specific to MySQL maintainers and developers. +# +INCLUDE(maintainer) + +OPTION(MYSQL_MAINTAINER_MODE + "MySQL maintainer-specific development environment" OFF) + +# Whether the maintainer mode compiler options should be enabled. +IF(MYSQL_MAINTAINER_MODE) + IF(CMAKE_C_COMPILER_ID MATCHES "GNU") + IF(WITH_INNODB_MEMCACHED) + SET_MYSQL_MAINTAINER_GNU_C_OPTIONS_NO_WERROR() + ELSE() + SET_MYSQL_MAINTAINER_GNU_C_OPTIONS() + ENDIF() + ENDIF() + IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU") + SET_MYSQL_MAINTAINER_GNU_CXX_OPTIONS() + ENDIF() + IF(CMAKE_C_COMPILER_ID MATCHES "Intel") + SET_MYSQL_MAINTAINER_INTEL_C_OPTIONS() + ENDIF() + IF(CMAKE_CXX_COMPILER_ID MATCHES "Intel") + SET_MYSQL_MAINTAINER_INTEL_CXX_OPTIONS() + ENDIF() +ENDIF() + +# Add macros +INCLUDE(character_sets) +INCLUDE(cpu_info) +INCLUDE(zlib) +INCLUDE(libevent) +INCLUDE(ssl) +INCLUDE(readline) +INCLUDE(mysql_version) +INCLUDE(libutils) +INCLUDE(dtrace) +INCLUDE(plugin) +INCLUDE(install_macros) +INCLUDE(install_layout) +INCLUDE(mysql_add_executable) + +# Handle options +OPTION(DISABLE_SHARED + "Don't build shared libraries, compile code as position-dependent" OFF) +IF(DISABLE_SHARED) + SET(WITHOUT_DYNAMIC_PLUGINS 1) +ENDIF() +OPTION(ENABLED_PROFILING "Enable profiling" ON) +OPTION(CYBOZU "" OFF) +OPTION(BACKUP_TEST "" OFF) +OPTION(WITHOUT_SERVER OFF) +IF(UNIX) + OPTION(WITH_VALGRIND "Valgrind instrumentation" OFF) +ENDIF() +OPTION (WITH_UNIT_TESTS "Compile MySQL with unit tests" ON) +MARK_AS_ADVANCED(CYBOZU BACKUP_TEST WITHOUT_SERVER DISABLE_SHARED) + +OPTION(ENABLE_DEBUG_SYNC "Enable debug sync (debug builds only)" ON) +IF(ENABLE_DEBUG_SYNC) + SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC") + SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC") +ENDIF() + +# Older versions of ccache must be disabled: export CCACHE_DISABLE=1 +# See http://www.cmake.org/Wiki/CTest/Coverage +OPTION(ENABLE_GCOV "Enable gcov (debug, Linux builds only)" OFF) +IF (ENABLE_GCOV AND NOT WIN32 AND NOT APPLE) + SET(CMAKE_CXX_FLAGS_DEBUG + "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage -DHAVE_GCOV") + SET(CMAKE_C_FLAGS_DEBUG + "${CMAKE_C_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage -DHAVE_GCOV") + SET(CMAKE_EXE_LINKER_FLAGS_DEBUG + "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage -lgcov") +ENDIF() + +OPTION(ENABLE_GPROF "Enable gprof (optimized, Linux builds only)" OFF) +IF (ENABLE_GPROF AND NOT WIN32 AND NOT APPLE) + SET(CMAKE_C_FLAGS_RELWITHDEBINFO + "${CMAKE_C_FLAGS_RELWITHDEBINFO} -pg") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO + "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -pg") + SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO + "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} -pg") +ENDIF() + +OPTION(ENABLED_LOCAL_INFILE + "If we should should enable LOAD DATA LOCAL by default" ${IF_WIN}) +MARK_AS_ADVANCED(ENABLED_LOCAL_INFILE) + +OPTION(WITH_FAST_MUTEXES "Compile with fast mutexes" OFF) +MARK_AS_ADVANCED(WITH_FAST_MUTEXES) + +OPTION(OPTIMIZER_TRACE "Support tracing of Optimizer" ON) + +OPTION(INNODB_COMPILER_HINTS "Compile InnoDB with compiler hints" ON) +MARK_AS_ADVANCED(INNODB_COMPILER_HINTS) + +# Set DBUG_OFF and other optional release-only flags for non-debug project types +FOREACH(BUILD_TYPE RELEASE RELWITHDEBINFO MINSIZEREL) + FOREACH(LANG C CXX) + SET(CMAKE_${LANG}_FLAGS_${BUILD_TYPE} + "${CMAKE_${LANG}_FLAGS_${BUILD_TYPE}} -DDBUG_OFF") + IF(WITH_FAST_MUTEXES) + SET(CMAKE_${LANG}_FLAGS_${BUILD_TYPE} + "${CMAKE_${LANG}_FLAGS_${BUILD_TYPE}} -DMY_PTHREAD_FASTMUTEX=1") + ENDIF() + ENDFOREACH() +ENDFOREACH() + +IF(NOT CMAKE_BUILD_TYPE + AND NOT CMAKE_GENERATOR MATCHES "Visual Studio" + AND NOT CMAKE_GENERATOR MATCHES "Xcode") + # This is the case of no CMAKE_BUILD_TYPE choosen, typical for VS and Xcode + # or if custom C flags are set. In VS and Xcode for non-Debug configurations + # DBUG_OFF is already correctly set. Use DBUG_OFF for Makefile based projects + # without build type too, unless user specifically requests DBUG. + IF(NOT CMAKE_C_FLAGS MATCHES "-DDBUG_ON") + ADD_DEFINITIONS(-DDBUG_OFF) + ENDIF() +ENDIF() + +# Add safemutex for debug configurations, except on Windows +# (safemutex has never worked on Windows) +IF(WITH_DEBUG AND NOT WIN32 AND NOT WITH_INNODB_MEMCACHED) + FOREACH(LANG C CXX) + SET(CMAKE_${LANG}_FLAGS_DEBUG + "${CMAKE_${LANG}_FLAGS_DEBUG} -DSAFE_MUTEX") + ENDFOREACH() +ENDIF() + + +# Set commonly used variables +IF(WIN32) + SET(DEFAULT_MYSQL_HOME "C:/Program Files/MySQL/MySQL Server ${MYSQL_BASE_VERSION}" ) + SET(SHAREDIR share) +ELSE() + SET(DEFAULT_MYSQL_HOME ${CMAKE_INSTALL_PREFIX}) + SET(SHAREDIR ${DEFAULT_MYSQL_HOME}/${INSTALL_MYSQLSHAREDIR}) +ENDIF() + +SET(DEFAULT_BASEDIR "${DEFAULT_MYSQL_HOME}") +IF(INSTALL_MYSQLDATADIR MATCHES "^/.*") + SET(MYSQL_DATADIR ${INSTALL_MYSQLDATADIR} CACHE PATH "default MySQL data directory") +ELSE() + SET(MYSQL_DATADIR "${DEFAULT_MYSQL_HOME}/${INSTALL_MYSQLDATADIR}" CACHE PATH "default MySQL data directory") +ENDIF() +SET(DEFAULT_CHARSET_HOME "${DEFAULT_MYSQL_HOME}") +SET(PLUGINDIR "${DEFAULT_MYSQL_HOME}/${INSTALL_PLUGINDIR}") +IF(SYSCONFDIR) + SET(DEFAULT_SYSCONFDIR "${SYSCONFDIR}") +ENDIF() + + +# Run platform tests +INCLUDE(configure.cmake) + +# Common defines and includes +ADD_DEFINITIONS(-DHAVE_CONFIG_H) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/include) + +# Add bundled or system zlib. +MYSQL_CHECK_ZLIB_WITH_COMPRESS() +# Add bundled yassl/taocrypt or system openssl. +MYSQL_CHECK_SSL() +# Add system/bundled editline. +MYSQL_CHECK_EDITLINE() +# Add libevent +MYSQL_CHECK_LIBEVENT() + +# +# Setup maintainer mode options by the end. Platform checks are +# not run with the warning options as to not perturb fragile checks +# (i.e. do not make warnings into errors). +# +# Why doesn't these flags affect the entire build? +# Because things may already have been included with ADD_SUBDIRECTORY +# +IF(MYSQL_MAINTAINER_MODE) + # Set compiler flags required under maintainer mode. + MESSAGE(STATUS "C warning options: ${MY_MAINTAINER_C_WARNINGS}") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MY_MAINTAINER_C_WARNINGS}") + MESSAGE(STATUS "C++ warning options: ${MY_MAINTAINER_CXX_WARNINGS}") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_MAINTAINER_CXX_WARNINGS}") +ENDIF() + +IF(CMAKE_COMPILER_IS_GNUCXX) + STRING(REGEX MATCH "-Werror" + BUILD_WITH_WERROR ${CMAKE_CXX_FLAGS}) + IF(BUILD_WITH_WERROR) + SET("COMPILE_FLAG_WERROR" 1) + ENDIF() +ENDIF() + +IF(WITH_UNIT_TESTS) + ENABLE_TESTING() +ENDIF() + +IF(NOT WITHOUT_SERVER) +SET (MYSQLD_STATIC_PLUGIN_LIBS "" CACHE INTERNAL "") + # Add storage engines and plugins. + CONFIGURE_PLUGINS() +ENDIF() + +ADD_SUBDIRECTORY(include) +ADD_SUBDIRECTORY(dbug) +ADD_SUBDIRECTORY(strings) +ADD_SUBDIRECTORY(vio) +ADD_SUBDIRECTORY(regex) +ADD_SUBDIRECTORY(mysys) +ADD_SUBDIRECTORY(mysys_ssl) +ADD_SUBDIRECTORY(libmysql) + +IF(WITH_UNIT_TESTS) + ADD_SUBDIRECTORY(unittest) + ADD_SUBDIRECTORY(unittest/examples) + ADD_SUBDIRECTORY(unittest/mytap) + ADD_SUBDIRECTORY(unittest/mytap/t) + # Visual Studio 11 needs this extra flag in order to compile gmock. + IF(WIN32) + ADD_DEFINITIONS( /D _VARIADIC_MAX=10 ) + ENDIF() + ADD_SUBDIRECTORY(unittest/gunit) +ENDIF() + +ADD_SUBDIRECTORY(extra) +IF(NOT WITHOUT_SERVER) + ADD_SUBDIRECTORY(tests) + ADD_SUBDIRECTORY(client) + ADD_SUBDIRECTORY(sql) + ADD_SUBDIRECTORY(sql/share) + ADD_SUBDIRECTORY(libservices) + OPTION (WITH_EMBEDDED_SERVER "Compile MySQL with embedded server" OFF) + IF(WITH_EMBEDDED_SERVER) + ADD_SUBDIRECTORY(libmysqld) + ADD_SUBDIRECTORY(libmysqld/examples) + ENDIF(WITH_EMBEDDED_SERVER) + + ADD_SUBDIRECTORY(mysql-test) + ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess) + ADD_SUBDIRECTORY(support-files) + ADD_SUBDIRECTORY(scripts) + ADD_SUBDIRECTORY(sql-bench) + IF(UNIX) + ADD_SUBDIRECTORY(man) + ENDIF() + IF(EXISTS ${CMAKE_SOURCE_DIR}/internal/CMakeLists.txt) + ADD_SUBDIRECTORY(internal) + ENDIF() + ADD_SUBDIRECTORY(packaging/rpm-uln) +ENDIF() + +INCLUDE(cmake/abi_check.cmake) +INCLUDE(cmake/tags.cmake) + +CONFIGURE_FILE(config.h.cmake ${CMAKE_BINARY_DIR}/include/my_config.h) +CONFIGURE_FILE(config.h.cmake ${CMAKE_BINARY_DIR}/include/config.h) +CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in + ${CMAKE_BINARY_DIR}/include/mysql_version.h ) +CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in + ${CMAKE_BINARY_DIR}/sql/sql_builtin.cc) +CONFIGURE_FILE( + ${CMAKE_SOURCE_DIR}/cmake/info_macros.cmake.in ${CMAKE_BINARY_DIR}/info_macros.cmake @ONLY) + +# Handle the "INFO_*" files. +INCLUDE(${CMAKE_BINARY_DIR}/info_macros.cmake) +# Source: This can be done during the cmake phase, all information is +# available, but should be repeated on each "make" just in case someone +# does "cmake ; make ; bzr pull ; make". +CREATE_INFO_SRC(${CMAKE_BINARY_DIR}/Docs) +ADD_CUSTOM_TARGET(INFO_SRC ALL + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/info_src.cmake + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} +) +# Build flags: This must be postponed to the make phase. +ADD_CUSTOM_TARGET(INFO_BIN ALL + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/info_bin.cmake + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} +) + +# Packaging +IF(WIN32) + SET(CPACK_GENERATOR "ZIP") +ELSE() + SET(CPACK_GENERATOR "TGZ") +ENDIF() +ADD_SUBDIRECTORY(packaging/WiX) +ADD_SUBDIRECTORY(packaging/solaris) + +# Create a single package with "make package" +# (see http://public.kitware.com/Bug/view.php?id=11452) +SET(CPACK_MONOLITHIC_INSTALL 1 CACHE INTERNAL "") + +INCLUDE(CPack) +IF(UNIX) + INSTALL(FILES Docs/mysql.info DESTINATION ${INSTALL_INFODIR} OPTIONAL COMPONENT Info) +ENDIF() +# +# RPM installs documentation directly from the source tree +# +IF(NOT INSTALL_LAYOUT MATCHES "RPM") + INSTALL(FILES COPYING LICENSE.mysql + DESTINATION ${INSTALL_DOCREADMEDIR} + COMPONENT Readme + OPTIONAL + ) + INSTALL(FILES README DESTINATION ${INSTALL_DOCREADMEDIR} COMPONENT Readme) + INSTALL(FILES ${CMAKE_BINARY_DIR}/Docs/INFO_SRC ${CMAKE_BINARY_DIR}/Docs/INFO_BIN DESTINATION ${INSTALL_DOCDIR}) + IF(UNIX) + INSTALL(FILES Docs/INSTALL-BINARY DESTINATION ${INSTALL_DOCREADMEDIR} COMPONENT Readme) + ENDIF() + # MYSQL_DOCS_LOCATON is used in "make dist", points to the documentation directory + SET(MYSQL_DOCS_LOCATION "" CACHE PATH "Location from where documentation is copied") + MARK_AS_ADVANCED(MYSQL_DOCS_LOCATION) + INSTALL(DIRECTORY Docs/ DESTINATION ${INSTALL_DOCDIR} + COMPONENT Documentation + PATTERN "INSTALL-BINARY" EXCLUDE + PATTERN "Makefile.*" EXCLUDE + PATTERN "glibc*" EXCLUDE + PATTERN "linuxthreads.txt" EXCLUDE + PATTERN "myisam.txt" EXCLUDE + PATTERN "mysql.info" EXCLUDE + PATTERN "sp-imp-spec.txt" EXCLUDE + ) +ENDIF() diff --git a/BuildTools/ubuntu/package_trusty/DEBIAN/control b/BuildTools/ubuntu/package_trusty/DEBIAN/control deleted file mode 100644 index 15f0e8861..000000000 --- a/BuildTools/ubuntu/package_trusty/DEBIAN/control +++ /dev/null @@ -1,13 +0,0 @@ -Package: geoda -Version: 1.12-1trusty1 -Architecture: i386 -Priority: optional -Section: graphics -Installed-Size: 88128 -Depends: zlib1g, libexpat1, freeglut3, libreadline6, libgtk-3-0, libc-dev-bin, libssl0.9.8, libwebkitgtk-1.0-0 -Maintainer: Luc Anselin < anselin@uchicago.edu > -Provides: geoda -Homepage: http://spatial.uchicago.edu -Description: GeoDa Software - GeoDa Software for Geospatial Analysis and Computation - diff --git a/BuildTools/ubuntu/package_trusty/DEBIAN/control1804 b/BuildTools/ubuntu/package_trusty/DEBIAN/control1804 deleted file mode 100644 index 9ca5981ff..000000000 --- a/BuildTools/ubuntu/package_trusty/DEBIAN/control1804 +++ /dev/null @@ -1,13 +0,0 @@ -Package: geoda -Version: 1.12-1xenial1 -Architecture: amd64 -Priority: optional -Section: graphics -Installed-Size: 88128 -Depends: libgdal-dev, zlib1g, libexpat1, freeglut3, libreadline7, libgtk-3-0, libc-dev-bin, libssl1.0.0, libwebkitgtk-1.0-0 -Maintainer: Luc Anselin < anselin@uchicago.edu > -Provides: geoda -Homepage: http://spatial.uchicago.edu -Description: GeoDa Software - GeoDa Software for Geospatial Analysis and Computation - diff --git a/BuildTools/ubuntu/package_trusty/DEBIAN/control64 b/BuildTools/ubuntu/package_trusty/DEBIAN/control64 deleted file mode 100644 index 60432e2f5..000000000 --- a/BuildTools/ubuntu/package_trusty/DEBIAN/control64 +++ /dev/null @@ -1,13 +0,0 @@ -Package: geoda -Version: 1.12-1trusty1 -Architecture: amd64 -Priority: optional -Section: graphics -Installed-Size: 88128 -Depends: zlib1g, libexpat1, freeglut3, libreadline6, libgtk-3-0, libc-dev-bin, libssl1.0.0, libwebkitgtk-1.0-0 -Maintainer: Luc Anselin < anselin@uchicago.edu > -Provides: geoda -Homepage: http://spatial.uchicago.edu -Description: GeoDa Software - GeoDa Software for Geospatial Analysis and Computation - diff --git a/BuildTools/ubuntu/package_trusty/DEBIAN/postinst b/BuildTools/ubuntu/package_trusty/DEBIAN/postinst deleted file mode 100755 index f6bbaac96..000000000 --- a/BuildTools/ubuntu/package_trusty/DEBIAN/postinst +++ /dev/null @@ -1,4 +0,0 @@ -#!bin/sh - -chmod +x /usr/bin/run_geoda.sh -chmod +x /usr/local/geoda/GeoDa diff --git a/BuildTools/ubuntu/package_trusty/usr/share/applications/GeoDa.desktop b/BuildTools/ubuntu/package_trusty/usr/share/applications/GeoDa.desktop deleted file mode 100644 index 3d2e0a261..000000000 --- a/BuildTools/ubuntu/package_trusty/usr/share/applications/GeoDa.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Version=1.0 -Type=Application -Name=GeoDa -GenericName=GeoDa Software -Comment=GeoDa Software -Exec=run_geoda.sh -TryExec=run_geoda.sh -Icon=geoda -Categories=Education diff --git a/BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/128x128/apps/geoda.png b/BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/128x128/apps/geoda.png deleted file mode 100644 index 5a5e2439f303f2cb0727b6ce8105c25f2d6d8eec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4073 zcmV z?oKD&ojoCekOfF!f?=Bxkv)T$h*LO&g0iTff{de%A;L_7HA%3v5F7=Eu#^N4&_rda zB%(yjCSZt!Y)xnB?sU@Wey{s&_nzPUabL#}0tN@IvC41NsrTwG=X`(b`JLZ|zjDZ5 zaxn#AF6LdoI2n}%xFg;2{?Dx52J`iZL{)_Fyp&mcH47@0|dOfiul~R=JjS*v3Y0t$}Ik7*JnLYOlw{Woeh}@q86L6#b)f z3Mybhy9w+WE#K_er1LR{#>2Z0sJCCtDXZK9!A+^BC8gnn>h+{?k_gf+vGdeoDoChr z6cNGv(E(PK0HhHc-Uz^}Z&v!zSil@6sKQ}^sB>+qt$q4{ONNWgx+zxOEj{9g)5#4N zrPe9xJZ0ifGBmv&lfZy;U?dvv1dY}c=jb_5tW2N!ou2kH&%|4`iU6?hl!XRKyXrU; zQWXSru0@uH_x7g z`76MplmW6XT#~om^ttSqK8H@1upz_O$7uac60ax(aV4-&YlRJaDm=Tb#LJx(awVl0 zC@=1+Pzqseo#i9PCz#Y==`AVc07lo@aB`z(+jHUXfmakh1M~s!KU{!8^0P$be&873 zMOD2QI3U)}Bn+=H7hW{ed~3;R(!Qmp^6OSNbj=(3EiR~o&O}y2LJR(0p9#w|I8Ui0 z6>%Wdyi=Qqyz@X&`P7el-{O~xR`)ai%o;v7D@AWniCM_T1rc&pH(L!f0jm!cz*fm$ zC?Zb*`&D%g@KofSDk}1b|Mh#8xU>J^e(C5q!P$CE+Yb3$_C}K4PMrD_)e>4~B&n2Z z9DY&$5J3W=!Y|s&0Qgq8Y)XO?hx?@b$mu)!9rwRf;A<;#6awW-v(uDAh*@Y#+v1+S zFtpGf!sEcD-XY{e;35%u0_arL3xRbo!-sLg%9RcX+y&=dCKdk#oL>wx4|=uf`x)Rh zaGnH;F>xp9Zja-h$lw*DM1H7-LxoM<0RZ3lKn>TOoT9%P$O`yI_}H`rAAaNjcl;t4qHRdg zPydrx7MqH_cf^Nedd;#uXzFz%F3!b47gy8B`4DRa1?M>v0L)v8SM?eh)c$PXUsUxb;03^gwGP1d z+_j=|pOm$^G(N0UMxnu|sc3&A4KlzbwO!QJDzOY?YaosgT1BelQ@+rYHZ-LTX&)R) zdtVe3@3e{eMi`nlxWP&g=nErTrrcHP|| z;m9|z!Ogfzj`yVstp8??`HvdXDew|-!|erzHODbKEtxE=-Cf~{-C0I4;T+jQq{%P*Cisa28FF6H)OuCC0#f#b)~L+ z#>tQFGJI?w*EHp*S=GsZFNVv%DvX*0-~N*0>HC$l&aIFgFg(Al!o?5upj9GEHx_yA zvyBHcjtr7L3`U?7DBS~&AxRO>K(6G9V~}YMoCsD`KkosPs_*@_`s+X~NH}`T z_PRJ*j_>NS-C8c8i@$2zw#_7`PiEts4A0-TpV{-2^Z(T_BrMbRy5W_T%Fc5J=pH-3 zwdaIfcT$>bXQe0x%FWN@_|}U9G^XUBst$)!sEG+L?y9h{tHNm`v-Fl!Kl)g2a$mtU z*2I{cFViFe?o<%Cp`Fa zf$772PHFYs{1timZAWGI%$CHd`7*x;N`ua3M5Glc!{qXO)U4y`%6Pl|T(7Jzt1l

Q+F{jgzHf1L^92G|LhHv9{CccwgrtT?B4@Mp`ggA zwQx#?_yrqijybOW4vafi*wZeQvW{0S??sbJA?`S3WtM&~q!1{+{X?)0l6MY<*BGw( zNgsiOh390*mzBT~T7$Q$t$f=JH|*X3P!7XsRi&%vQ~!E}?x5CwYKlI|{m`=y znnntB&!=eY^m%4mo~aG~!OUX>oGO8XVQIs6*A4LCD+Qkacs;JVk0>rIR`4EwwfI`q zSZNWttoq-Y3f=30pZ2&rvqjdIEcIe^i1hjovHyk3kYW;Z-(%47Nhr*SUhBFI(qD%y zhQh`Ik4+lGUContAQ;ULt}ZZQisAG*!d?I7sB3`nO_t|YhOBt0!j&_V49^%wWGzm? zh%hp1xOc+lWX@HB z8-R5y;PV$N6HmPY26=)Wbb8I!1%B|+n;i2q4TWv{AXiVbdPm@0H+h}8! zpfQiA0W0XEOOT0^km=KqQ)eR^`f;~Dhx;ioD@*^Pk(hqRB*}BedCHE}j`l5ZPjcd1T?O8`x=qhR3YXNj0B<@NA`Skfa25;2@GMK!2!|zASMeHNbMUj_IKvxci zJOg8Yi1rlmR2irJTw*&gLp-M2KI(hRgj;;-cX`xric>#eS+=#r9jp5}YjjM%d|FyD zNF@Xlb?^*Ik2pEK`OeObhqY7wkVa!{)S{#xQc5TV5ho2;^V$73YD`Lo)_KC-+ZBI1 z1jh<``6tl37D1r^2_Ft93|$MgcR_a&F_wx5uStggbhRAQm7~G+O#4Ayx7qvPAhsHe01 zt-P9jl9KaP)d!P@APePV1!Vw9G!olkkcxoqhr-#=e`!?*)ox3)?Xiah&&p8V&?Lrp z^i3O3zqaHiKbti1g7|oZ82M1^!o8!6$V5RV8Duya`;daL^vGT5Dxz|F9WyHcZKW}7 zGgvoz=djjTy0^Gk0{LWAM~b+b=zx-1Wl&q8JWmRB%W=w93xBKL_^7owRvz2su4M6k4&aQVLdt?(FB8-6OM0PcXw)_Mlv!inX zLMX=7M^#Jy9N702kRnK#C=sgzO@rx$%)Jm_A6dfmA{YXMCQ9W|6k^*+ukQAmuB&a8 zwq9A*6Itu6b)6is(0(fpJ+%rz=#`IAXi@Yjg*_k!t7;Aic0Xi(1od}TPYel=N_85^ zgR6-w(fe7@IEbKX)oKuS5s$6W`a-XI`x&wPx4p8gXT^Lxor{%7dv6+lf&~smWQ}9| z?I(ne2Sns}P=^si7{zIM4CLlP-#n1P=A(q*8X)!(G=2^w05uTStD$^%*6h2rJ4_D{ z4lOeAXQd;r{qAst&YTL>PK8#yZn1~7A6;}uEyQ<#c_6x+`_P~&ESUWejDh~YSFjG3 zJwWk{-;_&d+|oT;x=muLS!`131om2)kG5}z~2qoME^Z4JgGQN1Ecxf&`|5LHuz zN;7o+7lcEBf~u4(nF#5hYmizA3~0{lu3W!s-Grsg)u{TPC-3RUy`vByk^;b~ zBn929VjfU*uTlL+go|pwuUhjnWBbq1Aa}6@L%&KQp3_@5G4^Y7QM+`7dYnc0=lqm- zR8u#zD+REJmLk!y^J-CZw+(fpLs~V#_0(5ZYPUBZPj+k@7<1cTXXDRD{ar(425WtQ z3ABwL@9p^Xq)D4HBOBUUCiA=4q0hllen$Pv;z*LlU-{I}6L3+_u_9-e9il13M<-nei(#XIjb@_ z`BHc5p+J8ux9Dz?3Hs?5;d@@uBWGcW0&H*>md0(w>TtASLa_V&@ zZ6yUSwAjOnk6{=8bWO$LIHEDb!40_WdVNRx>#mSPsJ0HGi&bFnf87c4FO)+9I+V*EDvFvNFpy z!C|kXx*^;Gl&CEApxGGx$=Pxkl~W2mGl||}Slk~TB z^PDQ+DX?Dv0tu~^V&qJ8DT%$c1~WYj$tS?>VwDL}J=AFm>k^urL5?fTmpNy@KK{+b z0Ie&Ok`q{L94HqF?K7CEAxJ)nSnc6Ni5=XwaWdV1`-OR`y&8+M@Gi3imv^+gReg;)&6Ab?h@ZA3cxnGr>3{eRhC%5H TpD6no00000NkvXXu0mjffNxK2 diff --git a/BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/22x22/apps/geoda.png b/BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/22x22/apps/geoda.png deleted file mode 100644 index ef5d9d437e29ead9084398a00c75ef408e69a7a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1199 zcmV;g1W@~lP)jm2GI2RUF2D|8w8>^S0;N zi_bRQ)~1`KND;m?ZGmNiIm^n7!lH!wur%mXUs9-yP)joqhfSmxp(s#;vYaTaj7ZB# z`8suMZfl#HbI#4@^}e6`K7H`1R!kgy==yXx2d;Dduk-(3NB9rWAY<(d=uzwOVMj9- zb70B)xe=qsU+rmaj6PRdGCs>YQnY#SI)FJ2d9vd;W^vT`NO$U@{!$$*>t&uoS)+t$ zQ9A9|>N(&`05x_+e^+95RNuQNTD7H!<}g^4!P8n`$%OpcNJM6nnP{&)Vh5< z1ekvkhk)0C0$?X4WwX_;Z*~qLQA=08ngZeO?P(2G-r?Z!N$6f>{(VJhIH6S1&%*Pky&4CBFqkXFVEBcx+k} zVewQyT0>)7n%!qptePE+pM8ZB)3%XTz}-Lu*gl2!Nfzek!DD)jW&dP67;jgpE=T3G zT4Fdt%+@3wO>RKpHwD`R$Ajup3)ce#Z}ncnK*$7E01beh#*W9=1Y&V-yP6(uqIc&I zCnmxWY33-!hfQfFgcP}cx$(N$u1z=^p8@+@)6;*r#CpJ0z+|AklD0bnrf-)X?wRG) zH%NQCFnCQ-RvTnwg3H%KN#0u=VPU0@{+Rby>j?0DhfPJE!DpvZtsx(qfKmlGI_== z0YfRmXKds2A&%-4oIoPY>@sojTta<1rw|C}u}@oc+t=R#U!Sv0QmeA4i`&i`@Pc=~J4%!&ivb z*gP=H=Bqsp)m0`-O9Pzib=mrJLa&{lL)a4SH{^r*=0qNF4d|3AIu?o{wV6q>GO@rd zwx=SAk``Qh0CnFy$lr*z&QqvumYMxL*?Wa4-{t6$Zo%i`M1u;@O-h`XOSTMm{9}Bp zXe-wd;~lZ}G9b|VsfZWRcm-()e*vLGAQ=j^!xnu;=XCqrncoJ^DO=tUGMBuJF)(@C zK-=hCFah08vac$Ua|Lu7Ljutant=^~_CxGh&>;vNU{K=vEj2BcSEN^O4RkfuygM>9 zIx7DiI9Xf_R4KIr(G7_9c~OzUS0Q=72FYmh*P}67l-cu)Q#H_n9CyYd9IZHu%9Q7I zwJYTvMC4&Ltd-RXNez-PwP(M1+Rd=oT~OJNjIHt}inH|U;)@6~yeLn{AEm&lpf|ja zgKofiyYI(o1Ggf)DKTgTyQR{YyF|HM6@0BRV)QY7(px}}``h|o@dsMp$Eu&dJ(2(b N002ovPDHLkV1lz{C}IEr diff --git a/BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/24x24/apps/geoda.png b/BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/24x24/apps/geoda.png deleted file mode 100644 index ac4111b4f8427a1d176eea50629b42cfa69fbd44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1314 zcmV+-1>O3IP)&ePSK)S+yl4#_cS;~V zw%1iNy3gfNC&u=|n;o*6-QL?r1yKca^DjE8QlRO1&qLG4fSTKwM}fzIepFN#w8A); zjqk~j4Rt0ZGp8mX#g(a&^x^2GBq0Za23!HFkhCh_o%O~6&Fg1Arjr4ffcwA_n5XZ#-vDy+E$-|xi0UFPp5aP(aUk4YkbCCZA`vw6JSN zF8B9$TY(>egYLDltOFJRy9=o*3Omk{hRWutSEtW)Lez)~M7~cW`+NXP_bBqy3=fwC zxukRYg3BD z-5srI@vsV>g`Pz=-Oy;ROP8;R!3PEb4K6SpSkawCo!G2%tFH_{FiuV`lwm1t)K&{c zg|H{lNxJ8=v(lr>!nC1bNaxy34)@)7rHTb1| zu~zKG4t9TQU~nq!1*vr9dmO%yfzu1o^C9r44!48Rz$%UX5Ki8_Cx#s{4uFz*vcpMYM- zLmpht`FSpfUh5)dVkToA6&5W@VEcKDj=Ibok;)$H-UrRU-*Q}w0tr8U?ggil%~&mT8j$c|q4Qork|oeG z2eMa!iBT^h_L6IxvqO7c2`1M^g7Ix7OIl;xK|M__rFya$873l&1Woh$iZs6t9b-XI za4$fwxu9x&%obO4X|nX-kvkdx1pq3=)DCeS-G@k~fU7PvRzSxDz^an+lcILMmp1Z4 z%F7dfXMPKy8&b--V&j@BRGrQTkov{l3l%zs*VUgzUBz}4qoS>MV}2U|^y7SPz|o27 z`zf|qJ|Za9iHM%b_(50w=9TROv3F~JTfp@sCDeqRuo~Th(^_#HoT;s}K&c&C9qH5u zgBFWps{vFXh(KvEBtnn`nuH{mL2fJN-U2S4;bv*&y{Yybayt^YcE9r&0b z=M}A|#0z>ZTR7*+{WrzwIgATHEnM+n<#abqv#Ny87@(*K-Q$<{tT;abBd0#z!KK#N z?;+~A`-}tXz?ZG_YV4FDvf`qgMP^% zv(z#*+V9lIdabL72#Cn(t4Jpa5tH5-N^kl7A%YJRARl<1c6u{7aY>g(ALt;~Jb{df zThDbfhWeHmA?VS^4nxW6#0&8^hW*$0?-B@53p4>YipW@1T~B@e z3KlQ+V5#o}I(yi-a~gFpl=M6^{rOVjM;+XPa4_ZZ;HyL2H?M?b)NmrNR74GxQ3Hyk zJ=N9Qh9^9}H9dD2DgozI0R|Wc{8~h&sp?A#9`zx5)`=I{*tXk(?^Z1sh-)f; zk)H|GZHZBK*d2{NkyBoMFVDdNAJ+;easibw%c2<(zJ6(xvWNte%blTNpM$`qfN@Sa z`PIPVzy?*l4d_Qz&HC*RNIbE|y6=|U99zk3>6QS4n>G^bv!l@p>^kaE77=cl8ex8Y z2-m>7eLgE&(-Z>LyBcHCP+_x;l?=7^@*E>25FiOG2Q~md2h!s>P!)CjsfXicp~ha1 zX~|kTO$UM?0ZiIdLZZtVb;?P@%pB|R%{eh5jv&Bg)h_krhKDx~^Z6MOnUZv}FD>H4 z*e5tDpauv5-vPD*55terbsU;d;@DLt9N-dQ9`FTV2$rffU%N`9di~(y zP$=`M{dmb^OzR)utv_eTrIjlhJ*LD0LV00#kH^6QpZRqz!+AYp`xp_TPO%e3V96fJ zpM`0_E@#B?tw4A2^>tPPe?!+w`&zzx)AjP&qjL4k0>_s3lDJT4n5ew?ywA0Zv%I+u ze)V#OsuDxXp*&aCx`4pG| zKuc$y@d=~*`+QcnX5O*NU8+0-7*jN$9k`gD_ylw44vW5G#NNV|%{9S4x1r?@!$V4@ z$LHz(aV*_YgBumv_bAPi!Xzq$e5FrKxf%7sNezL*(V>8~yR+PXbqVYDXZe0pY#_I; z>V1*oJz{`=gBjzQ>^;WlGQmc&Q?ioY_NYiMfFK~q1mx;t>{&I8`%Ev_-K^xZke!j| zUpJ=cYRn=ISR<#AM_qVwSBB=vVG<#uSr1L+^bPuZa;nq;>VVl1mHEptnh=bnqdQGc z`XS81Ca4P$yzn9tnT4HuoEi5fsCEkcecu3?*ZZih_n1}Y5Z&sszb8jiO^C1~=*W$= zx;0C|R~AkWtEcK^3hFOw$-KR+g(?xbNmVym&@PXzhJqfLnPaC6+BKq|n2X$bKO7Tu zM;p@o2)h2S^p10RuhSv@R1bG7@%hJ_O4ni7@JfNEWS9lx!_<$lj89me-kaqw2XZ`g zU4oF6z%_Keus`>D+j0LIg-?n|Ctz(I`%25?%NP5mdp_zBUU0AQ*@bvj0VK-NKdnXP zG$EJYgswY|9vLQkcbw>0L(`Q7+V?6`=LOtwQJ6rWG;6ti{U9CvzW(gmILVkr01enV zeQeu9N;(}8 z)n`RWqXbyC);!v~iZfvJHVi1Vnf}NUr=O)5y#!Ibap1OtMqKnRW{ABEb`XGW z3DZr4Y%Ha1HbT|$P+J23MW6gbwTV=UeP^E)M>9~(kyzB`mkF{+MaLjG8bMNvgu$mZ$h=#abN;T9gCfJ0^1p*D? zL8wh6)B#={_(?$sz^^WrA-oeo@HDh1CGx|9A`6_{=9s30#$s$2gg3>?g z5l!oF?LdA-ck9J{Am{W`a#jHsa$u(5MhrpRg!rXaN-~J(_RLInB{rJ!j(q(RP&ps+ zvkE9e&1BkK4`+5}Ty$^bSk^zp#O(PHo+H$J45a@j_zwuKO~_+sr#t`v002ovPDHLk FV1icF-g*E4 diff --git a/BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/48x48/apps/geoda.png b/BuildTools/ubuntu/package_trusty/usr/share/icons/hicolor/48x48/apps/geoda.png deleted file mode 100644 index 5a5e2439f303f2cb0727b6ce8105c25f2d6d8eec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4073 zcmV z?oKD&ojoCekOfF!f?=Bxkv)T$h*LO&g0iTff{de%A;L_7HA%3v5F7=Eu#^N4&_rda zB%(yjCSZt!Y)xnB?sU@Wey{s&_nzPUabL#}0tN@IvC41NsrTwG=X`(b`JLZ|zjDZ5 zaxn#AF6LdoI2n}%xFg;2{?Dx52J`iZL{)_Fyp&mcH47@0|dOfiul~R=JjS*v3Y0t$}Ik7*JnLYOlw{Woeh}@q86L6#b)f z3Mybhy9w+WE#K_er1LR{#>2Z0sJCCtDXZK9!A+^BC8gnn>h+{?k_gf+vGdeoDoChr z6cNGv(E(PK0HhHc-Uz^}Z&v!zSil@6sKQ}^sB>+qt$q4{ONNWgx+zxOEj{9g)5#4N zrPe9xJZ0ifGBmv&lfZy;U?dvv1dY}c=jb_5tW2N!ou2kH&%|4`iU6?hl!XRKyXrU; zQWXSru0@uH_x7g z`76MplmW6XT#~om^ttSqK8H@1upz_O$7uac60ax(aV4-&YlRJaDm=Tb#LJx(awVl0 zC@=1+Pzqseo#i9PCz#Y==`AVc07lo@aB`z(+jHUXfmakh1M~s!KU{!8^0P$be&873 zMOD2QI3U)}Bn+=H7hW{ed~3;R(!Qmp^6OSNbj=(3EiR~o&O}y2LJR(0p9#w|I8Ui0 z6>%Wdyi=Qqyz@X&`P7el-{O~xR`)ai%o;v7D@AWniCM_T1rc&pH(L!f0jm!cz*fm$ zC?Zb*`&D%g@KofSDk}1b|Mh#8xU>J^e(C5q!P$CE+Yb3$_C}K4PMrD_)e>4~B&n2Z z9DY&$5J3W=!Y|s&0Qgq8Y)XO?hx?@b$mu)!9rwRf;A<;#6awW-v(uDAh*@Y#+v1+S zFtpGf!sEcD-XY{e;35%u0_arL3xRbo!-sLg%9RcX+y&=dCKdk#oL>wx4|=uf`x)Rh zaGnH;F>xp9Zja-h$lw*DM1H7-LxoM<0RZ3lKn>TOoT9%P$O`yI_}H`rAAaNjcl;t4qHRdg zPydrx7MqH_cf^Nedd;#uXzFz%F3!b47gy8B`4DRa1?M>v0L)v8SM?eh)c$PXUsUxb;03^gwGP1d z+_j=|pOm$^G(N0UMxnu|sc3&A4KlzbwO!QJDzOY?YaosgT1BelQ@+rYHZ-LTX&)R) zdtVe3@3e{eMi`nlxWP&g=nErTrrcHP|| z;m9|z!Ogfzj`yVstp8??`HvdXDew|-!|erzHODbKEtxE=-Cf~{-C0I4;T+jQq{%P*Cisa28FF6H)OuCC0#f#b)~L+ z#>tQFGJI?w*EHp*S=GsZFNVv%DvX*0-~N*0>HC$l&aIFgFg(Al!o?5upj9GEHx_yA zvyBHcjtr7L3`U?7DBS~&AxRO>K(6G9V~}YMoCsD`KkosPs_*@_`s+X~NH}`T z_PRJ*j_>NS-C8c8i@$2zw#_7`PiEts4A0-TpV{-2^Z(T_BrMbRy5W_T%Fc5J=pH-3 zwdaIfcT$>bXQe0x%FWN@_|}U9G^XUBst$)!sEG+L?y9h{tHNm`v-Fl!Kl)g2a$mtU z*2I{cFViFe?o<%Cp`Fa zf$772PHFYs{1timZAWGI%$CHd`7*x;N`ua3M5Glc!{qXO)U4y`%6Pl|T(7Jzt1l

Q+F{jgzHf1L^92G|LhHv9{CccwgrtT?B4@Mp`ggA zwQx#?_yrqijybOW4vafi*wZeQvW{0S??sbJA?`S3WtM&~q!1{+{X?)0l6MY<*BGw( zNgsiOh390*mzBT~T7$Q$t$f=JH|*X3P!7XsRi&%vQ~!E}?x5CwYKlI|{m`=y znnntB&!=eY^m%4mo~aG~!OUX>oGO8XVQIs6*A4LCD+Qkacs;JVk0>rIR`4EwwfI`q zSZNWttoq-Y3f=30pZ2&rvqjdIEcIe^i1hjovHyk3kYW;Z-(%47Nhr*SUhBFI(qD%y zhQh`Ik4+lGUContAQ;ULt}ZZQisAG*!d?I7sB3`nO_t|YhOBt0!j&_V49^%wWGzm? zh%hp1xOc+lWX@HB z8-R5y;PV$N6HmPY26=)Wbb8I!1%B|+n;i2q4TWv{AXiVbdPm@0H+h}8! zpfQiA0W0XEOOT0^km=KqQ)eR^`f;~Dhx;ioD@*^Pk(hqRB*}BedCHE}j`l5ZPjcd1T?O8`x=qhR3YXNj0B<@NA`Skfa25;2@GMK!2!|zASMeHNbMUj_IKvxci zJOg8Yi1rlmR2irJTw*&gLp-M2KI(hRgj;;-cX`xric>#eS+=#r9jp5}YjjM%d|FyD zNF@Xlb?^*Ik2pEK`OeObhqY7wkVa!{)S{#xQc5TV5ho2;^V$73YD`Lo)_KC-+ZBI1 z1jh<``6tl37D1r^2_Ft93|$MgcR_a&F_wx5uStggbhRAQm7~G+O#4Ayx7qvPAhsHe01 zt-P9jl9KaP)d!P@APePV1!Vw9G!olkkcxoqhr-#=e`!?*)ox3)?Xiah&&p8V&?Lrp z^i3O3zqaHiKbti1g7|oZ82M1^!o8!6$V5RV8Duya`;daL^vGT5Dxz|F9WyHcZKW}7 zGgvoz=djjTy0^Gk0{LWAM~b+b=zx-1Wl&q8JWmRB%W=w93xBKL_^7owRvz2su4M6k4&aQVLdt?(FB8-6OM0PcXw)_Mlv!inX zLMX=7M^#Jy9N702kRnK#C=sgzO@rx$%)Jm_A6dfmA{YXMCQ9W|6k^*+ukQAmuB&a8 zwq9A*6Itu6b)6is(0(fpJ+%rz=#`IAXi@Yjg*_k!t7;Aic0Xi(1od}TPYel=N_85^ zgR6-w(fe7@IEbKX)oKuS5s$6W`a-XI`x&wPx4p8gXT^Lxor{%7dv6+lf&~smWQ}9| z?I(ne2Sns}P=^si7{zIM4CLlP-#n1P=A(q*8X)!(G=2^w05uTStD$^%*6h2rJ4_D{ z4lOeAXQd;r{qAst&YTL>PK8#yZn1~7A6;}uEyQ<#c_6x+`_P~&ESUWejDh~YSFjG3 zJwWk{-;_&d+|oT;x=muLS!`131om2)kG5}z~2qoME^Z4JgGQN1Ecxf&`|5LHuz zN;7o+7lcEBf~u4(nF#5hYmizA3~0{lu3W!s-Grsg)u{TPC-3RUy`vByk^;b~ zBn929VjfU*uTlL+go|pwuUhjnWBbq1Aa}6@L%&KQp3_@5G4^Y7QM+`7dYnc0=lqm- zR8u#zD+REJmLk!y^J-CZw+(fpLs~V#_0(5ZYPUBZPj+k@7<1cTXXDRD{ar(425WtQ z3ABwL@9p^Xq)D4HBOBUUCiA=4q0hllen$Pv;z* z?oKD&ojoCekOfF!f?=Bxkv)T$h*LO&g0iTff{de%A;L_7HA%3v5F7=Eu#^N4&_rda zB%(yjCSZt!Y)xnB?sU@Wey{s&_nzPUabL#}0tN@IvC41NsrTwG=X`(b`JLZ|zjDZ5 zaxn#AF6LdoI2n}%xFg;2{?Dx52J`iZL{)_Fyp&mcH47@0|dOfiul~R=JjS*v3Y0t$}Ik7*JnLYOlw{Woeh}@q86L6#b)f z3Mybhy9w+WE#K_er1LR{#>2Z0sJCCtDXZK9!A+^BC8gnn>h+{?k_gf+vGdeoDoChr z6cNGv(E(PK0HhHc-Uz^}Z&v!zSil@6sKQ}^sB>+qt$q4{ONNWgx+zxOEj{9g)5#4N zrPe9xJZ0ifGBmv&lfZy;U?dvv1dY}c=jb_5tW2N!ou2kH&%|4`iU6?hl!XRKyXrU; zQWXSru0@uH_x7g z`76MplmW6XT#~om^ttSqK8H@1upz_O$7uac60ax(aV4-&YlRJaDm=Tb#LJx(awVl0 zC@=1+Pzqseo#i9PCz#Y==`AVc07lo@aB`z(+jHUXfmakh1M~s!KU{!8^0P$be&873 zMOD2QI3U)}Bn+=H7hW{ed~3;R(!Qmp^6OSNbj=(3EiR~o&O}y2LJR(0p9#w|I8Ui0 z6>%Wdyi=Qqyz@X&`P7el-{O~xR`)ai%o;v7D@AWniCM_T1rc&pH(L!f0jm!cz*fm$ zC?Zb*`&D%g@KofSDk}1b|Mh#8xU>J^e(C5q!P$CE+Yb3$_C}K4PMrD_)e>4~B&n2Z z9DY&$5J3W=!Y|s&0Qgq8Y)XO?hx?@b$mu)!9rwRf;A<;#6awW-v(uDAh*@Y#+v1+S zFtpGf!sEcD-XY{e;35%u0_arL3xRbo!-sLg%9RcX+y&=dCKdk#oL>wx4|=uf`x)Rh zaGnH;F>xp9Zja-h$lw*DM1H7-LxoM<0RZ3lKn>TOoT9%P$O`yI_}H`rAAaNjcl;t4qHRdg zPydrx7MqH_cf^Nedd;#uXzFz%F3!b47gy8B`4DRa1?M>v0L)v8SM?eh)c$PXUsUxb;03^gwGP1d z+_j=|pOm$^G(N0UMxnu|sc3&A4KlzbwO!QJDzOY?YaosgT1BelQ@+rYHZ-LTX&)R) zdtVe3@3e{eMi`nlxWP&g=nErTrrcHP|| z;m9|z!Ogfzj`yVstp8??`HvdXDew|-!|erzHODbKEtxE=-Cf~{-C0I4;T+jQq{%P*Cisa28FF6H)OuCC0#f#b)~L+ z#>tQFGJI?w*EHp*S=GsZFNVv%DvX*0-~N*0>HC$l&aIFgFg(Al!o?5upj9GEHx_yA zvyBHcjtr7L3`U?7DBS~&AxRO>K(6G9V~}YMoCsD`KkosPs_*@_`s+X~NH}`T z_PRJ*j_>NS-C8c8i@$2zw#_7`PiEts4A0-TpV{-2^Z(T_BrMbRy5W_T%Fc5J=pH-3 zwdaIfcT$>bXQe0x%FWN@_|}U9G^XUBst$)!sEG+L?y9h{tHNm`v-Fl!Kl)g2a$mtU z*2I{cFViFe?o<%Cp`Fa zf$772PHFYs{1timZAWGI%$CHd`7*x;N`ua3M5Glc!{qXO)U4y`%6Pl|T(7Jzt1l

Q+F{jgzHf1L^92G|LhHv9{CccwgrtT?B4@Mp`ggA zwQx#?_yrqijybOW4vafi*wZeQvW{0S??sbJA?`S3WtM&~q!1{+{X?)0l6MY<*BGw( zNgsiOh390*mzBT~T7$Q$t$f=JH|*X3P!7XsRi&%vQ~!E}?x5CwYKlI|{m`=y znnntB&!=eY^m%4mo~aG~!OUX>oGO8XVQIs6*A4LCD+Qkacs;JVk0>rIR`4EwwfI`q zSZNWttoq-Y3f=30pZ2&rvqjdIEcIe^i1hjovHyk3kYW;Z-(%47Nhr*SUhBFI(qD%y zhQh`Ik4+lGUContAQ;ULt}ZZQisAG*!d?I7sB3`nO_t|YhOBt0!j&_V49^%wWGzm? zh%hp1xOc+lWX@HB z8-R5y;PV$N6HmPY26=)Wbb8I!1%B|+n;i2q4TWv{AXiVbdPm@0H+h}8! zpfQiA0W0XEOOT0^km=KqQ)eR^`f;~Dhx;ioD@*^Pk(hqRB*}BedCHE}j`l5ZPjcd1T?O8`x=qhR3YXNj0B<@NA`Skfa25;2@GMK!2!|zASMeHNbMUj_IKvxci zJOg8Yi1rlmR2irJTw*&gLp-M2KI(hRgj;;-cX`xric>#eS+=#r9jp5}YjjM%d|FyD zNF@Xlb?^*Ik2pEK`OeObhqY7wkVa!{)S{#xQc5TV5ho2;^V$73YD`Lo)_KC-+ZBI1 z1jh<``6tl37D1r^2_Ft93|$MgcR_a&F_wx5uStggbhRAQm7~G+O#4Ayx7qvPAhsHe01 zt-P9jl9KaP)d!P@APePV1!Vw9G!olkkcxoqhr-#=e`!?*)ox3)?Xiah&&p8V&?Lrp z^i3O3zqaHiKbti1g7|oZ82M1^!o8!6$V5RV8Duya`;daL^vGT5Dxz|F9WyHcZKW}7 zGgvoz=djjTy0^Gk0{LWAM~b+b=zx-1Wl&q8JWmRB%W=w93xBKL_^7owRvz2su4M6k4&aQVLdt?(FB8-6OM0PcXw)_Mlv!inX zLMX=7M^#Jy9N702kRnK#C=sgzO@rx$%)Jm_A6dfmA{YXMCQ9W|6k^*+ukQAmuB&a8 zwq9A*6Itu6b)6is(0(fpJ+%rz=#`IAXi@Yjg*_k!t7;Aic0Xi(1od}TPYel=N_85^ zgR6-w(fe7@IEbKX)oKuS5s$6W`a-XI`x&wPx4p8gXT^Lxor{%7dv6+lf&~smWQ}9| z?I(ne2Sns}P=^si7{zIM4CLlP-#n1P=A(q*8X)!(G=2^w05uTStD$^%*6h2rJ4_D{ z4lOeAXQd;r{qAst&YTL>PK8#yZn1~7A6;}uEyQ<#c_6x+`_P~&ESUWejDh~YSFjG3 zJwWk{-;_&d+|oT;x=muLS!`131om2)kG5}z~2qoME^Z4JgGQN1Ecxf&`|5LHuz zN;7o+7lcEBf~u4(nF#5hYmizA3~0{lu3W!s-Grsg)u{TPC-3RUy`vByk^;b~ zBn929VjfU*uTlL+go|pwuUhjnWBbq1Aa}6@L%&KQp3_@5G4^Y7QM+`7dYnc0=lqm- zR8u#zD+REJmLk!y^J-CZw+(fpLs~V#_0(5ZYPUBZPj+k@7<1cTXXDRD{ar(425WtQ z3ABwL@9p^Xq)D4HBOBUUCiA=4q0hllen$Pv;z* z?oKD&ojoCekOfF!f?=Bxkv)T$h*LO&g0iTff{de%A;L_7HA%3v5F7=Eu#^N4&_rda zB%(yjCSZt!Y)xnB?sU@Wey{s&_nzPUabL#}0tN@IvC41NsrTwG=X`(b`JLZ|zjDZ5 zaxn#AF6LdoI2n}%xFg;2{?Dx52J`iZL{)_Fyp&mcH47@0|dOfiul~R=JjS*v3Y0t$}Ik7*JnLYOlw{Woeh}@q86L6#b)f z3Mybhy9w+WE#K_er1LR{#>2Z0sJCCtDXZK9!A+^BC8gnn>h+{?k_gf+vGdeoDoChr z6cNGv(E(PK0HhHc-Uz^}Z&v!zSil@6sKQ}^sB>+qt$q4{ONNWgx+zxOEj{9g)5#4N zrPe9xJZ0ifGBmv&lfZy;U?dvv1dY}c=jb_5tW2N!ou2kH&%|4`iU6?hl!XRKyXrU; zQWXSru0@uH_x7g z`76MplmW6XT#~om^ttSqK8H@1upz_O$7uac60ax(aV4-&YlRJaDm=Tb#LJx(awVl0 zC@=1+Pzqseo#i9PCz#Y==`AVc07lo@aB`z(+jHUXfmakh1M~s!KU{!8^0P$be&873 zMOD2QI3U)}Bn+=H7hW{ed~3;R(!Qmp^6OSNbj=(3EiR~o&O}y2LJR(0p9#w|I8Ui0 z6>%Wdyi=Qqyz@X&`P7el-{O~xR`)ai%o;v7D@AWniCM_T1rc&pH(L!f0jm!cz*fm$ zC?Zb*`&D%g@KofSDk}1b|Mh#8xU>J^e(C5q!P$CE+Yb3$_C}K4PMrD_)e>4~B&n2Z z9DY&$5J3W=!Y|s&0Qgq8Y)XO?hx?@b$mu)!9rwRf;A<;#6awW-v(uDAh*@Y#+v1+S zFtpGf!sEcD-XY{e;35%u0_arL3xRbo!-sLg%9RcX+y&=dCKdk#oL>wx4|=uf`x)Rh zaGnH;F>xp9Zja-h$lw*DM1H7-LxoM<0RZ3lKn>TOoT9%P$O`yI_}H`rAAaNjcl;t4qHRdg zPydrx7MqH_cf^Nedd;#uXzFz%F3!b47gy8B`4DRa1?M>v0L)v8SM?eh)c$PXUsUxb;03^gwGP1d z+_j=|pOm$^G(N0UMxnu|sc3&A4KlzbwO!QJDzOY?YaosgT1BelQ@+rYHZ-LTX&)R) zdtVe3@3e{eMi`nlxWP&g=nErTrrcHP|| z;m9|z!Ogfzj`yVstp8??`HvdXDew|-!|erzHODbKEtxE=-Cf~{-C0I4;T+jQq{%P*Cisa28FF6H)OuCC0#f#b)~L+ z#>tQFGJI?w*EHp*S=GsZFNVv%DvX*0-~N*0>HC$l&aIFgFg(Al!o?5upj9GEHx_yA zvyBHcjtr7L3`U?7DBS~&AxRO>K(6G9V~}YMoCsD`KkosPs_*@_`s+X~NH}`T z_PRJ*j_>NS-C8c8i@$2zw#_7`PiEts4A0-TpV{-2^Z(T_BrMbRy5W_T%Fc5J=pH-3 zwdaIfcT$>bXQe0x%FWN@_|}U9G^XUBst$)!sEG+L?y9h{tHNm`v-Fl!Kl)g2a$mtU z*2I{cFViFe?o<%Cp`Fa zf$772PHFYs{1timZAWGI%$CHd`7*x;N`ua3M5Glc!{qXO)U4y`%6Pl|T(7Jzt1l

Q+F{jgzHf1L^92G|LhHv9{CccwgrtT?B4@Mp`ggA zwQx#?_yrqijybOW4vafi*wZeQvW{0S??sbJA?`S3WtM&~q!1{+{X?)0l6MY<*BGw( zNgsiOh390*mzBT~T7$Q$t$f=JH|*X3P!7XsRi&%vQ~!E}?x5CwYKlI|{m`=y znnntB&!=eY^m%4mo~aG~!OUX>oGO8XVQIs6*A4LCD+Qkacs;JVk0>rIR`4EwwfI`q zSZNWttoq-Y3f=30pZ2&rvqjdIEcIe^i1hjovHyk3kYW;Z-(%47Nhr*SUhBFI(qD%y zhQh`Ik4+lGUContAQ;ULt}ZZQisAG*!d?I7sB3`nO_t|YhOBt0!j&_V49^%wWGzm? zh%hp1xOc+lWX@HB z8-R5y;PV$N6HmPY26=)Wbb8I!1%B|+n;i2q4TWv{AXiVbdPm@0H+h}8! zpfQiA0W0XEOOT0^km=KqQ)eR^`f;~Dhx;ioD@*^Pk(hqRB*}BedCHE}j`l5ZPjcd1T?O8`x=qhR3YXNj0B<@NA`Skfa25;2@GMK!2!|zASMeHNbMUj_IKvxci zJOg8Yi1rlmR2irJTw*&gLp-M2KI(hRgj;;-cX`xric>#eS+=#r9jp5}YjjM%d|FyD zNF@Xlb?^*Ik2pEK`OeObhqY7wkVa!{)S{#xQc5TV5ho2;^V$73YD`Lo)_KC-+ZBI1 z1jh<``6tl37D1r^2_Ft93|$MgcR_a&F_wx5uStggbhRAQm7~G+O#4Ayx7qvPAhsHe01 zt-P9jl9KaP)d!P@APePV1!Vw9G!olkkcxoqhr-#=e`!?*)ox3)?Xiah&&p8V&?Lrp z^i3O3zqaHiKbti1g7|oZ82M1^!o8!6$V5RV8Duya`;daL^vGT5Dxz|F9WyHcZKW}7 zGgvoz=djjTy0^Gk0{LWAM~b+b=zx-1Wl&q8JWmRB%W=w93xBKL_^7owRvz2su4M6k4&aQVLdt?(FB8-6OM0PcXw)_Mlv!inX zLMX=7M^#Jy9N702kRnK#C=sgzO@rx$%)Jm_A6dfmA{YXMCQ9W|6k^*+ukQAmuB&a8 zwq9A*6Itu6b)6is(0(fpJ+%rz=#`IAXi@Yjg*_k!t7;Aic0Xi(1od}TPYel=N_85^ zgR6-w(fe7@IEbKX)oKuS5s$6W`a-XI`x&wPx4p8gXT^Lxor{%7dv6+lf&~smWQ}9| z?I(ne2Sns}P=^si7{zIM4CLlP-#n1P=A(q*8X)!(G=2^w05uTStD$^%*6h2rJ4_D{ z4lOeAXQd;r{qAst&YTL>PK8#yZn1~7A6;}uEyQ<#c_6x+`_P~&ESUWejDh~YSFjG3 zJwWk{-;_&d+|oT;x=muLS!`131om2)kG5}z~2qoME^Z4JgGQN1Ecxf&`|5LHuz zN;7o+7lcEBf~u4(nF#5hYmizA3~0{lu3W!s-Grsg)u{TPC-3RUy`vByk^;b~ zBn929VjfU*uTlL+go|pwuUhjnWBbq1Aa}6@L%&KQp3_@5G4^Y7QM+`7dYnc0=lqm- zR8u#zD+REJmLk!y^J-CZw+(fpLs~V#_0(5ZYPUBZPj+k@7<1cTXXDRD{ar(425WtQ z3ABwL@9p^Xq)D4HBOBUUCiA=4q0hllen$Pv;z*ShowModal() == wxID_OK) { - wxMessageDialog dlg(this, _("Successful aggregation."), _("Success"), wxOK); - dlg.ShowModal(); + //wxMessageDialog dlg(this, _("Successful aggregation."), _("Success"), wxOK); + //dlg.ShowModal(); } delete mem_table; } catch (GdaException& ex) { diff --git a/DialogTools/DissolveDlg.cpp b/DialogTools/DissolveDlg.cpp index 532368bce..e837dd67d 100644 --- a/DialogTools/DissolveDlg.cpp +++ b/DialogTools/DissolveDlg.cpp @@ -344,9 +344,9 @@ void DissolveDlg::OnOKClick( wxCommandEvent& ev ) export_dlg = new ExportDataDlg(this, shp_type, geoms, spatial_ref, mem_table); if (export_dlg->ShowModal() == wxID_OK) { - wxMessageDialog dlg(this, _("Successful aggregation."), - _("Success"), wxOK); - dlg.ShowModal(); + //wxMessageDialog dlg(this, _("Successful aggregation."), + // _("Success"), wxOK); + //dlg.ShowModal(); } delete mem_table; } catch (GdaException& ex) { diff --git a/GeoDamake.bionic.opt b/GeoDamake.bionic.opt index 74703d954..117e441fd 100644 --- a/GeoDamake.bionic.opt +++ b/GeoDamake.bionic.opt @@ -30,8 +30,8 @@ EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 GDAL_HEADER = -I$(GEODA_HOME)/libraries/include CPPFLAGS = -I$(GeoDa_ROOT) -std=c++98 -CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) -CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) +CFLAGS = -O0 -g -DDEBUG -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) +CXXFLAGS = -O0 -g -DDEBUG $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) LDFLAGS = OBJ_EXT = o diff --git a/GeoDamake.opt b/GeoDamake.opt index ed96cc914..74703d954 100644 --- a/GeoDamake.opt +++ b/GeoDamake.opt @@ -19,8 +19,7 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ - -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl \ - -L/usr/lib/x86_64-linux-gnu -lwebkitgtk-1.0 -lGL -lz -lGLU -lEGL -lexpat + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkitgtk-1.0 -lEGL # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. @@ -28,9 +27,9 @@ BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 -GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -I/usr/include +GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -CPPFLAGS = -I$(GeoDa_ROOT) +CPPFLAGS = -I$(GeoDa_ROOT) -std=c++98 CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) LDFLAGS = From eabab4783e40675ede6a720c4e168e200248d7ee Mon Sep 17 00:00:00 2001 From: lixun910 Date: Thu, 15 Aug 2019 20:47:27 -0700 Subject: [PATCH 37/60] fix an issue that save plots to png files doesn't work on Ubuntu (only) --- TemplateFrame.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/TemplateFrame.cpp b/TemplateFrame.cpp index 009b1fe0b..6c125678e 100644 --- a/TemplateFrame.cpp +++ b/TemplateFrame.cpp @@ -584,7 +584,11 @@ void TemplateFrame::ExportImage(TemplateCanvas* canvas, const wxString& type) { wxLogMessage("BMP selected"); wxBitmap canvas_bm; +#ifdef __linux__ + canvas_bm.CreateScaled(out_res_x, out_res_y, 32, 1); +#else canvas_bm.CreateScaled(canvas_width, canvas_height, 32, canvas_scale); +#endif wxMemoryDC canvas_dc(canvas_bm); canvas_dc.SetBackground(*wxWHITE_BRUSH); canvas_dc.Clear(); @@ -596,7 +600,11 @@ void TemplateFrame::ExportImage(TemplateCanvas* canvas, const wxString& type) { wxLogMessage("PNG selected"); wxBitmap canvas_bm; +#ifdef __linux__ + canvas_bm.CreateScaled(out_res_x, out_res_y, 32, 1); +#else canvas_bm.CreateScaled(canvas_width, canvas_height, 32, canvas_scale); +#endif wxMemoryDC canvas_dc(canvas_bm); canvas_dc.SetBackground(*wxWHITE_BRUSH); canvas_dc.Clear(); From 4c80a7c91928d22d1dbde655529c729907ac3ad9 Mon Sep 17 00:00:00 2001 From: lixun910 Date: Thu, 15 Aug 2019 21:32:51 -0700 Subject: [PATCH 38/60] #1932 color buttons in Colocation dialog and Custom category editor dialog are not shown as expected --- DialogTools/CatClassifDlg.cpp | 33 ++++++++++++++++++++++++++------- DialogTools/CatClassifDlg.h | 1 + Explore/ColocationMapView.cpp | 28 ++++++++++++++++++++++++---- 3 files changed, 51 insertions(+), 11 deletions(-) diff --git a/DialogTools/CatClassifDlg.cpp b/DialogTools/CatClassifDlg.cpp index 65aca5718..c4a1b5095 100644 --- a/DialogTools/CatClassifDlg.cpp +++ b/DialogTools/CatClassifDlg.cpp @@ -1059,6 +1059,18 @@ void CatClassifPanel::OnBreaksChoice(wxCommandEvent& event) } } +void CatClassifPanel::ChangeColorButton(wxStaticBitmap* ctrl, wxColour& sel_clr) +{ + wxBitmap clr(16, 16); + wxMemoryDC dc; + dc.SelectObject(clr); + dc.SetBackground(sel_clr); + dc.Clear(); + dc.SelectObject(wxNullBitmap); + ctrl->SetBitmap(clr); + ctrl->Refresh(); +} + void CatClassifPanel::OnColorSchemeChoice(wxCommandEvent& event) { wxLogMessage("CatClassifPanel::OnColorSchemeChoice"); @@ -1070,14 +1082,16 @@ void CatClassifPanel::OnColorSchemeChoice(wxCommandEvent& event) cc_data.color_scheme, cc_data.num_cats, false); for (size_t i=0; iSetBackgroundColour(cc_data.colors[i]); + //cat_color_button[i]->SetBackgroundColour(cc_data.colors[i]); + ChangeColorButton(cat_color_button[i], cc_data.colors[i]); } } else { CatClassification::PickColorSet(cc_data.colors, cc_data.color_scheme, cc_data.num_cats, false); for (size_t i=0; iSetBackgroundColour(cc_data.colors[0]); + //cat_color_button[i]->SetBackgroundColour(cc_data.colors[0]); + ChangeColorButton(cat_color_button[i], cc_data.colors[0]); } } cc_data.cat_classif_type = CatClassification::custom; @@ -1137,7 +1151,8 @@ void CatClassifPanel::OnNumCatsChoice(wxCommandEvent& event) } if (cc_data.num_cats > 1) { for (size_t i=0; iSetBackgroundColour(cc_data.colors[i]); + //cat_color_button[i]->SetBackgroundColour(cc_data.colors[i]); + ChangeColorButton(cat_color_button[i], cc_data.colors[i]); } } else if (event.GetSelection() > 0 && color_scheme->GetSelection()==3){ // if create more than one breaks from themeless map, @@ -1512,7 +1527,8 @@ void CatClassifPanel::OnBrkSlider(wxCommandEvent& event) &cc_data.breaks, &cc_data.colors); for (int i=0; iSetBackgroundColour(cc_data.colors[i]); + //cat_color_button[i]->SetBackgroundColour(cc_data.colors[i]); + ChangeColorButton(cat_color_button[i], cc_data.colors[i]); cat_title_txt[i]->ChangeValue(cc_data.names[i]); } @@ -1601,7 +1617,8 @@ void CatClassifPanel::OnCategoryColorButton(wxMouseEvent& event) SetColorSchemeChoice(CatClassification::custom_color_scheme); cc_data.color_scheme = CatClassification::custom_color_scheme; cc_data.colors[obj_id] = retData.GetColour(); - cat_color_button[obj_id]->SetBackgroundColour(retData.GetColour()); + //cat_color_button[obj_id]->SetBackgroundColour(retData.GetColour()); + ChangeColorButton(cat_color_button[obj_id], retData.GetColour()); UpdateCCState(); hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, &cc_data.breaks, &cc_data.colors); @@ -1897,7 +1914,8 @@ void CatClassifPanel::ResetValuesToDefault() CatClassification::diverging_color_scheme, default_intervals, false); for (int i=0; iSetBackgroundColour(cc_data.colors[i]); + //cat_color_button[i]->SetBackgroundColour(cc_data.colors[i]); + ChangeColorButton(cat_color_button[i], cc_data.colors[i]); } Refresh(); @@ -1961,7 +1979,8 @@ void CatClassifPanel::InitFromCCData() SetUnifDistMode(cc_data.assoc_db_fld_name.IsEmpty()); SetNumCats(cc_data.num_cats); for (int i=0; iSetBackgroundColour(cc_data.colors[i]); + //cat_color_button[i]->SetBackgroundColour(cc_data.colors[i]); + ChangeColorButton(cat_color_button[i], cc_data.colors[i]); cat_title_txt[i]->ChangeValue(cc_data.names[i]); cat_title_txt[i]->SetEditable(!cc_data.automatic_labels); } diff --git a/DialogTools/CatClassifDlg.h b/DialogTools/CatClassifDlg.h index d6fdf0271..36e5c241a 100644 --- a/DialogTools/CatClassifDlg.h +++ b/DialogTools/CatClassifDlg.h @@ -228,6 +228,7 @@ class CatClassifPanel: public wxPanel, public TableStateObserver bool IsOkToDelete(const wxString& custom_cat_title); void UpdateCCState(); CatClassification::CatClassifType GetClassifyType(); + void ChangeColorButton(wxStaticBitmap* ctrl, wxColour& sel_clr); /** Implementation of TableStateObserver interface */ virtual void update(TableState* o); diff --git a/Explore/ColocationMapView.cpp b/Explore/ColocationMapView.cpp index 921ce6d78..6bf6a794a 100644 --- a/Explore/ColocationMapView.cpp +++ b/Explore/ColocationMapView.cpp @@ -289,8 +289,16 @@ void ColocationSelectDlg::OnSchemeSelect( wxCommandEvent& event) if (co_bitmaps[i]) { wxString sel_val = co_boxes[i]->GetLabel(); wxColour sel_clr = get_a_color(sel_val); + + wxBitmap clr(16,16); + wxMemoryDC dc; + dc.SelectObject(clr); + dc.SetBackground(sel_clr); + dc.Clear(); + dc.SelectObject(wxNullBitmap); + m_colors.push_back(sel_clr); - co_bitmaps[i]->SetBackgroundColour(sel_clr); + co_bitmaps[i]->SetBitmap(clr); co_bitmaps[i]->Refresh(); } } @@ -416,10 +424,14 @@ void ColocationSelectDlg::add_colo_control(bool is_new) wxCheckBox* chk = new wxCheckBox(scrl, base_choice_id+cnt, tmp); chk->SetValue(true); - wxBitmap clr; wxColour sel_clr = get_a_color(cnt); + wxBitmap clr(16,16); + wxMemoryDC dc; + dc.SelectObject(clr); + dc.SetBackground(sel_clr); + dc.Clear(); + dc.SelectObject(wxNullBitmap); wxStaticBitmap* color_btn = new wxStaticBitmap(scrl, base_color_id+cnt, clr, wxDefaultPosition, wxSize(16,16)); - color_btn->SetBackgroundColour(sel_clr); color_btn->Bind(wxEVT_LEFT_UP, &ColocationSelectDlg::OnClickColor, this); @@ -468,7 +480,15 @@ void ColocationSelectDlg::OnClickColor( wxMouseEvent& event) wxColourData retData = dialog.GetColourData(); wxColour sel_clr = retData.GetColour(); - co_bitmaps[obj_id]->SetBackgroundColour(sel_clr); + + wxBitmap clr(16,16); + wxMemoryDC dc; + dc.SelectObject(clr); + dc.SetBackground(sel_clr); + dc.Clear(); + dc.SelectObject(wxNullBitmap); + + co_bitmaps[obj_id]->SetBitmap(clr); co_bitmaps[obj_id]->Refresh(); m_colors[obj_id] = sel_clr; } From cbe171f304be5655891ee0f2c5b93f9539ef1bd5 Mon Sep 17 00:00:00 2001 From: lixun910 Date: Thu, 15 Aug 2019 23:05:36 -0700 Subject: [PATCH 39/60] #1932 Saving canvas to a bmp/png file doesn't' work as expected on ubuntu --- GeoDamake.opt | 7 ++++--- TemplateCanvas.cpp | 2 +- TemplateFrame.cpp | 8 -------- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/GeoDamake.opt b/GeoDamake.opt index 74703d954..ed96cc914 100644 --- a/GeoDamake.opt +++ b/GeoDamake.opt @@ -19,7 +19,8 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ - -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkitgtk-1.0 -lEGL + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl \ + -L/usr/lib/x86_64-linux-gnu -lwebkitgtk-1.0 -lGL -lz -lGLU -lEGL -lexpat # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. @@ -27,9 +28,9 @@ BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 -GDAL_HEADER = -I$(GEODA_HOME)/libraries/include +GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -I/usr/include -CPPFLAGS = -I$(GeoDa_ROOT) -std=c++98 +CPPFLAGS = -I$(GeoDa_ROOT) CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) LDFLAGS = diff --git a/TemplateCanvas.cpp b/TemplateCanvas.cpp index 8cca7b0db..4d342b24e 100644 --- a/TemplateCanvas.cpp +++ b/TemplateCanvas.cpp @@ -601,7 +601,7 @@ void TemplateCanvas::update(HLStateInt* o) void TemplateCanvas::RenderToDC(wxDC &dc, int w, int h) { -#ifdef __WIN32__ +#if defined(__WIN32__) || defined(__linux__) GdaScaleTrans old_scale_trans = last_scale_trans; int screen_w = GetClientSize().GetWidth(); diff --git a/TemplateFrame.cpp b/TemplateFrame.cpp index 6c125678e..009b1fe0b 100644 --- a/TemplateFrame.cpp +++ b/TemplateFrame.cpp @@ -584,11 +584,7 @@ void TemplateFrame::ExportImage(TemplateCanvas* canvas, const wxString& type) { wxLogMessage("BMP selected"); wxBitmap canvas_bm; -#ifdef __linux__ - canvas_bm.CreateScaled(out_res_x, out_res_y, 32, 1); -#else canvas_bm.CreateScaled(canvas_width, canvas_height, 32, canvas_scale); -#endif wxMemoryDC canvas_dc(canvas_bm); canvas_dc.SetBackground(*wxWHITE_BRUSH); canvas_dc.Clear(); @@ -600,11 +596,7 @@ void TemplateFrame::ExportImage(TemplateCanvas* canvas, const wxString& type) { wxLogMessage("PNG selected"); wxBitmap canvas_bm; -#ifdef __linux__ - canvas_bm.CreateScaled(out_res_x, out_res_y, 32, 1); -#else canvas_bm.CreateScaled(canvas_width, canvas_height, 32, canvas_scale); -#endif wxMemoryDC canvas_dc(canvas_bm); canvas_dc.SetBackground(*wxWHITE_BRUSH); canvas_dc.Clear(); From f2d5e973ff7e883e22ac0dfc5e8cf9d2bf04adb0 Mon Sep 17 00:00:00 2001 From: lixun910 Date: Fri, 16 Aug 2019 20:31:52 -0700 Subject: [PATCH 40/60] update to wxWidgets 3.1.2 on Ubuntu 18.04 to avoid wx-related crash --- BuildTools/ubuntu/build_bionic.sh | 4 +- GeoDamake.bionic.opt | 4 +- GeoDamake.opt | 7 +- rc/GdaAppResources.cpp | 9980 +++++++++++++++-------------- 4 files changed, 5006 insertions(+), 4989 deletions(-) diff --git a/BuildTools/ubuntu/build_bionic.sh b/BuildTools/ubuntu/build_bionic.sh index 9a8ec8a34..cbdb8443a 100755 --- a/BuildTools/ubuntu/build_bionic.sh +++ b/BuildTools/ubuntu/build_bionic.sh @@ -612,8 +612,8 @@ echo "% Building wxWidgets 3.0.2 %" echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" # sudo apt-get install libgtk2.0-dev libglu1-mesa-dev libgl1-mesa-dev { - LIB_NAME=wxWidgets-3.1.0 - LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/wxWidgets-3.1.0.tar.bz2" + LIB_NAME=wxWidgets-3.1.2 + LIB_URL="https://geodabuild.s3.us-east-2.amazonaws.com/wxWidgets-3.1.2.tar.bz2" LIB_FILENAME=$(basename "$LIB_URL" ".tar") LIB_CHECKER=wx-config diff --git a/GeoDamake.bionic.opt b/GeoDamake.bionic.opt index 117e441fd..74703d954 100644 --- a/GeoDamake.bionic.opt +++ b/GeoDamake.bionic.opt @@ -30,8 +30,8 @@ EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 GDAL_HEADER = -I$(GEODA_HOME)/libraries/include CPPFLAGS = -I$(GeoDa_ROOT) -std=c++98 -CFLAGS = -O0 -g -DDEBUG -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) -CXXFLAGS = -O0 -g -DDEBUG $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) +CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) +CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) LDFLAGS = OBJ_EXT = o diff --git a/GeoDamake.opt b/GeoDamake.opt index ed96cc914..74703d954 100644 --- a/GeoDamake.opt +++ b/GeoDamake.opt @@ -19,8 +19,7 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ - -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl \ - -L/usr/lib/x86_64-linux-gnu -lwebkitgtk-1.0 -lGL -lz -lGLU -lEGL -lexpat + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkitgtk-1.0 -lEGL # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. @@ -28,9 +27,9 @@ BOOST_HEADER = -I$(GEODA_HOME)/libraries/include/boost EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 -GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -I/usr/include +GDAL_HEADER = -I$(GEODA_HOME)/libraries/include -CPPFLAGS = -I$(GeoDa_ROOT) +CPPFLAGS = -I$(GeoDa_ROOT) -std=c++98 CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) LDFLAGS = diff --git a/rc/GdaAppResources.cpp b/rc/GdaAppResources.cpp index f637ca160..1bfe2fc9b 100644 --- a/rc/GdaAppResources.cpp +++ b/rc/GdaAppResources.cpp @@ -15580,7 +15580,7 @@ static unsigned char xml_res_file_8[] = { 22,138,34,50,137,8,19,192,47,251,204,72,98,41,90,148,202,0,0,0,0,73,69, 78,68,174,66,96,130}; -static size_t xml_res_size_9 = 401763; +static size_t xml_res_size_9 = 401875; static unsigned char xml_res_file_9[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,117,116,102,45,56,34,63,62,10,60,114,101, @@ -17273,222 +17273,205 @@ static unsigned char xml_res_file_9[] = { 34,119,120,83,116,97,116,105,99,66,105,116,109,97,112,34,32,110,97,109, 101,61,34,119,120,73,68,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32, 32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115, -111,117,114,99,101,115,46,99,112,112,36,97,98,111,117,116,45,103,101,111, -100,97,45,108,111,103,111,46,112,110,103,60,47,98,105,116,109,97,112,62, +111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,97,98,111,117,116,45, +103,101,111,100,97,45,108,111,103,111,46,112,110,103,60,47,98,105,116,109, +97,112,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, +67,69,78,84,69,82,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,60,98,111,114,100,101,114,62,56,60,47,98,111,114,100, +101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, +84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,67,79,80,89,82,73,71, +72,84,34,62,10,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67, +111,112,121,114,105,103,104,116,32,40,67,41,32,121,101,97,114,45,121,101, +97,114,32,98,121,32,76,117,99,32,65,110,115,101,108,105,110,60,47,108,97, +98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62, +119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,115,116,121,108,101,62, 10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, -69,82,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,60,98,111,114,100,101,114,62,56,60,47,98,111,114,100,101,114,62,10, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34, -32,110,97,109,101,61,34,73,68,95,67,79,80,89,82,73,71,72,84,34,62,10,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,111,112,121,114,105, -103,104,116,32,40,67,41,32,121,101,97,114,45,121,101,97,114,32,98,121,32, -76,117,99,32,65,110,115,101,108,105,110,60,47,108,97,98,101,108,62,10,32, -32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,65,76,73,71, -78,95,67,69,78,84,69,82,60,47,115,116,121,108,101,62,10,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,84,79,80,124,119,120,76,69,70,84,124,119,120,82,73, -71,72,84,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,49,48, -60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116, -97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,65,76, -76,95,82,73,71,72,84,83,95,82,69,83,69,82,86,69,68,34,62,10,32,32,32,32, -32,32,32,32,32,32,60,108,97,98,101,108,62,65,108,108,32,82,105,103,104, -116,115,32,82,101,115,101,114,118,101,100,60,47,108,97,98,101,108,62,10, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,60,102,108,97,103,62,119,120,84,79,80,124,119,120,65,76,73,71, -78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, -32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32, -110,97,109,101,61,34,73,68,95,86,69,82,83,73,79,78,95,76,65,66,69,76,34, -62,10,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,71,101,111, -68,97,32,109,97,106,46,109,105,110,46,98,108,100,32,40,116,121,112,101, -41,44,32,100,97,121,32,109,111,110,116,104,32,121,101,97,114,60,47,108, -97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, -62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,115,116,121,108,101, -62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,84,79,80,124,119,120,76,69, -70,84,124,119,120,82,73,71,72,84,124,119,120,65,76,73,71,78,95,67,69,78, -84,69,82,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,49, -48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,84,79,80,124,119,120,76,69,70, +84,124,119,120,82,73,71,72,84,124,119,120,65,76,73,71,78,95,67,69,78,84, +69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114, +100,101,114,62,49,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109, +101,61,34,73,68,95,65,76,76,95,82,73,71,72,84,83,95,82,69,83,69,82,86,69, +68,34,62,10,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,65,108, +108,32,82,105,103,104,116,115,32,82,101,115,101,114,118,101,100,60,47,108, +97,98,101,108,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,84,79,80,124, +119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,86,69,82,83,73,79, +78,95,76,65,66,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,60,108,97,98, +101,108,62,71,101,111,68,97,32,109,97,106,46,109,105,110,46,98,108,100, +32,40,116,121,112,101,41,44,32,100,97,121,32,109,111,110,116,104,32,121, +101,97,114,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, +60,115,116,121,108,101,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60, +47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,84,79, +80,124,119,120,76,69,70,84,124,119,120,82,73,71,72,84,124,119,120,65,76, +73,71,78,95,67,69,78,84,69,82,124,119,120,65,68,74,85,83,84,95,77,73,78, +83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111, +114,100,101,114,62,49,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110,97,109,101, +61,34,73,68,67,95,67,72,69,67,75,95,84,69,83,84,77,79,68,69,95,83,84,65, +66,76,69,34,62,10,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, +83,116,97,98,108,101,32,86,101,114,115,105,111,110,32,97,110,100,32,66, +117,103,32,70,105,120,101,115,32,79,110,108,121,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,49, +60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32,60, +115,116,121,108,101,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47, +115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,84,79, +80,124,119,120,76,69,70,84,124,119,120,82,73,71,72,84,124,119,120,65,76, +73,71,78,95,67,69,78,84,69,82,124,119,120,65,68,74,85,83,84,95,77,73,78, +83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111, +114,100,101,114,62,50,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, +122,101,62,53,44,50,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110, +34,32,110,97,109,101,61,34,119,120,73,68,95,79,75,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,79,75,60,47,108,97, +98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,115,105,122,101,62,53,44,50,100,60,47,115,105,122,101,62, +10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -67,104,101,99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,67,95,67, -72,69,67,75,95,84,69,83,84,77,79,68,69,95,83,84,65,66,76,69,34,62,10,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,116,97,98,108,101, -32,86,101,114,115,105,111,110,32,97,110,100,32,66,117,103,32,70,105,120, -101,115,32,79,110,108,121,60,47,108,97,98,101,108,62,10,32,32,32,32,32, -32,32,32,32,32,60,99,104,101,99,107,101,100,62,49,60,47,99,104,101,99,107, -101,100,62,10,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,115,116,121,108,101,62,10, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,60,102,108,97,103,62,119,120,84,79,80,124,119,120,76,69,70,84, -124,119,120,82,73,71,72,84,124,119,120,65,76,73,71,78,95,67,69,78,84,69, -82,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,50,48, -60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, -120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,50,100, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,67,72,69,67, +75,85,80,68,65,84,69,83,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,108,97,98,101,108,62,67,104,101,99,107,32,85,112,100,97,116,101,115, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98, 106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61, -34,119,120,73,68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,108,97,98,101,108,62,79,75,60,47,108,97,98,101,108,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112, -97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, -101,62,53,44,50,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34, -32,110,97,109,101,61,34,73,68,95,67,72,69,67,75,85,80,68,65,84,69,83,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, -67,104,101,99,107,32,85,112,100,97,116,101,115,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,50,100,60,47,115, +105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119, +120,73,68,95,68,79,78,65,84,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,108,97,98,101,108,62,68,111,110,97,116,101,60,47,108,97,98, +101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,115,105,122,101,62,53,44,50,100,60,47,115,105,122,101,62, 10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82, +73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,84,79,80,124,119,120,66,79,84,84,79,77,124,119,120, +65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,49,53,60,47,98,111,114,100, +101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,116,105,116,108, +101,62,65,98,111,117,116,32,71,101,111,68,97,60,47,116,105,116,108,101, +62,10,32,32,32,32,60,99,101,110,116,101,114,101,100,62,49,60,47,99,101, +110,116,101,114,101,100,62,10,32,32,32,32,60,115,116,121,108,101,62,119, +120,67,65,80,84,73,79,78,124,119,120,83,89,83,84,69,77,95,77,69,78,85,124, +119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108,101,62,10,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,68,105,97,108,111,103,34,32,110,97,109,101, +61,34,73,68,68,95,82,65,78,68,79,77,73,90,65,84,73,79,78,34,32,115,117, +98,99,108,97,115,115,61,34,82,97,110,100,111,109,105,122,97,116,105,111, +110,68,108,103,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61, +34,73,68,95,67,76,79,83,69,34,62,10,32,32,32,32,32,32,60,115,105,122,101, +62,53,48,44,49,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,60, +112,111,115,62,52,48,48,44,55,100,60,47,112,111,115,62,10,32,32,32,32,32, +32,60,108,97,98,101,108,62,67,108,111,115,101,60,47,108,97,98,101,108,62, +10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110, +34,32,110,97,109,101,61,34,73,68,95,79,75,34,62,10,32,32,32,32,32,32,60, +115,105,122,101,62,53,48,44,49,53,100,60,47,115,105,122,101,62,10,32,32, +32,32,32,32,60,112,111,115,62,52,48,48,44,50,55,100,60,47,112,111,115,62, +10,32,32,32,32,32,32,60,108,97,98,101,108,62,82,117,110,60,47,108,97,98, +101,108,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +60,115,105,122,101,62,52,55,48,44,50,48,48,100,60,47,115,105,122,101,62, +10,32,32,32,32,60,116,105,116,108,101,62,82,97,110,100,111,109,105,122, +97,116,105,111,110,60,47,116,105,116,108,101,62,10,32,32,32,32,60,99,101, +110,116,101,114,101,100,62,49,60,47,99,101,110,116,101,114,101,100,62,10, +32,32,32,32,60,115,116,121,108,101,62,119,120,67,65,80,84,73,79,78,124, +119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108,101,62,10,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,68,105,97,108,111,103,34,32,110,97,109,101, +61,34,73,68,95,76,65,66,69,76,95,80,82,69,67,73,83,73,79,78,95,68,76,71, +34,32,115,117,98,99,108,97,115,115,61,34,83,101,116,68,105,115,112,108, +97,121,80,114,101,99,105,115,105,111,110,68,108,103,34,62,10,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120, +83,105,122,101,114,34,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -115,105,122,101,62,53,44,50,100,60,47,115,105,122,101,62,10,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116, -111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,68,79,78,65,84,69,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, -68,111,110,97,116,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, +34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97, +99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, +101,62,49,49,53,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32, 32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44, -50,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105, -101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105, -101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,84,79,80,124,119, -120,66,79,84,84,79,77,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60, -47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,49,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,60,116,105,116,108,101,62,65,98,111,117,116,32,71,101,111,68,97, -60,47,116,105,116,108,101,62,10,32,32,32,32,60,99,101,110,116,101,114,101, -100,62,49,60,47,99,101,110,116,101,114,101,100,62,10,32,32,32,32,60,115, -116,121,108,101,62,119,120,67,65,80,84,73,79,78,124,119,120,83,89,83,84, -69,77,95,77,69,78,85,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116, -121,108,101,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,68,105,97,108,111, -103,34,32,110,97,109,101,61,34,73,68,68,95,82,65,78,68,79,77,73,90,65,84, -73,79,78,34,32,115,117,98,99,108,97,115,115,61,34,82,97,110,100,111,109, -105,122,97,116,105,111,110,68,108,103,34,62,10,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34, -32,110,97,109,101,61,34,73,68,95,67,76,79,83,69,34,62,10,32,32,32,32,32, -32,60,115,105,122,101,62,53,48,44,49,53,100,60,47,115,105,122,101,62,10, -32,32,32,32,32,32,60,112,111,115,62,52,48,48,44,55,100,60,47,112,111,115, -62,10,32,32,32,32,32,32,60,108,97,98,101,108,62,67,108,111,115,101,60,47, -108,97,98,101,108,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,79,75,34,62,10, -32,32,32,32,32,32,60,115,105,122,101,62,53,48,44,49,53,100,60,47,115,105, -122,101,62,10,32,32,32,32,32,32,60,112,111,115,62,52,48,48,44,50,55,100, -60,47,112,111,115,62,10,32,32,32,32,32,32,60,108,97,98,101,108,62,82,117, -110,60,47,108,97,98,101,108,62,10,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,60,115,105,122,101,62,52,55,48,44,50,48,48,100,60,47, -115,105,122,101,62,10,32,32,32,32,60,116,105,116,108,101,62,82,97,110,100, -111,109,105,122,97,116,105,111,110,60,47,116,105,116,108,101,62,10,32,32, -32,32,60,99,101,110,116,101,114,101,100,62,49,60,47,99,101,110,116,101, -114,101,100,62,10,32,32,32,32,60,115,116,121,108,101,62,119,120,67,65,80, -84,73,79,78,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108, -101,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,68,105,97,108,111,103,34,32,110, -97,109,101,61,34,73,68,95,76,65,66,69,76,95,80,82,69,67,73,83,73,79,78, -95,68,76,71,34,32,115,117,98,99,108,97,115,115,61,34,83,101,116,68,105, -115,112,108,97,121,80,114,101,99,105,115,105,111,110,68,108,103,34,62,10, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, +122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, +84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, +98,101,108,62,83,101,116,32,68,105,115,112,108,97,121,32,80,114,101,99, +105,115,105,111,110,58,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44, +45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,49,49,53,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, -105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, -99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73, -67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108, -97,98,101,108,62,83,101,116,32,68,105,115,112,108,97,121,32,80,114,101, -99,105,115,105,111,110,58,60,47,108,97,98,101,108,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53, +83,112,105,110,67,116,114,108,34,32,110,97,109,101,61,34,73,68,95,76,65, +66,69,76,95,80,82,69,67,73,83,73,79,78,95,83,80,73,78,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,54,48, 44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,112,105,110,67,116,114,108,34,32,110,97,109,101,61,34,73,68,95,76, -65,66,69,76,95,80,82,69,67,73,83,73,79,78,95,83,80,73,78,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,54, -48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,80, -82,79,67,69,83,83,95,69,78,84,69,82,60,47,115,116,121,108,101,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65, -76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76, -60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,84,79,80,124,119,120,65,76,73,71,78,95,67,69, -78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60, -47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,45,49,44,53,100,60, -47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110,97,109, -101,61,34,73,68,67,95,70,73,88,95,80,79,73,78,84,95,67,72,69,67,75,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,65, -108,119,97,121,115,32,117,115,105,110,103,32,102,105,120,101,100,45,112, -111,105,110,116,32,110,111,116,97,116,105,111,110,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101, -100,62,49,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124, +32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,80,82, +79,67,69,83,83,95,69,78,84,69,82,60,47,115,116,121,108,101,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, 119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60, +47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,84,79,80,124,119,120,65,76,73,71,78,95,67,69,78,84, +82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, 32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,60,115,105,122,101,62,45,49,44,53,100,60,47,115,105, @@ -17496,67 +17479,85 @@ static unsigned char xml_res_file_9[] = { 62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +61,34,119,120,67,104,101,99,107,66,111,120,34,32,110,97,109,101,61,34,73, +68,67,95,70,73,88,95,80,79,73,78,84,95,67,72,69,67,75,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,65,108,119,97, +121,115,32,117,115,105,110,103,32,102,105,120,101,100,45,112,111,105,110, +116,32,110,111,116,97,116,105,111,110,60,47,108,97,98,101,108,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62, +49,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120, +65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,115,105,122,101,62,45,49,44,53,100,60,47,115,105,122, +101,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73, -68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,108,97,98,101,108,62,79,75,60,47,108,97,98,101,108,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73, -90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62, -53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95, -67,65,78,67,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,108,97,98,101,108,62,67,108,111,115,101,60,47,108,97,98,101, -108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111, -114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, -97,103,62,119,120,66,79,84,84,79,77,124,119,120,65,76,73,71,78,95,67,69, -78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,49,48, -60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105, -101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110, -116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,56,60, -47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72, -79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,116,105,116,108,101, -62,83,101,116,32,68,105,115,112,108,97,121,32,80,114,101,99,105,115,105, -111,110,60,47,116,105,116,108,101,62,10,32,32,32,32,60,99,101,110,116,101, -114,101,100,62,49,60,47,99,101,110,116,101,114,101,100,62,10,32,32,32,32, -60,115,116,121,108,101,62,119,120,67,65,80,84,73,79,78,124,119,120,83,89, -83,84,69,77,95,77,69,78,85,124,119,120,67,76,79,83,69,95,66,79,88,60,47, -115,116,121,108,101,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,68,105,97,108, -111,103,34,32,110,97,109,101,61,34,73,68,95,78,85,77,95,67,65,84,69,71, -79,82,73,69,83,95,68,76,71,34,32,115,117,98,99,108,97,115,115,61,34,78, -117,109,67,97,116,101,103,111,114,105,101,115,68,108,103,34,62,10,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, -120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112, -97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, -101,62,49,49,53,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68, +95,79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,108,97,98,101,108,62,79,75,60,47,108,97,98,101,108,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90, +79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,65, +78,67,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,108,97,98,101,108,62,67,108,111,115,101,60,47,108,97,98,101,108,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105, +101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105, +101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,66,79,84,84,79,77,124,119,120,65,76,73,71,78,95,67,69,78,84, +82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,49,48,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, +116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62, +10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,60,47,102,108,97,103, +62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,56,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82, +73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,60,116,105,116,108,101,62,83, +101,116,32,68,105,115,112,108,97,121,32,80,114,101,99,105,115,105,111,110, +60,47,116,105,116,108,101,62,10,32,32,32,32,60,99,101,110,116,101,114,101, +100,62,49,60,47,99,101,110,116,101,114,101,100,62,10,32,32,32,32,60,115, +116,121,108,101,62,119,120,67,65,80,84,73,79,78,124,119,120,83,89,83,84, +69,77,95,77,69,78,85,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116, +121,108,101,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,68,105,97,108,111, +103,34,32,110,97,109,101,61,34,73,68,95,78,85,77,95,67,65,84,69,71,79,82, +73,69,83,95,68,76,71,34,32,115,117,98,99,108,97,115,115,61,34,78,117,109, +67,97,116,101,103,111,114,105,101,115,68,108,103,34,62,10,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, +105,122,101,114,34,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99, +101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, +62,49,49,53,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, 114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, 98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, 122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, @@ -24935,290 +24936,260 @@ static unsigned char xml_res_file_9[] = { 62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116, 109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, -99,112,112,36,111,112,101,110,45,102,111,108,100,101,114,46,112,110,103, -60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69, -70,84,124,119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83, -73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, -116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84,69,88,84,50, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,79,117,116,112,117,116,32,102,105,108,101,32,40,42,46,115, -104,112,41,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +99,112,112,36,48,48,48,45,111,112,101,110,45,102,111,108,100,101,114,46, +112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109,101,61,34,73, -68,67,95,70,73,69,76,68,95,83,72,80,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,50,44,45,49,100, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,82,69,65,68,79,78,76, -89,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67, -69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60, -47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, -120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, -114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,66, -117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,67,95,79,80,69,78, -95,79,83,72,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69, -60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101, -115,111,117,114,99,101,115,46,99,112,112,36,115,97,118,101,46,112,110,103, -60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, -84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, +95,76,69,70,84,124,119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77, +73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, +101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, +84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84, +69,88,84,50,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,108,97,98,101,108,62,79,117,116,112,117,116,32,102,105,108,101,32, +40,42,46,115,104,112,41,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109, +101,61,34,73,68,67,95,70,73,69,76,68,95,83,72,80,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,50,44, +45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,82,69,65, +68,79,78,76,89,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, +71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120, +65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, 116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, 116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, -119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122, -101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60, -47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124, -119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116, -34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84,69,88,84,49,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,108,97,98,101,108,62,88,45,99,111,111,114,100,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, -76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,111, -105,99,101,34,32,110,97,109,101,61,34,73,68,67,95,75,69,89,86,65,82,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,115,105,122,101,62,55,55,44,45,49,100,60,47,115,105,122,101,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, -120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, -97,103,62,119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83, -73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, -100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116, -97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84, -65,84,73,67,84,69,88,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,89,45,99,111,111,114, -100,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, -97,103,62,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62, -53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,67, -95,75,69,89,86,65,82,50,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,55,55,44,45,49,100,60, -47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84, +65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116, +109,97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,67,95, +79,80,69,78,95,79,83,72,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95, +78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112, +112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,115, +97,118,101,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, 32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69, -78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, -122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, -116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,60, -47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,79,75,95,65, -68,68,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,62,67,38,97,109,112,59,114,101,97,116,101,60,47,108,97,98,101,108,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,102,108,97,103,62,119,120,65,76,76,60,47,102,108,97,103,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, -60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116, -116,111,110,34,32,110,97,109,101,61,34,73,68,67,65,78,67,69,76,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,97, -109,112,59,67,108,111,115,101,60,47,108,97,98,101,108,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,68,105,97,108,111,103,34,32,110,97,109,101,61,34, -73,68,68,95,67,79,78,86,69,82,84,95,83,72,80,50,65,83,67,34,32,115,117, -98,99,108,97,115,115,61,34,83,72,80,50,65,83,67,68,108,103,34,62,10,32, -32,32,32,60,115,116,121,108,101,62,119,120,67,65,80,84,73,79,78,124,119, -120,83,89,83,84,69,77,95,77,69,78,85,124,119,120,67,76,79,83,69,95,66,79, -88,60,47,115,116,121,108,101,62,10,32,32,32,32,60,116,105,116,108,101,62, -69,120,112,111,114,116,105,110,103,32,83,104,97,112,101,32,116,111,32,66, -111,117,110,100,97,114,121,60,47,116,105,116,108,101,62,10,32,32,32,32, -60,99,101,110,116,101,114,101,100,62,49,60,47,99,101,110,116,101,114,101, -100,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,60, -111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47, -111,114,105,101,110,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, -67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, -122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62, -10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, -67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,83,116,97,116,105,99,66,111,120,83,105,122,101,114,34,32,110,97, -109,101,61,34,119,120,73,68,95,65,78,89,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73, -67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,108,97,98,101,108,47,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, 105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, +95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, +120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76, +60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,76,60,47,102,108,97,103,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,70,108,101,120,71,114,105,100,83,105,122,101,114,34,62,10,32,32,32, +120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82, +73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, +119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, +114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, +105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73, +67,84,69,88,84,49,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,108,97,98,101,108,62,88,45,99,111,111,114,100,60, +47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, 99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, -120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84,69,88, -84,51,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,108,97,98,101,108,62,73,110,112,117,116,32,100,97,116,97,115, -111,117,114,99,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,76,69,70,84,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -84,101,120,116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,70, -73,69,76,68,95,83,72,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,50,44,45,49,100, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,82,69,65, -68,79,78,76,89,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,76,69,70,84,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,105,116,109,97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34, -73,68,67,95,79,80,69,78,95,73,83,72,80,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71, -100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,111, -112,101,110,45,102,111,108,100,101,114,46,112,110,103,60,47,98,105,116, -109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79, -78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,76,124,119,120,65,76,73,71,78,95,76,69,70,84,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, -105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73, -67,84,69,88,84,50,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,108,97,98,101,108,62,79,117,116,112,117,116,32, -102,105,108,101,32,40,116,101,120,116,32,102,105,108,101,41,60,47,108,97, -98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +103,62,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,67,95, +75,69,89,86,65,82,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,115,105,122,101,62,55,55,44,45,49,100,60,47,115, +105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119, -120,65,76,73,71,78,95,76,69,70,84,60,47,102,108,97,103,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34, -32,110,97,109,101,61,34,73,68,67,95,70,73,69,76,68,95,65,83,67,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114, +105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114, +105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,65, +68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100, +101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110, +97,109,101,61,34,73,68,95,83,84,65,84,73,67,84,69,88,84,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, +101,108,62,89,45,99,111,111,114,100,60,47,108,97,98,101,108,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,60, +47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,111,105,99, +101,34,32,110,97,109,101,61,34,73,68,67,95,75,69,89,86,65,82,50,34,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, -105,122,101,62,49,55,50,44,45,49,100,60,47,115,105,122,101,62,10,32,32, +105,122,101,62,55,55,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90, +79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, +114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, +32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90, +79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34, +32,110,97,109,101,61,34,73,68,79,75,95,65,68,68,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,38,97,109,112,59, +114,101,97,116,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101, +61,34,73,68,67,65,78,67,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,108,97,98,101,108,62,38,97,109,112,59,67,108,111,115,101,60, +47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,68,105,97, +108,111,103,34,32,110,97,109,101,61,34,73,68,68,95,67,79,78,86,69,82,84, +95,83,72,80,50,65,83,67,34,32,115,117,98,99,108,97,115,115,61,34,83,72, +80,50,65,83,67,68,108,103,34,62,10,32,32,32,32,60,115,116,121,108,101,62, +119,120,67,65,80,84,73,79,78,124,119,120,83,89,83,84,69,77,95,77,69,78, +85,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108,101,62, +10,32,32,32,32,60,116,105,116,108,101,62,69,120,112,111,114,116,105,110, +103,32,83,104,97,112,101,32,116,111,32,66,111,117,110,100,97,114,121,60, +47,116,105,116,108,101,62,10,32,32,32,32,60,99,101,110,116,101,114,101, +100,62,49,60,47,99,101,110,116,101,114,101,100,62,10,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, +122,101,114,34,62,10,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, +120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, +73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114, +62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, +32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67, +65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90, +79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,66,111, +120,83,105,122,101,114,34,32,110,97,109,101,61,34,119,120,73,68,95,65,78, +89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101, +110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,47, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,83,105, +122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68, +95,83,84,65,84,73,67,84,69,88,84,51,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,73,110,112, +117,116,32,100,97,116,97,115,111,117,114,99,101,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,65,76, +73,71,78,95,76,69,70,84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32, +110,97,109,101,61,34,73,68,67,95,70,73,69,76,68,95,83,72,80,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, +122,101,62,49,55,50,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108, +101,62,119,120,84,69,95,82,69,65,68,79,78,76,89,60,47,115,116,121,108,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,65,76, +73,71,78,95,76,69,70,84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,66,117,116,116, +111,110,34,32,110,97,109,101,61,34,73,68,67,95,79,80,69,78,95,73,83,72, +80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, +114,99,101,115,46,99,112,112,36,48,48,48,45,111,112,101,110,45,102,111, +108,100,101,114,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116, -121,108,101,62,119,120,84,69,95,82,69,65,68,79,78,76,89,60,47,115,116,121, +121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121, 108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120, @@ -25229,20 +25200,51 @@ static unsigned char xml_res_file_9[] = { 32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,66,117,116, -116,111,110,34,32,110,97,109,101,61,34,73,68,67,95,79,80,69,78,95,79,65, -83,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111, -117,114,99,101,115,46,99,112,112,36,115,97,118,101,46,112,110,103,60,47, -98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82, -95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,76,69,70,84,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, +116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84,69,88,84,50, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,108,97,98,101,108,62,79,117,116,112,117,116,32,102,105,108,101,32, +40,116,101,120,116,32,102,105,108,101,41,60,47,108,97,98,101,108,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,65,76,73,71, +78,95,76,69,70,84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109, +101,61,34,73,68,67,95,70,73,69,76,68,95,65,83,67,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, +49,55,50,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62, +119,120,84,69,95,82,69,65,68,79,78,76,89,60,47,115,116,121,108,101,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,65,76,73,71, +78,95,76,69,70,84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,66,117,116,116,111,110,34, +32,110,97,109,101,61,34,73,68,67,95,79,80,69,78,95,79,65,83,67,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, +105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101, +115,46,99,112,112,36,48,48,48,45,115,97,118,101,46,112,110,103,60,47,98, +105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95, +78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,76,69,70,84,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, 105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, @@ -27063,260 +27065,272 @@ static unsigned char xml_res_file_9[] = { 116,111,110,34,32,110,97,109,101,61,34,73,68,95,79,80,69,78,95,87,69,73, 71,72,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115, -111,117,114,99,101,115,46,99,112,112,36,84,111,111,108,66,97,114,66,105, -116,109,97,112,115,95,51,46,112,110,103,60,47,98,105,116,109,97,112,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -100,105,115,97,98,108,101,100,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,84,111,111,108,66,97,114,66,105,116,109, -97,112,115,95,51,95,100,105,115,97,98,108,101,100,46,112,110,103,60,47, -100,105,115,97,98,108,101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,79,112, -101,110,32,119,101,105,103,104,116,115,32,102,105,108,101,60,47,116,111, -111,108,116,105,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82, -95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, +111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,84,111,111,108,66,97, +114,66,105,116,109,97,112,115,95,51,46,112,110,103,60,47,98,105,116,109, +97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,100,105,115,97,98,108,101,100,62,71,100,97,65,112,112,82,101,115, +111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,84,111,111,108,66,97, +114,66,105,116,109,97,112,115,95,51,95,100,105,115,97,98,108,101,100,46, +112,110,103,60,47,100,105,115,97,98,108,101,100,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,116,111,111,108,116, +105,112,62,79,112,101,110,32,119,101,105,103,104,116,115,32,102,105,108, +101,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120, +66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, +95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67, -65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72, -79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -111,114,100,101,114,62,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61, -34,73,68,67,95,67,85,82,82,69,78,84,85,83,69,68,95,87,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,50,50, -48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124, -119,120,71,82,79,87,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60, -47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,98,111,114,100,101,114,62,48,60,47,98,111,114,100,101,114,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, +116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,67,69, +78,84,69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,48,60,47,98,111,114,100,101, +114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110, +97,109,101,61,34,73,68,67,95,67,85,82,82,69,78,84,85,83,69,68,95,87,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, +122,101,62,50,50,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, -120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,76,124,119,120,71,82,79,87,124,119,120,65,76,73,71,78,95,67,69,78, +84,69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,98,111,114,100,101,114,62,48,60,47,98,111,114,100,101,114, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101, +110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34, +73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,108,97,98,101,108,62,86,97,114,105,97,98,108,101, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,65,76, +73,71,78,95,67,69,78,84,69,82,124,119,120,65,68,74,85,83,84,95,77,73,78, +83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,48,60,47,98,111,114,100,101, +114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110, +97,109,101,61,34,73,68,67,95,76,65,71,95,79,80,69,82,65,78,68,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, +62,56,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120, -65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, -122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120, -83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, -105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84, -73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -108,97,98,101,108,62,86,97,114,105,97,98,108,101,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,67,69,78,84, -69,82,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108, +32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79, +84,84,79,77,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108, 97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, +114,100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, 115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, 115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68, -67,95,76,65,71,95,79,80,69,82,65,78,68,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,56,48,44,45,49,100, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,66,79,84,84,79,77,124,119,120, +67,95,76,65,71,95,79,80,69,82,65,78,68,95,84,77,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,56,48,44,45, +49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120, 65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51, 60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67, -104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,67,95,76,65,71,95,79, -80,69,82,65,78,68,95,84,77,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,115,105,122,101,62,56,48,44,45,49,100,60,47,115,105, -122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,102,108,97,103,62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,67, -69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105, -101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -65,76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, -114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,108, -34,32,110,97,109,101,61,34,73,68,67,95,69,68,73,84,54,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,48,48,44,45,49, -100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,115,116,121,108,101,62,119,120,84,69,95,82,69,65,68,79,78,76,89,60, -47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,76,124,119,120,71,82,79,87,124,119,120,65,76, -73,71,78,95,76,69,70,84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,98,111,114,100,101,114,62,48,60,47,98,111,114,100,101, -114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,67,104,101,99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,95, -76,65,71,95,85,83,69,95,82,79,87,83,84,65,78,68,95,87,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100, -62,49,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,85,115,101,32,114,111, -119,45,115,116,97,110,100,97,114,100,105,122,101,100,32,119,101,105,103, -104,116,115,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, -95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110, -97,109,101,61,34,73,68,95,76,65,71,95,73,78,67,76,85,68,69,95,68,73,65, -71,78,79,65,76,95,87,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,99,104,101,99,107,101,100,62,48,60,47,99,104,101,99,107, -101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -108,97,98,101,108,62,73,110,99,108,117,100,101,32,100,105,97,103,111,110, -97,108,32,111,102,32,119,101,105,103,104,116,115,32,109,97,116,114,105, -120,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69, -78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, -120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, +32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76, +60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,67,69, +78,84,69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, 32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,84,79,80,124,119,120, -65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,50,53,60,47,98, -111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,80,97,110, -101,108,34,32,110,97,109,101,61,34,73,68,68,95,70,73,69,76,68,67,65,76, -67,95,82,65,84,69,34,32,115,117,98,99,108,97,115,115,61,34,70,105,101,108, -100,78,101,119,67,97,108,99,82,97,116,101,68,108,103,34,62,10,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,70,108,101, -120,71,114,105,100,83,105,122,101,114,34,62,10,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62, -10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, -95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76, -73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65, -76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78, -84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95, -67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101, +120,116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,69,68,73, +84,54,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, +101,62,51,48,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,82, +69,65,68,79,78,76,89,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,71,82, +79,87,124,119,120,65,76,73,71,78,95,76,69,70,84,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,48, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110,97, +109,101,61,34,73,68,95,76,65,71,95,85,83,69,95,82,79,87,83,84,65,78,68, +95,87,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +99,104,101,99,107,101,100,62,49,60,47,99,104,101,99,107,101,100,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108, +62,85,115,101,32,114,111,119,45,115,116,97,110,100,97,114,100,105,122,101, +100,32,119,101,105,103,104,116,115,60,47,108,97,98,101,108,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, +119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, -84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84, -69,88,84,51,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,77,101,116,104,111,100,60,47,108,97,98,101,108,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,124,119,120,65,68,74,85,83,84,95, -77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,114,100,101,114, -62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,67,95,82,65, -84,69,95,79,80,69,82,65,84,79,82,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,115,105,122,101,62,49,49,48,44,45,49,100,60,47,115,105,122, -101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -65,76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, -114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105, -101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119, -120,71,82,79,87,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, -60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, -120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34, -32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84,69,88,84,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,62,82,101,115,117,108,116,60,47,108,97,98,101,108,62,10,32,32,32,32, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101, +99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,95,76,65,71,95,73,78, +67,76,85,68,69,95,68,73,65,71,78,79,65,76,95,87,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62, +48,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,73,110,99,108,117,100,101, +32,100,105,97,103,111,110,97,108,32,111,102,32,119,101,105,103,104,116, +115,32,109,97,116,114,105,120,60,47,108,97,98,101,108,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, 65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102, 108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53, -44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78, -84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,50,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73, -68,95,65,68,68,95,67,79,76,85,77,78,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,65,100,100,32,86,97, -114,105,97,98,108,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,65,100, -100,32,110,101,119,32,99,111,108,117,109,110,32,116,111,32,116,97,98,108, -101,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,32,32,32,32,32, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114, +105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101, +110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, +120,84,79,80,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100, +101,114,62,50,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,80,97,110,101,108,34,32,110,97,109,101,61,34,73,68,68,95, +70,73,69,76,68,67,65,76,67,95,82,65,84,69,34,32,115,117,98,99,108,97,115, +115,61,34,70,105,101,108,100,78,101,119,67,97,108,99,82,97,116,101,68,108, +103,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,70,108,101,120,71,114,105,100,83,105,122,101,114,34,62,10, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62, +119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84, +65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73, +67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32, +32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, +10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114, +34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, +71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120, +65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119, +120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111, +114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116, +97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84, +65,84,73,67,84,69,88,84,51,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,108,97,98,101,108,62,77,101,116,104,111,100,60,47,108,97,98,101, +108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,124,119,120,65, +68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61, +34,73,68,67,95,82,65,84,69,95,79,80,69,82,65,84,79,82,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,49,48,44,45,49, +100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,67,69,78,84, +69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +98,111,114,100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32, 32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65, +76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, +120,65,76,76,124,119,120,71,82,79,87,124,119,120,65,76,73,71,78,95,67,69, +78,84,69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111, +114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, +120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116, +97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84, +65,84,73,67,84,69,88,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,108,97,98,101,108,62,82,101,115,117,108,116,60,47,108, +97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, +95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79, -82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120, -65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111, -114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61,34, -73,68,67,95,82,65,84,69,95,82,69,83,85,76,84,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, +119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76, +124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,50,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110, +34,32,110,97,109,101,61,34,73,68,95,65,68,68,95,67,79,76,85,77,78,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,65,100,100,32,86,97,114,105,97,98,108,101,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,116,111, +111,108,116,105,112,62,65,100,100,32,110,101,119,32,99,111,108,117,109, +110,32,116,111,32,116,97,98,108,101,60,47,116,111,111,108,116,105,112,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105, +101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105, +101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60, +47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, +100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,111,105,99, +101,34,32,110,97,109,101,61,34,73,68,67,95,82,65,84,69,95,82,69,83,85,76, +84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, +62,56,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,65,76,73, +71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,114,100, +101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,67, +95,82,65,84,69,95,82,69,83,85,76,84,95,84,77,34,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,115,105,122,101,62,56,48,44,45,49,100,60,47, 115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, 106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, @@ -27324,111 +27338,100 @@ static unsigned char xml_res_file_9[] = { 60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, 114,100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, 32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,111,105,99, -101,34,32,110,97,109,101,61,34,73,68,67,95,82,65,84,69,95,82,69,83,85,76, -84,95,84,77,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,56,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,65, -76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,114, -100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, -120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -60,102,108,97,103,62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,67, -69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98, -111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106, +32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60, +47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120, +83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106, 101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, -95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,124,119,120,65,68, -74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, -114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, -120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84,69,88, -84,50,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,62,61,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105, -101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110, -116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124, +119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, +114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34, +73,68,95,83,84,65,84,73,67,84,69,88,84,50,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,108,97,98,101,108,62,61,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82, +84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69, +82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100, +101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, +105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67, +84,69,88,84,52,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,108,97,98,101,108,62,87,101,105,103,104,116,60,47,108,97,98,101, +108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,76,69,70,84,124,119,120,65,76,73,71,78,95,67, +69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119, +120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,50,60,47,98,111,114,100,101, +114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,66,117, +116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,79,80,69,78,95,87,69, +73,71,72,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, +114,99,101,115,46,99,112,112,36,48,48,48,45,84,111,111,108,66,97,114,66, +105,116,109,97,112,115,95,51,46,112,110,103,60,47,98,105,116,109,97,112, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,100,105, +115,97,98,108,101,100,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,84,111,111,108,66,97,114,66,105,116, +109,97,112,115,95,51,95,100,105,115,97,98,108,101,100,46,112,110,103,60, +47,100,105,115,97,98,108,101,100,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,79,112,101,110,32, +119,101,105,103,104,116,115,32,102,105,108,101,60,47,116,111,111,108,116, +105,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115, +116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, +95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79, +82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120, 65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, -114,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101, -114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, 99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109, -101,61,34,73,68,95,83,84,65,84,73,67,84,69,88,84,52,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,87,101, -105,103,104,116,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,76,69,70,84, -124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65, -76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47, -115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69, -82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62, -50,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, -122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,105,116,109,97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34, -73,68,95,79,80,69,78,95,87,69,73,71,72,84,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97, -65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,84,111,111, -108,66,97,114,66,105,116,109,97,112,115,95,51,46,112,110,103,60,47,98,105, -116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,100,105,115,97,98,108,101,100,62,71,100,97,65,112,112,82,101,115, -111,117,114,99,101,115,46,99,112,112,36,84,111,111,108,66,97,114,66,105, -116,109,97,112,115,95,51,95,100,105,115,97,98,108,101,100,46,112,110,103, -60,47,100,105,115,97,98,108,101,100,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,79,112,101,110, -32,119,101,105,103,104,116,115,32,102,105,108,101,60,47,116,111,111,108, -116,105,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47, -115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, -82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, -72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98, -111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61, -34,73,68,67,95,82,65,84,69,95,87,69,73,71,72,84,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,50,50,48,44,45,49,100, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61,34, +73,68,67,95,82,65,84,69,95,87,69,73,71,72,84,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,105,122,101,62,50,50,48,44,45,49,100,60, +47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, 98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, 97,103,62,119,120,65,76,76,124,119,120,71,82,79,87,124,119,120,65,76,73, 71,78,95,67,69,78,84,69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32, @@ -28654,151 +28657,151 @@ static unsigned char xml_res_file_9[] = { 116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,79,80,69,78,95,87,69, 73,71,72,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105, 116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115, -46,99,112,112,36,84,111,111,108,66,97,114,66,105,116,109,97,112,115,95, -51,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,100,105,115,97,98,108,101,100,62,71,100,97,65,112, -112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,84,111,111,108,66, -97,114,66,105,116,109,97,112,115,95,51,95,100,105,115,97,98,108,101,100, -46,112,110,103,60,47,100,105,115,97,98,108,101,100,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68, -69,82,95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,76,69,70,84,124,119,120,82, -73,71,72,84,124,119,120,65,76,73,71,78,95,82,73,71,72,84,124,119,120,65, -76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, -114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111, -114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79, -84,84,79,77,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82, -73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, -60,98,111,114,100,101,114,62,49,50,60,47,98,111,114,100,101,114,62,10,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,83,116,97,116,105,99,66,111,120,83,105,122, -101,114,34,32,110,97,109,101,61,34,119,120,73,68,95,65,78,89,34,62,10,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, -122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,82,97,100,105,111,66,117,116,116,111,110,34,32,110, -97,109,101,61,34,73,68,67,95,82,65,68,73,79,49,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108, -62,67,108,97,115,115,105,99,32,60,47,108,97,98,101,108,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108, -101,62,119,120,82,66,95,71,82,79,85,80,60,47,115,116,121,108,101,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82, -69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, -62,50,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,82,97,100,105,111,66,117, -116,116,111,110,34,32,110,97,109,101,61,34,73,68,67,95,82,65,68,73,79,50, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,108,97,98,101,108,62,83,112,97,116,105,97,108,32,76,97,103,60,47, -108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, -71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99, -101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,115,105,122,101,62,50,53,44,53,100,60,47,115,105,122,101,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -82,97,100,105,111,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73, -68,67,95,82,65,68,73,79,51,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,112,97,116,105, -97,108,32,69,114,114,111,114,60,47,108,97,98,101,108,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69, -82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +46,99,112,112,36,48,48,48,45,84,111,111,108,66,97,114,66,105,116,109,97, +112,115,95,51,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,100,105,115,97,98,108,101,100,62,71, +100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48, +48,48,45,84,111,111,108,66,97,114,66,105,116,109,97,112,115,95,51,95,100, +105,115,97,98,108,101,100,46,112,110,103,60,47,100,105,115,97,98,108,101, +100,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108, +101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,76, +69,70,84,124,119,120,82,73,71,72,84,124,119,120,65,76,73,71,78,95,82,73, +71,72,84,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84, +73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, 32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62, -119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90, +79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108, 97,103,62,119,120,66,79,84,84,79,77,124,119,120,65,76,73,71,78,95,67,69, 78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,54,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,49,50,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, +105,99,66,111,120,83,105,122,101,114,34,32,110,97,109,101,61,34,119,120, +73,68,95,65,78,89,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,82,97,100,105,111,66, +117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,67,95,82,65,68,73, +79,49,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,108,97,98,101,108,62,67,108,97,115,115,105,99,32,60,47,108, +97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,115,116,121,108,101,62,119,120,82,66,95,71,82,79,85,80, +60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,115,105,122,101,62,50,53,44,53,100,60,47,115,105,122, +101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,116,97,116,105,99,76,105,110,101,34,32,110,97,109,101,61,34,115, -116,108,105,110,101,95,105,100,34,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,115,105,122,101,62,52,48,48,44,49,60,47,115,105, -122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -115,116,121,108,101,62,119,120,76,73,95,72,79,82,73,90,79,78,84,65,76,60, -47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,66,79,84,84,79,77,124,119,120, +120,82,97,100,105,111,66,117,116,116,111,110,34,32,110,97,109,101,61,34, +73,68,67,95,82,65,68,73,79,50,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,112,97,116, +105,97,108,32,76,97,103,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73, +67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,50,53,44,53,100, +60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,82,97,100,105,111,66,117,116,116,111,110,34,32, +110,97,109,101,61,34,73,68,67,95,82,65,68,73,79,51,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,83,112,97,116,105,97,108,32,69,114,114,111,114,60,47,108,97,98,101, +108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69, +78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111, +114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,66,79,84,84,79,77,124,119,120, 65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60, 47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,98,111,114,100,101,114,62,54,60,47,98,111,114,100,101,114,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, -120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66,111, -120,34,32,110,97,109,101,61,34,73,68,95,80,82,69,68,95,86,65,76,95,67,66, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,108,97,98,101,108,62,80,114,101,100,46,32,86,97,108,46,32,97,110, -100,32,82,101,115,46,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,83,116,97,116,105,99,76,105,110,101,34,32,110, +97,109,101,61,34,115,116,108,105,110,101,95,105,100,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,52,48,48, +44,49,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,115,116,121,108,101,62,119,120,76,73,95,72,79,82,73,90, +79,78,84,65,76,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79,84, +84,79,77,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73, +90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,54,60,47,98,111,114,100, +101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105, +101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, 101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, 34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, 111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99, -107,66,111,120,34,32,110,97,109,101,61,34,73,68,95,67,79,69,70,95,86,65, -82,95,77,65,84,82,73,88,95,67,66,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,111,101, -102,102,46,32,86,97,114,46,32,77,97,116,46,60,47,108,97,98,101,108,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +107,66,111,120,34,32,110,97,109,101,61,34,73,68,95,80,82,69,68,95,86,65, +76,95,67,66,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,108,97,98,101,108,62,80,114,101,100,46,32,86,97,108,46, +32,97,110,100,32,82,101,115,46,60,47,108,97,98,101,108,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99, +101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104, +101,99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,95,67,79,69,70,95, +86,65,82,95,77,65,84,82,73,88,95,67,66,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,111, +101,102,102,46,32,86,97,114,46,32,77,97,116,46,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122, +101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, 114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, 120,67,104,101,99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,95,87, @@ -29291,34 +29294,34 @@ static unsigned char xml_res_file_9[] = { 82,95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62, 71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36, -111,112,101,110,45,102,111,108,100,101,114,46,112,110,103,60,47,98,105, -116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +48,48,48,45,111,112,101,110,45,102,111,108,100,101,114,46,112,110,103,60, +47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, -95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, -120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47, -111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120, -65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,82,97,100,105,111,66,117,116, -116,111,110,34,32,110,97,109,101,61,34,73,68,67,95,82,65,68,73,79,51,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, -101,108,62,85,115,101,32,116,104,101,32,98,111,117,110,100,105,110,103, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, +69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60, +47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119, +120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, +114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,82,97,100,105,111,66,117, +116,116,111,110,34,32,110,97,109,101,61,34,73,68,67,95,82,65,68,73,79,51, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, +98,101,108,62,85,115,101,32,116,104,101,32,98,111,117,110,100,105,110,103, 32,98,111,120,32,111,102,32,115,104,97,112,101,32,100,97,116,97,115,111, 117,114,99,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,48,60,47,118,97,108, @@ -29365,53 +29368,84 @@ static unsigned char xml_res_file_9[] = { 32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78, 69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65, -112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,111,112,101, -110,45,102,111,108,100,101,114,46,112,110,103,60,47,98,105,116,109,97,112, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45, +111,112,101,110,45,102,111,108,100,101,114,46,112,110,103,60,47,98,105, +116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120, -65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116, -97,116,105,99,66,111,120,83,105,122,101,114,34,32,110,97,109,101,61,34, -119,120,73,68,95,65,78,89,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105, -101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, -71,114,105,100,32,83,105,122,101,60,47,108,97,98,101,108,62,10,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69, -82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, -114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,70, -108,101,120,71,114,105,100,83,105,122,101,114,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,99,111,108,115,62,50,60,47,99,111,108,115,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,114,111,119,115,62,50,60, -47,114,111,119,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118, -103,97,112,62,48,60,47,118,103,97,112,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,104,103,97,112,62,48,60,47,104,103,97,112,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69, +70,84,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, +32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,83,116,97,116,105,99,66,111,120,83,105,122,101,114,34,32,110, +97,109,101,61,34,119,120,73,68,95,65,78,89,34,62,10,32,32,32,32,32,32,32, +32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76, +60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,108, +97,98,101,108,62,71,114,105,100,32,83,105,122,101,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,73,71,78,95,76,69,70,84,124,119,120,65,76,73,71,78,95,67,69,78,84,69, -82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,124,119,120,65,68,74, -85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60, -47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83, -116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83, -84,65,84,73,67,84,69,88,84,54,34,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,108,97,98,101,108,62,78,117,109,98,101,114,32,111, -102,32,82,111,119,115,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, +95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76, +76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98, +111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,70,108,101,120,71,114,105,100,83,105,122,101,114,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,108,115,62,50,60,47,99, +111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,114,111, +119,115,62,50,60,47,114,111,119,115,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,118,103,97,112,62,48,60,47,118,103,97,112,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,104,103,97,112,62,48,60,47,104,103, +97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,73,71,78,95, +67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,124,119, +120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68, +95,83,84,65,84,73,67,84,69,88,84,54,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,78,117,109,98,101,114, +32,111,102,32,82,111,119,115,60,47,108,97,98,101,108,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124, +119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76, +124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67, +116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,69,68,73,84,55,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121, +108,101,62,119,120,84,69,95,82,73,71,72,84,60,47,115,116,121,108,101,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108, +117,101,62,50,60,47,118,97,108,117,101,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, +95,76,69,70,84,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69, +82,84,73,67,65,76,124,119,120,65,76,76,124,119,120,65,68,74,85,83,84,95, +77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67, +84,69,88,84,53,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,108,97,98,101,108,62,78,117,109,98,101,114,32,111,102,32,67,111, +108,117,109,110,115,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, @@ -29423,251 +29457,251 @@ static unsigned char xml_res_file_9[] = { 32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, 101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, 106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116, -114,108,34,32,110,97,109,101,61,34,73,68,67,95,69,68,73,84,55,34,62,10, +114,108,34,32,110,97,109,101,61,34,73,68,67,95,69,68,73,84,56,34,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108, 101,62,119,120,84,69,95,82,73,71,72,84,60,47,115,116,121,108,101,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117, 101,62,50,60,47,118,97,108,117,101,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72, +79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62, +10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, +72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, 34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, -76,69,70,84,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82, -84,73,67,65,76,124,119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77, -73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, -84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84, -69,88,84,53,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,108,97,98,101,108,62,78,117,109,98,101,114,32,111,102,32,67,111,108, -117,109,110,115,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, +69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117, +116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,67,82,69,65,84,69,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, +67,38,97,109,112,59,114,101,97,116,101,60,47,108,97,98,101,108,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, 32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, -95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76, -73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65, -76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34, -32,110,97,109,101,61,34,73,68,67,95,69,68,73,84,56,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119, -120,84,69,95,82,73,71,72,84,60,47,115,116,121,108,101,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,50,60, -47,118,97,108,117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, -122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108, -97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90, -79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, -114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, -32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90, -79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69, -82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, -111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110, -34,32,110,97,109,101,61,34,73,68,95,67,82,69,65,84,69,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,38,97,109,112, -59,114,101,97,116,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119, -120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,53,100,60, -47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67, -69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100, -101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62, -10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69, -82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, -111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, 97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73, 67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110, -97,109,101,61,34,73,68,67,65,78,67,69,76,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,97,109,112,59,67,108,111, -115,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -68,105,97,108,111,103,34,32,110,97,109,101,61,34,73,68,68,95,67,79,78,86, -69,82,84,95,66,79,85,78,68,65,82,89,95,84,79,95,83,72,80,34,32,115,117, -98,99,108,97,115,115,61,34,66,110,100,50,83,104,112,68,108,103,34,62,10, -32,32,32,32,60,115,116,121,108,101,62,119,120,67,65,80,84,73,79,78,124, -119,120,83,89,83,84,69,77,95,77,69,78,85,124,119,120,67,76,79,83,69,95, -66,79,88,60,47,115,116,121,108,101,62,10,32,32,32,32,60,116,105,116,108, -101,62,67,111,110,118,101,114,116,32,66,111,117,110,100,97,114,121,32,116, -111,32,83,104,97,112,101,32,68,97,116,97,115,111,117,114,99,101,60,47,116, -105,116,108,101,62,10,32,32,32,32,60,99,101,110,116,101,114,101,100,62, -49,60,47,99,101,110,116,101,114,101,100,62,10,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101, -114,34,62,10,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86, -69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, -84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, -10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,83,116,97,116,105,99,66,111,120,83,105,122,101,114,34,32, -110,97,109,101,61,34,119,120,73,68,95,65,78,89,34,62,10,32,32,32,32,32, -32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79, -78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,108,97,98,101,108,47,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65, -76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, -114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,83,105, -122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111, -108,115,62,51,60,47,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,114,111,119,115,62,49,60,47,114,111,119,115,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,118,103,97,112,62,48,60,47,118,103, -97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,104,103,97,112, -62,48,60,47,104,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, -119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34, -32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,73, -110,112,117,116,32,102,105,108,101,32,40,116,101,120,116,32,102,105,108, -101,41,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, +53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120, +65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47, +115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69, +78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69, +82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62, +53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116, +116,111,110,34,32,110,97,109,101,61,34,73,68,67,65,78,67,69,76,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,97, +109,112,59,67,108,111,115,101,60,47,108,97,98,101,108,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, 32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,84,101,120,116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95, -70,73,69,76,68,95,65,83,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,115,105,122,101,62,49,55,50,44,45,49,100,60,47,115, -105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,115,116,121,108,101,62,119,120,84,69,95,82,69,65,68,79,78,76,89,60,47, -115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, -69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,67, -69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,68,105,97,108,111,103,34,32,110,97,109,101,61,34, +73,68,68,95,67,79,78,86,69,82,84,95,66,79,85,78,68,65,82,89,95,84,79,95, +83,72,80,34,32,115,117,98,99,108,97,115,115,61,34,66,110,100,50,83,104, +112,68,108,103,34,62,10,32,32,32,32,60,115,116,121,108,101,62,119,120,67, +65,80,84,73,79,78,124,119,120,83,89,83,84,69,77,95,77,69,78,85,124,119, +120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108,101,62,10,32,32,32, +32,60,116,105,116,108,101,62,67,111,110,118,101,114,116,32,66,111,117,110, +100,97,114,121,32,116,111,32,83,104,97,112,101,32,68,97,116,97,115,111, +117,114,99,101,60,47,116,105,116,108,101,62,10,32,32,32,32,60,99,101,110, +116,101,114,101,100,62,49,60,47,99,101,110,116,101,114,101,100,62,10,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,60,111,114,105,101, +110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116, +62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72, +79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,66,111,120,83,105, +122,101,114,34,32,110,97,109,101,61,34,119,120,73,68,95,65,78,89,34,62, +10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, +72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,47,62,10,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86, +69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,70,108,101,120,71, +114,105,100,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,99,111,108,115,62,51,60,47,99,111,108,115,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,114,111,119,115,62,49,60,47,114,111,119, +115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,103,97,112,62, +48,60,47,118,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,104,103,97,112,62,48,60,47,104,103,97,112,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76, +69,70,84,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, +73,67,65,76,124,119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73, +78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, +101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, +84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, +98,101,108,62,73,110,112,117,116,32,102,105,108,101,32,40,116,101,120,116, +32,102,105,108,101,41,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, 115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, -73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, -119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, -66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,67,95,79,80,69, -78,95,73,65,83,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78, -69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101, -115,111,117,114,99,101,115,46,99,112,112,36,111,112,101,110,45,102,111, -108,100,101,114,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, -67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101, -114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, -105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101, -110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101, -110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109, +101,61,34,73,68,67,95,70,73,69,76,68,95,65,83,67,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,50,44, +45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,82,69,65, +68,79,78,76,89,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, -71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76, -76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,67, -82,69,65,84,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108, -97,98,101,108,62,67,38,97,109,112,59,114,101,97,116,101,60,47,108,97,98, -101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, -95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60, -47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,67,65,78,67, -69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,62,38,97,109,112,59,67,108,111,115,101,60,47,108,97,98,101,108,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,68,105,97,108,111,103,34,32,110,97,109, -101,61,34,73,68,68,95,51,68,80,76,79,84,34,32,115,117,98,99,108,97,115, -115,61,34,67,51,68,68,108,103,34,62,10,32,32,32,32,60,115,116,121,108,101, -62,119,120,67,65,80,84,73,79,78,124,119,120,83,89,83,84,69,77,95,77,69, -78,85,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108,101, -62,10,32,32,32,32,60,116,105,116,108,101,62,65,120,105,115,32,83,101,108, -101,99,116,105,111,110,60,47,116,105,116,108,101,62,10,32,32,32,32,60,99, -101,110,116,101,114,101,100,62,49,60,47,99,101,110,116,101,114,101,100, -62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,60,111,114, -105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101, -110,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, -95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47, -98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, -120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32, +71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120, +65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119, +120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, +114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, +84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, +73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60, +47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +105,116,109,97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73, +68,67,95,79,80,69,78,95,73,65,83,67,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68, +69,82,95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100, +97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48, +48,45,111,112,101,110,45,102,111,108,100,101,114,46,112,110,103,60,47,98, +105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97, +103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79, +78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114, +62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, +32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79, +78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, +73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32, +110,97,109,101,61,34,73,68,95,67,82,69,65,84,69,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,38,97,109,112,59, +114,101,97,116,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65, +76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, +114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97, +109,101,61,34,73,68,67,65,78,67,69,76,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,108,97,98,101,108,62,38,97,109,112,59,67,108,111,115, +101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +68,105,97,108,111,103,34,32,110,97,109,101,61,34,73,68,68,95,51,68,80,76, +79,84,34,32,115,117,98,99,108,97,115,115,61,34,67,51,68,68,108,103,34,62, +10,32,32,32,32,60,115,116,121,108,101,62,119,120,67,65,80,84,73,79,78,124, +119,120,83,89,83,84,69,77,95,77,69,78,85,124,119,120,67,76,79,83,69,95, +66,79,88,60,47,115,116,121,108,101,62,10,32,32,32,32,60,116,105,116,108, +101,62,65,120,105,115,32,83,101,108,101,99,116,105,111,110,60,47,116,105, +116,108,101,62,10,32,32,32,32,60,99,101,110,116,101,114,101,100,62,49,60, +47,99,101,110,116,101,114,101,100,62,10,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, +62,10,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82, +84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, +116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124, +119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60, +98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, +60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60, +47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, +120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, +119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,83,116,97,116,105,99,66,111,120,83,105,122,101, +114,34,32,110,97,109,101,61,34,119,120,73,68,95,65,78,89,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, +86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,88,32,86,97,114,105, +97,98,108,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69, +78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47, +102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,76,105,115,116,66,111,120,34,32,110,97,109,101, +61,34,73,68,67,95,76,73,83,84,95,86,65,82,73,78,95,88,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,110,116,101,110, +116,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, +105,122,101,62,57,48,44,49,48,55,100,60,47,115,105,122,101,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, +62,119,120,76,66,95,83,73,78,71,76,69,60,47,115,116,121,108,101,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, 32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, 61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78, @@ -29679,7 +29713,7 @@ static unsigned char xml_res_file_9[] = { 34,119,120,73,68,95,65,78,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76, 60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,108,97,98,101,108,62,88,32,86,97,114,105,97,98,108,101,60,47,108, +32,32,60,108,97,98,101,108,62,89,32,86,97,114,105,97,98,108,101,60,47,108, 97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, 106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, 109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, @@ -29689,7 +29723,7 @@ static unsigned char xml_res_file_9[] = { 60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, 76,105,115,116,66,111,120,34,32,110,97,109,101,61,34,73,68,67,95,76,73, -83,84,95,86,65,82,73,78,95,88,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +83,84,95,86,65,82,73,78,95,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,60,99,111,110,116,101,110,116,47,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,57,48,44, 49,48,55,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32, @@ -29709,7 +29743,7 @@ static unsigned char xml_res_file_9[] = { 83,105,122,101,114,34,32,110,97,109,101,61,34,119,120,73,68,95,65,78,89, 34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, 116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,89, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,90, 32,86,97,114,105,97,98,108,101,60,47,108,97,98,101,108,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, 115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, @@ -29719,7 +29753,7 @@ static unsigned char xml_res_file_9[] = { 32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, 116,32,99,108,97,115,115,61,34,119,120,76,105,115,116,66,111,120,34,32, -110,97,109,101,61,34,73,68,67,95,76,73,83,84,95,86,65,82,73,78,95,89,34, +110,97,109,101,61,34,73,68,67,95,76,73,83,84,95,86,65,82,73,78,95,90,34, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,110, 116,101,110,116,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,60,115,105,122,101,62,57,48,44,49,48,55,100,60,47,115,105,122,101, @@ -29729,492 +29763,462 @@ static unsigned char xml_res_file_9[] = { 106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, 98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, 106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, -71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76, -76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,83,116,97,116,105,99,66,111,120,83,105,122,101,114,34,32,110, -97,109,101,61,34,119,120,73,68,95,65,78,89,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84, -73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,108,97,98,101,108,62,90,32,86,97,114,105,97,98,108, -101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, -95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,76,105,115,116,66,111,120,34,32,110,97,109,101,61,34, -73,68,67,95,76,73,83,84,95,86,65,82,73,78,95,90,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,110,116,101,110,116,47, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,57,48,44,49,48,55,100,60,47,115,105,122,101,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119, -120,76,66,95,83,73,78,71,76,69,60,47,115,116,121,108,101,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, -67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101, -114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, -105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101, -110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101, -110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, -71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76, -76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73, -68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,79,75,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, +99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60, 111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67, -65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110, -97,109,101,61,34,119,120,73,68,95,67,65,78,67,69,76,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,108,111,115,101, -60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,80,97, -110,101,108,34,32,110,97,109,101,61,34,73,68,68,95,51,68,67,79,78,84,82, -79,76,34,32,115,117,98,99,108,97,115,115,61,34,67,51,68,67,111,110,116, -114,111,108,80,97,110,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10, -32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73, -67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,60,111,98, +116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124, +119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60, +98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, +60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60, +47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, 106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, -73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47,102,108,97,103,62,10, -32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, -100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,83,116,97,116,105,99,66,111,120,83,105,122, -101,114,34,32,110,97,109,101,61,34,119,120,73,68,95,65,78,89,34,62,10,32, -32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69, -82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32, -32,32,32,32,60,108,97,98,101,108,62,86,105,101,119,60,47,108,97,98,101, -108,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, -78,95,76,69,70,84,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, -111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66, -111,120,34,32,110,97,109,101,61,34,73,68,67,95,68,65,84,65,80,79,73,78, -84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108, -101,62,119,120,67,72,75,95,50,83,84,65,84,69,60,47,115,116,121,108,101, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, -68,97,116,97,32,80,111,105,110,116,60,47,108,97,98,101,108,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,49, -60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, +120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, +119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61, +34,119,120,73,68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,108,97,98,101,108,62,79,75,60,47,108,97,98,101,108,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86, +69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111, +110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,65,78,67,69,76,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67, +108,111,115,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,80,97,110,101,108,34,32,110,97,109,101,61,34,73,68,68,95,51,68, +67,79,78,84,82,79,76,34,32,115,117,98,99,108,97,115,115,61,34,67,51,68, +67,111,110,116,114,111,108,80,97,110,34,62,10,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101, +114,34,62,10,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86, +69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,66,111, +120,83,105,122,101,114,34,32,110,97,109,101,61,34,119,120,73,68,95,65,78, +89,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62, +119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32, +32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,86,105,101,119,60,47, +108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, 65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47,102,108,97,103, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62, 53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101, -99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,67,95,84,79,88,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62, -119,120,67,72,75,95,50,83,84,65,84,69,60,47,115,116,121,108,101,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,80,114,111, -106,101,99,116,32,116,111,32,90,45,89,60,47,108,97,98,101,108,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62, -48,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104, -101,99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,67,95,84,79,89,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, -62,119,120,67,72,75,95,50,83,84,65,84,69,60,47,115,116,121,108,101,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,80,114, -111,106,101,99,116,32,116,111,32,88,45,90,60,47,108,97,98,101,108,62,10, +99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,67,95,68,65,84,65,80, +79,73,78,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116, +121,108,101,62,119,120,67,72,75,95,50,83,84,65,84,69,60,47,115,116,121, +108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,68,97,116,97,32,80,111,105,110,116,60,47,108,97,98,101,108,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100, -62,48,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32, +62,49,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, 60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, 98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, 101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, -84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66,111,120,34, -32,110,97,109,101,61,34,73,68,67,95,84,79,90,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,67,72,75,95,50, -83,84,65,84,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,108,97,98,101,108,62,80,114,111,106,101,99,116,32, -116,111,32,88,45,89,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,48,60,47,99,104,101, -99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47,102,108,97,103,62, -10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, -114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110, -97,109,101,61,34,73,68,67,95,83,69,76,69,67,84,34,62,10,32,32,32,32,32, -32,32,32,32,32,60,115,116,121,108,101,62,119,120,67,72,75,95,50,83,84,65, -84,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,60, -108,97,98,101,108,62,83,101,108,101,99,116,44,32,104,111,108,100,32,67, -84,82,76,32,102,111,114,32,98,114,117,115,104,105,110,103,60,47,108,97, -98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101, -100,62,48,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, -95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47, -98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100, -83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,99,111,108, -115,62,50,60,47,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,60,114, -111,119,115,62,54,60,47,114,111,119,115,62,10,32,32,32,32,32,32,32,32,32, -32,60,118,103,97,112,62,48,60,47,118,103,97,112,62,10,32,32,32,32,32,32, -32,32,32,32,60,104,103,97,112,62,48,60,47,104,103,97,112,62,10,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124, -119,120,65,76,73,71,78,95,84,79,80,124,119,120,65,76,76,124,119,120,65, -68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, -111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, -84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,51,68,95,83,84,65,84, -73,67,84,69,88,84,95,88,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,108,97,98,101,108,62,88,60,47,108,97,98,101,108,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99, -101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, -84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, -73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, -100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, -62,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, -84,65,76,124,119,120,65,76,73,71,78,95,84,79,80,124,119,120,65,76,76,60, -47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,108,105,100,101,114,34,32,110,97,109,101,61,34,73,68,67,95,83,76, -88,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, -101,62,53,54,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,83,76,95,72,79, -82,73,90,79,78,84,65,76,60,47,115,116,121,108,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,48,60,47,118,97,108, -117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,109,105,110, -62,48,60,47,109,105,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,109,97,120,62,49,48,48,60,47,109,97,120,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, -84,65,76,124,119,120,65,76,73,71,78,95,84,79,80,124,119,120,65,76,76,60, -47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,108,105,100,101,114,34,32,110,97,109,101,61,34,73,68,67,95,83,76, -88,83,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, -101,62,53,54,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,83,76,95,72,79, -82,73,90,79,78,84,65,76,60,47,115,116,121,108,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,48,60,47,118,97,108, -117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,109,105,110, -62,48,60,47,109,105,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,109,97,120,62,49,48,48,60,47,109,97,120,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,73,71,78,95, -67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,124,119, -120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60, -47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, -105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,51,68,95,83,84, -65,84,73,67,84,69,88,84,95,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,108,97,98,101,108,62,89,60,47,108,97,98,101,108,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112, -97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79, -78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82, -84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, -114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, -101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79, -78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82, -84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, -114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,108,105,100,101,114,34, -32,110,97,109,101,61,34,73,68,67,95,83,76,89,80,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,54,44,45,49,100,60, -47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, -116,121,108,101,62,119,120,83,76,95,72,79,82,73,90,79,78,84,65,76,60,47, -115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -118,97,108,117,101,62,48,60,47,118,97,108,117,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,109,105,110,62,48,60,47,109,105,110,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,109,97,120,62,49,48,48,60, -47,109,97,120,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, -78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65, -76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120, -65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,83,108,105,100,101,114,34,32,110,97,109,101,61,34,73, -68,67,95,83,76,89,83,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,115,105,122,101,62,53,54,44,45,49,100,60,47,115,105,122,101,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120, -83,76,95,72,79,82,73,90,79,78,84,65,76,60,47,115,116,121,108,101,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,48,60, -47,118,97,108,117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -109,105,110,62,48,60,47,109,105,110,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,109,97,120,62,49,48,48,60,47,109,97,120,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,73, -71,78,95,66,79,84,84,79,77,124,119,120,65,76,76,124,119,120,65,68,74,85, -83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, -116,34,32,110,97,109,101,61,34,73,68,95,51,68,95,83,84,65,84,73,67,84,69, -88,84,95,90,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,90,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, -119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,53,100, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, -120,65,76,73,71,78,95,66,79,84,84,79,77,124,119,120,65,76,76,60,47,102, +62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47,102, 108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100, 101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -83,108,105,100,101,114,34,32,110,97,109,101,61,34,73,68,67,95,83,76,90, -80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, -62,53,54,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,83,76,95,72,79,82, -73,90,79,78,84,65,76,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,48,60,47,118,97,108,117, -101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,109,105,110,62,48, -60,47,109,105,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,109, -97,120,62,49,48,48,60,47,109,97,120,62,10,32,32,32,32,32,32,32,32,32,32, +67,104,101,99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,67,95,84, +79,88,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121, +108,101,62,119,120,67,72,75,95,50,83,84,65,84,69,60,47,115,116,121,108, +101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108, +62,80,114,111,106,101,99,116,32,116,111,32,90,45,89,60,47,108,97,98,101, +108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107, +101,100,62,48,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, 32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76, -124,119,120,65,76,73,71,78,95,66,79,84,84,79,77,124,119,120,65,76,76,60, -47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, +116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, +103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47, +102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, 100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,108,105,100,101,114,34,32,110,97,109,101,61,34,73,68,67,95,83,76, -90,83,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, -101,62,53,54,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,83,76,95,72,79, -82,73,90,79,78,84,65,76,60,47,115,116,121,108,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,48,60,47,118,97,108, -117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,109,105,110, -62,48,60,47,109,105,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,109,97,120,62,49,48,48,60,47,109,97,120,62,10,32,32,32,32,32,32,32,32, +120,67,104,101,99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,67,95, +84,79,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116, +121,108,101,62,119,120,67,72,75,95,50,83,84,65,84,69,60,47,115,116,121, +108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,80,114,111,106,101,99,116,32,116,111,32,88,45,90,60,47,108,97,98, +101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99, +107,101,100,62,48,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, 32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73, +90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66, +111,120,34,32,110,97,109,101,61,34,73,68,67,95,84,79,90,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,67, +72,75,95,50,83,84,65,84,69,60,47,115,116,121,108,101,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,80,114,111,106,101, +99,116,32,116,111,32,88,45,89,60,47,108,97,98,101,108,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,48,60,47, +99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97, +103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47, +102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107, +66,111,120,34,32,110,97,109,101,61,34,73,68,67,95,83,69,76,69,67,84,34, +62,10,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,67, +72,75,95,50,83,84,65,84,69,60,47,115,116,121,108,101,62,10,32,32,32,32, +32,32,32,32,32,32,60,108,97,98,101,108,62,83,101,108,101,99,116,44,32,104, +111,108,100,32,67,84,82,76,32,102,111,114,32,98,114,117,115,104,105,110, +103,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,60,99,104, +101,99,107,101,100,62,48,60,47,99,104,101,99,107,101,100,62,10,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, 32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, +32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, +67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,70,108,101,120, +71,114,105,100,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, +60,99,111,108,115,62,50,60,47,99,111,108,115,62,10,32,32,32,32,32,32,32, +32,32,32,60,114,111,119,115,62,54,60,47,114,111,119,115,62,10,32,32,32, +32,32,32,32,32,32,32,60,118,103,97,112,62,48,60,47,118,103,97,112,62,10, +32,32,32,32,32,32,32,32,32,32,60,104,103,97,112,62,48,60,47,104,103,97, +112,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, 78,95,76,69,70,84,124,119,120,65,76,73,71,78,95,84,79,80,124,119,120,65, 76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62, -53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, -105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73, -67,84,69,88,84,50,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,90,111,111,109,32,58,32,112,114,101,115,115,32,114,105,103, -104,116,45,109,111,117,115,101,32,98,117,116,116,111,110,60,47,108,97,98, -101,108,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,68,105,97,108,111,103, -34,32,110,97,109,101,61,34,73,68,68,95,87,69,76,67,79,77,69,95,83,69,76, -69,67,84,73,79,78,95,83,84,89,76,69,34,32,115,117,98,99,108,97,115,115, -61,34,87,101,108,99,111,109,101,83,101,108,101,99,116,105,111,110,83,116, -121,108,101,68,108,103,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10, -32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73, -67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, -73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, -120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,52,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83, +116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,51, +68,95,83,84,65,84,73,67,84,69,88,84,95,88,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,108,97,98,101,108,62,88,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79, +82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82, +95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72, +79,82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,84,79,80,124,119, +120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,83,108,105,100,101,114,34,32,110,97,109,101,61,34, +73,68,67,95,83,76,88,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,115,105,122,101,62,53,54,44,45,49,100,60,47,115,105,122,101,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119, +120,83,76,95,72,79,82,73,90,79,78,84,65,76,60,47,115,116,121,108,101,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,48, +60,47,118,97,108,117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,109,105,110,62,48,60,47,109,105,110,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,109,97,120,62,49,48,48,60,47,109,97,120,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79, +82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,84,79,80,124,119, +120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,83,108,105,100,101,114,34,32,110,97,109,101,61,34, +73,68,67,95,83,76,88,83,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,115,105,122,101,62,53,54,44,45,49,100,60,47,115,105,122,101,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119, +120,83,76,95,72,79,82,73,90,79,78,84,65,76,60,47,115,116,121,108,101,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,48, +60,47,118,97,108,117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,109,105,110,62,48,60,47,109,105,110,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,109,97,120,62,49,48,48,60,47,109,97,120,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65, +76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120, +65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100, +101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32, -32,60,108,97,98,101,108,62,87,101,108,99,111,109,101,32,116,111,32,71,101, -111,68,97,32,49,46,56,46,49,54,60,47,108,97,98,101,108,62,10,32,32,32,32, -32,32,32,32,32,32,60,102,111,110,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,119,101,105,103,104,116,62,98,111,108,100,60,47,119,101,105,103, -104,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, -50,54,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,60,47,102, -111,110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,102,103,62,35,54,54, -54,54,54,54,60,47,102,103,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73, -90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, -32,32,32,32,32,32,60,98,111,114,100,101,114,62,48,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,80,108,101,97,115,101, -32,99,108,105,99,107,32,116,111,32,99,104,111,111,115,101,32,97,32,104, -105,103,104,108,105,103,104,116,105,110,103,32,115,116,121,108,101,32,105, -110,32,71,101,111,68,97,58,60,47,108,97,98,101,108,62,10,32,32,32,32,32, -32,32,32,32,32,60,102,111,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,60,115,105,122,101,62,49,54,60,47,115,105,122,101,62,10,32,32,32,32, -32,32,32,32,32,32,60,47,102,111,110,116,62,10,32,32,32,32,32,32,32,32,32, -32,60,102,103,62,35,54,54,54,54,54,54,60,47,102,103,62,10,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69, -78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,76,69,70,84,124, -119,120,82,73,71,72,84,124,119,120,66,79,84,84,79,77,60,47,102,108,97,103, -62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,50,53,60,47, -98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, -120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32, +83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95, +51,68,95,83,84,65,84,73,67,84,69,88,84,95,89,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,89,60,47,108,97,98,101, +108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, 32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78, +61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72, +79,82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69, +82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62, +53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, +95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78, 84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108, 97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, -114,62,53,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -83,116,97,116,105,99,66,105,116,109,97,112,34,32,110,97,109,101,61,34,73, -68,67,95,83,69,76,69,67,84,73,79,78,95,83,84,89,76,69,49,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66, -79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97, -65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,115,101,108, -115,116,121,108,101,49,46,112,110,103,60,47,98,105,116,109,97,112,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62, -71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36, -115,101,108,115,116,121,108,101,49,46,112,110,103,60,47,98,105,116,109, -97,112,50,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, -101,62,50,48,48,44,49,54,48,60,47,115,105,122,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83, +108,105,100,101,114,34,32,110,97,109,101,61,34,73,68,67,95,83,76,89,80, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, +53,54,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,83,76,95,72,79,82,73, +90,79,78,84,65,76,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,118,97,108,117,101,62,48,60,47,118,97,108,117,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,109,105,110,62,48,60, +47,109,105,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,109,97, +120,62,49,48,48,60,47,109,97,120,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124, +119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76, +124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,83,108,105,100,101,114,34,32,110,97,109,101, +61,34,73,68,67,95,83,76,89,83,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,115,105,122,101,62,53,54,44,45,49,100,60,47,115,105,122,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, +62,119,120,83,76,95,72,79,82,73,90,79,78,84,65,76,60,47,115,116,121,108, +101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101, +62,48,60,47,118,97,108,117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,109,105,110,62,48,60,47,109,105,110,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,109,97,120,62,49,48,48,60,47,109,97,120,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119, +120,65,76,73,71,78,95,66,79,84,84,79,77,124,119,120,65,76,76,124,119,120, +65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,51,68,95,83,84,65, +84,73,67,84,69,88,84,95,90,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,108,97,98,101,108,62,90,60,47,108,97,98,101,108,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97, +99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, +84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, 73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,48,60,47,98,111, -114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,66,105, -116,109,97,112,34,32,110,97,109,101,61,34,73,68,67,95,83,69,76,69,67,84, -73,79,78,95,83,84,89,76,69,50,34,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78, -69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,115,101,108,115,116,121,108,101,50,46,112, -110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101, -115,111,117,114,99,101,115,46,99,112,112,36,115,101,108,115,116,121,108, -101,50,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,50,48,48,44,49,54,48, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, +62,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, +84,65,76,124,119,120,65,76,73,71,78,95,66,79,84,84,79,77,124,119,120,65, +76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,83,108,105,100,101,114,34,32,110,97,109,101,61,34,73,68,67, +95,83,76,90,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, +105,122,101,62,53,54,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,83,76, +95,72,79,82,73,90,79,78,84,65,76,60,47,115,116,121,108,101,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,48,60,47,118, +97,108,117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,109,105, +110,62,48,60,47,109,105,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,109,97,120,62,49,48,48,60,47,109,97,120,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, +116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, +103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79, +78,84,65,76,124,119,120,65,76,73,71,78,95,66,79,84,84,79,77,124,119,120, +65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,83,108,105,100,101,114,34,32,110,97,109,101,61,34,73, +68,67,95,83,76,90,83,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,115,105,122,101,62,53,54,44,45,49,100,60,47,115,105,122,101,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120, +83,76,95,72,79,82,73,90,79,78,84,65,76,60,47,115,116,121,108,101,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,48,60, +47,118,97,108,117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +109,105,110,62,48,60,47,109,105,110,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,109,97,120,62,49,48,48,60,47,109,97,120,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,73,71,78,95,76,69,70,84,124,119,120,65,76,73,71,78,95,84,79,80,124,119, +120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47, +102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97, +116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65, +84,73,67,84,69,88,84,50,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +108,97,98,101,108,62,90,111,111,109,32,58,32,112,114,101,115,115,32,114, +105,103,104,116,45,109,111,117,115,101,32,98,117,116,116,111,110,60,47, +108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,68,105,97, +108,111,103,34,32,110,97,109,101,61,34,73,68,68,95,87,69,76,67,79,77,69, +95,83,69,76,69,67,84,73,79,78,95,83,84,89,76,69,34,32,115,117,98,99,108, +97,115,115,61,34,87,101,108,99,111,109,101,83,101,108,101,99,116,105,111, +110,83,116,121,108,101,68,108,103,34,62,10,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114, +34,62,10,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69, +82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, 105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,73,71,78,95,76,69,70,84,124,119,120,76,69,70,84,124,119,120,82, -73,71,72,84,124,119,120,66,79,84,84,79,77,60,47,102,108,97,103,62,10,32, -32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,48,60,47,98,111,114, -100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32, -32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79, -82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69, -78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76, +124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, +60,98,111,114,100,101,114,62,52,48,60,47,98,111,114,100,101,114,62,10,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32, +32,32,32,32,60,108,97,98,101,108,62,87,101,108,99,111,109,101,32,116,111, +32,71,101,111,68,97,32,49,46,56,46,49,54,60,47,108,97,98,101,108,62,10, +32,32,32,32,32,32,32,32,32,32,60,102,111,110,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,60,119,101,105,103,104,116,62,98,111,108,100,60,47,119, +101,105,103,104,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, +122,101,62,50,54,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32, +32,60,47,102,111,110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,102,103, +62,35,54,54,54,54,54,54,60,47,102,103,62,10,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95, +72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103, +62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,48,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, +116,34,62,10,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,80,108, +101,97,115,101,32,99,108,105,99,107,32,116,111,32,99,104,111,111,115,101, +32,97,32,104,105,103,104,108,105,103,104,116,105,110,103,32,115,116,121, +108,101,32,105,110,32,71,101,111,68,97,58,60,47,108,97,98,101,108,62,10, +32,32,32,32,32,32,32,32,32,32,60,102,111,110,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,60,115,105,122,101,62,49,54,60,47,115,105,122,101,62, +10,32,32,32,32,32,32,32,32,32,32,60,47,102,111,110,116,62,10,32,32,32,32, +32,32,32,32,32,32,60,102,103,62,35,54,54,54,54,54,54,60,47,102,103,62,10, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, +78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,76, +69,70,84,124,119,120,82,73,71,72,84,124,119,120,66,79,84,84,79,77,60,47, +102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,50,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, +105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101, +110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101, +110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, 99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, 71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76, -76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107, -66,111,120,34,32,110,97,109,101,61,34,73,68,95,65,85,84,79,95,76,65,66, -69,76,83,95,67,66,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -99,104,101,99,107,101,100,62,49,60,47,99,104,101,99,107,101,100,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, -95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,111,110, +76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98, +111,114,100,101,114,62,53,48,60,47,98,111,114,100,101,114,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,83,116,97,116,105,99,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,73,68,67,95,83,69,76,69,67,84,73,79,78,95,83,84,89,76,69,49,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, +62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62, +71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36, +48,48,48,45,115,101,108,115,116,121,108,101,49,46,112,110,103,60,47,98, +105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, +105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,115,101,108,115,116,121,108,101,49, +46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,115,105,122,101,62,50,48,48,44,49,54,48,60,47,115, +105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, +78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, +114,100,101,114,62,53,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,83,116,97,116,105,99,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,73,68,67,95,83,69,76,69,67,84,73,79,78,95,83,84,89,76,69,50,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, +62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62, +71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36, +48,48,48,45,115,101,108,115,116,121,108,101,50,46,112,110,103,60,47,98, +105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, +105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,115,101,108,115,116,121,108,101,50, +46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,115,105,122,101,62,50,48,48,44,49,54,48,60,47,115, +105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,73,71,78,95,76,69,70,84,124,119,120,76,69,70,84,124,119,120,82,73,71, +72,84,124,119,120,66,79,84,84,79,77,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,51,48,60,47,98,111,114,100, +101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, +32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73, +90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, +69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, +78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66, +111,120,34,32,110,97,109,101,61,34,73,68,95,65,85,84,79,95,76,65,66,69, +76,83,95,67,66,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99, +104,101,99,107,101,100,62,49,60,47,99,104,101,99,107,101,100,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86, +69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,111,110, 39,116,32,115,104,111,119,32,116,104,105,115,32,100,105,97,108,111,103, 32,97,103,97,105,110,32,40,89,111,117,32,99,97,110,32,97,108,119,97,121, 115,32,99,104,97,110,103,101,32,116,104,105,115,32,115,101,116,116,105, @@ -30331,217 +30335,251 @@ static unsigned char xml_res_file_9[] = { 62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101, -115,111,117,114,99,101,115,46,99,112,112,36,111,112,101,110,45,102,111, -108,100,101,114,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61, -34,73,68,67,95,83,84,65,84,73,67,95,69,77,80,84,89,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,108,97,98,101,108,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120, -65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119, -120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, -114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,111,112,101,110, +45,102,111,108,100,101,114,46,112,110,103,60,47,98,105,116,109,97,112,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110, +97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,95,69,77,80,84,89,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,108,97,98,101,108,47,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69, +70,84,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73, +67,65,76,124,119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78, +83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, +73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, +120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, +119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,49,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, -69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,67, -69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,49,53,60,47,98,111, -114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,83,116,97,116,105,99,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,73,68,67,95,68,82,65,71,95,68,82,79,80,95,66,79,88,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78, -69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112, -62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112, -36,100,114,97,103,100,114,111,112,46,112,110,103,60,47,98,105,116,109,97, -112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112, -82,101,115,111,117,114,99,101,115,46,99,112,112,36,100,114,97,103,100,114, -111,112,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,48,44,52,48,60,47,115, -105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10, +99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,66,105,116, +109,97,112,34,32,110,97,109,101,61,34,73,68,67,95,68,82,65,71,95,68,82, +79,80,95,66,79,88,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120, +66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,115,105,122,101,62,52,44,49,48,60,47,115,105,122,101, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, -105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97, -116,97,32,83,111,117,114,99,101,32,79,118,101,114,118,105,101,119,47,72, -101,108,112,58,32,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, +32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, +114,99,101,115,46,99,112,112,36,48,48,48,45,100,114,97,103,100,114,111, +112,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, +105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,100,114,97,103,100,114,111,112,46, +112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,72,121,112,101,114,108,105,110,107,67,116,114, -108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,117,114,108,62,104,116,116,112,58,47,47,103, -101,111,100,97,99,101,110,116,101,114,46,103,105,116,104,117,98,46,105, -111,47,102,111,114,109,97,116,115,46,104,116,109,108,60,47,117,114,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,108,97,98,101,108,47,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,108,97,98,101,108,62,70,105,108,101,60,47,108,97,98, -101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,110,111,116,101,98,111,111,107,112, -97,103,101,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,80,97,110,101, -108,34,32,110,97,109,101,61,34,100,115,68,97,116,97,98,97,115,101,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101, -114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111, -114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, 112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,115,105,122,101,62,48,44,49,48,60,47,115,105,122, +32,32,32,32,32,32,32,60,115,105,122,101,62,48,44,52,48,60,47,115,105,122, 101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, 47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, 105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,83,105,122,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110, -97,109,101,61,34,73,68,95,83,84,65,84,73,67,84,69,88,84,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115,101,32,84,121,112, -101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10, +97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, +32,32,60,115,105,122,101,62,52,44,49,48,60,47,115,105,122,101,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, +120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,32,83, +111,117,114,99,101,32,79,118,101,114,118,105,101,119,47,72,101,108,112, +58,32,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, +72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,111,105,99, -101,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,84,89,80, -69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,52,48,44,45,49,60,47,115, -105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,99,111,110,116,101,110,116,47,62,10,32, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,72,121,112,101,114,108,105,110,107,67,116,114,108,34,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32, +32,32,32,60,117,114,108,62,104,116,116,112,58,47,47,103,101,111,100,97, +99,101,110,116,101,114,46,103,105,116,104,117,98,46,105,111,47,102,111, +114,109,97,116,115,46,104,116,109,108,60,47,117,114,108,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79, -82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, +101,108,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +108,97,98,101,108,62,70,105,108,101,60,47,108,97,98,101,108,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,110,111,116,101,98,111,111,107,112,97,103,101,34,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116, -34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32, +32,99,108,97,115,115,61,34,119,120,80,97,110,101,108,34,32,110,97,109,101, +61,34,100,115,68,97,116,97,98,97,115,101,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, +116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, +105,122,101,62,48,44,49,48,60,47,115,105,122,101,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,70,108, +101,120,71,114,105,100,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83, +116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83, +84,65,84,73,67,84,69,88,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, +68,97,116,97,98,97,115,101,32,84,121,112,101,60,47,108,97,98,101,108,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61, +34,73,68,67,95,67,68,83,95,68,66,95,84,89,80,69,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +115,105,122,101,62,51,52,48,44,45,49,60,47,115,105,122,101,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,99,111,110,116,101,110,116,47,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97, +116,105,99,84,101,120,116,34,47,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60, +47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68, +67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68, +97,116,97,98,97,115,101,32,72,111,115,116,60,47,108,97,98,101,108,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115,101,32,72,111,115, -116,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109,101,61, +34,73,68,67,95,67,68,83,95,68,66,95,72,79,83,84,34,32,115,117,98,99,108, +97,115,115,61,34,65,117,116,111,84,101,120,116,67,116,114,108,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,115,105,122,101,62,49,55,48,44,45,49,100,60,47,115,105,122, +101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, 115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67, -116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95, -72,79,83,84,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84, -101,120,116,67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49, -55,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73, +67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115, +101,32,80,111,114,116,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, 116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83, -116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110, -97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84, +101,120,116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,67,68, +83,95,68,66,95,80,79,82,84,34,32,115,117,98,99,108,97,115,115,61,34,65, +117,116,111,84,101,120,116,67,116,114,108,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, +122,101,62,49,55,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,118,97,108,117,101,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -108,97,98,101,108,62,68,97,116,97,98,97,115,101,32,80,111,114,116,60,47, -108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, +120,116,34,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,108, -34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,80,79,82,84, -34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84,101,120,116, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67, +95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97, +116,97,98,97,115,101,47,73,110,115,116,97,110,99,101,32,78,97,109,101,60, +47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114, +108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,78,65,77, +69,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84,101,120,116, 67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44,45, 49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, @@ -30562,161 +30600,127 @@ static unsigned char xml_res_file_9[] = { 98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, 99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73, 67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115, -101,47,73,110,115,116,97,110,99,101,32,78,97,109,101,60,47,108,97,98,101, -108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100, -101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109, -101,61,34,73,68,67,95,67,68,83,95,68,66,95,78,65,77,69,34,32,115,117,98, -99,108,97,115,115,61,34,65,117,116,111,84,101,120,116,67,116,114,108,34, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,85,115,101,114,32,110,97, +109,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44,45,49,100,60,47,115, -105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,47,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116, +67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66, +95,85,78,65,77,69,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111, +84,101,120,116,67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, +49,55,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97, +108,117,101,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, +116,34,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116, +97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83, +84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,80,97,115,115, +119,111,114,100,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, 99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, -122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32, -110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,108,97,98,101,108,62,85,115,101,114,32,110,97,109,101,60,47,108,97,98, -101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120, +116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68, +66,95,85,80,87,68,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44, +45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101, +47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,80,65,83, +83,87,79,82,68,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32, -110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,85,78,65,77,69,34, -32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84,101,120,116,67, -116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44,45,49, -100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,47,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83, +116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, 114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, -99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73, -67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,80,97,115,115,119,111,114, -100,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67, -116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95, -85,80,87,68,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44,45,49, -100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,47,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,80,65,83,83,87, -79,82,68,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32, +97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110, +97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,95,68,66,95,84,65,66,76, +69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,84,97,98,108,101,32,78, +97,109,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, 116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, 108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, -105,99,84,101,120,116,34,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120, +116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68, +66,95,84,65,66,76,69,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116, +111,84,101,120,116,67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, +62,49,55,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,101, +110,97,98,108,101,100,62,48,60,47,101,110,97,98,108,101,100,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, 98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, 101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61, -34,73,68,67,95,83,84,65,84,73,67,95,68,66,95,84,65,66,76,69,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,108,97,98,101,108,62,84,97,98,108,101,32,78,97,109,101,60,47, -108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,108, -34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,84,65,66,76, -69,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84,101,120,116, -67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44,45, -49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,101,110,97,98,108,101, -100,62,48,60,47,101,110,97,98,108,101,100,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -105,116,109,97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73, -68,95,66,84,78,95,76,79,79,75,85,80,95,84,65,66,76,69,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,98,105,116,109,97,112,32,115,116,111,99,107,95,105,100,61,34,119, -120,65,82,84,95,70,73,78,68,34,47,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, -62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62, +34,119,120,66,105,116,109,97,112,66,117,116,116,111,110,34,32,110,97,109, +101,61,34,73,68,95,66,84,78,95,76,79,79,75,85,80,95,84,65,66,76,69,34,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,47,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,108,115,62,51,60,47,99,111, -108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,114,111,119,115,62,56,60,47,114,111,119,115,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -118,103,97,112,62,49,53,60,47,118,103,97,112,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,104,103,97,112,62, -49,48,60,47,104,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,76,69,70,84,124,119,120,65,76,76,124,119,120,65,76,73,71,78, -95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,105,116,109,97,112,32,115,116,111,99,107,95,105,100, +61,34,119,120,65,82,84,95,70,73,78,68,34,47,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116, +121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121, +108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,98,97, -115,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,110,111, -116,101,98,111,111,107,112,97,103,101,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,80,97,110,101,108,34,32,110,97,109,101,61,34,100,115,87,101, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,108,115,62,51, +60,47,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,114,111,119,115,62,56,60,47,114,111,119,115, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,118,103,97,112,62,49,53,60,47,118,103,97,112,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,104,103, +97,112,62,49,48,60,47,104,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,76,69,70,84,124,119,120,65,76,76,124,119,120,65,76,73, +71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,98, +97,115,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,110, +111,116,101,98,111,111,107,112,97,103,101,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,80,97,110,101,108,34,32,110,97,109,101,61,34,100,115,87,101, 98,83,101,114,118,105,99,101,115,34,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, 34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, @@ -31186,337 +31190,337 @@ static unsigned char xml_res_file_9[] = { 79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109, 97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99, -112,112,36,111,112,101,110,45,102,111,108,100,101,114,46,112,110,103,60, -47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +112,112,36,48,48,48,45,111,112,101,110,45,102,111,108,100,101,114,46,112, +110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, +105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84, +73,67,95,69,77,80,84,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,47,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, +120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,73,71,78,95,67,69,78, +84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,124,119,120,65, +68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, +103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79, +78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82, +84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, -120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,95,69, -77,80,84,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,47,62,10,32,32,32, +98,111,114,100,101,114,62,49,53,60,47,98,111,114,100,101,114,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, +105,99,66,105,116,109,97,112,34,32,110,97,109,101,61,34,73,68,67,95,68, +82,65,71,95,68,82,79,80,95,66,79,88,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121, +108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108, +101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82, +101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,100,114,97, +103,100,114,111,112,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115, +111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,100,114,97,103,100, +114,111,112,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, 47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, -73,71,78,95,76,69,70,84,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82, -95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,124,119,120,65,68,74,85, -83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76, -124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65, -76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,49,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, -66,105,116,109,97,112,34,32,110,97,109,101,61,34,73,68,67,95,68,82,65,71, -95,68,82,79,80,95,66,79,88,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, -62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101, -115,111,117,114,99,101,115,46,99,112,112,36,100,114,97,103,100,114,111, -112,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99, -101,115,46,99,112,112,36,100,114,97,103,100,114,111,112,46,112,110,103, -60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,50,44,51,48,60,47,115, +105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114, 34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,115,105,122,101,62,50,44,51,48,60,47,115,105,122,101,62,10,32,32, +32,32,32,32,32,60,115,105,122,101,62,52,44,49,52,60,47,115,105,122,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, +105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97, +116,97,32,83,111,117,114,99,101,32,79,118,101,114,118,105,101,119,47,72, +101,108,112,58,32,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, +116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,72,121,112,101,114,108,105,110,107,67,116,114, +108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,117,114,108,62,104,116,116,112,58,47,47,103, +101,111,100,97,99,101,110,116,101,114,46,103,105,116,104,117,98,46,105, +111,47,102,111,114,109,97,116,115,46,104,116,109,108,60,47,117,114,108, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,108,97,98,101,108,47,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, 114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, 34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, +116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97, +99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,52,44,49,52,60,47,115, +105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -115,105,122,101,62,52,44,49,52,60,47,115,105,122,101,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, -116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,32,83,111, -117,114,99,101,32,79,118,101,114,118,105,101,119,47,72,101,108,112,58,32, -60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72, -79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,72,121,112,101,114,108,105,110,107,67,116,114,108,34,62,10,32,32,32, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83, +116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95, +67,68,83,95,69,78,67,79,68,73,78,71,95,76,65,66,69,76,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,117,114,108,62,104,116,116,112,58,47,47,103,101,111,100,97,99,101, -110,116,101,114,46,103,105,116,104,117,98,46,105,111,47,102,111,114,109, -97,116,115,46,104,116,109,108,60,47,117,114,108,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,60,108,97,98,101,108,62,83,101,108,101,99,116,32,101,110,99,111,100, +105,110,103,32,40,111,112,116,105,111,110,97,108,41,58,32,60,47,108,97, +98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, -122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73, -90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32, +32,99,108,97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109, +101,61,34,73,68,67,95,67,68,83,95,69,78,67,79,68,73,78,71,95,67,72,79,73, +67,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,54,48,44,45,49,60,47, +115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,99,111,110,116,101,110,116,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,115,105,122,101,62,52,44,49,52,60,47,115,105,122,101,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, -116,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,69,78,67,79,68,73, -78,71,95,76,65,66,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83, -101,108,101,99,116,32,101,110,99,111,100,105,110,103,32,40,111,112,116, -105,111,110,97,108,41,58,32,60,47,108,97,98,101,108,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,67,95,67,68, -83,95,69,78,67,79,68,73,78,71,95,67,72,79,73,67,69,34,62,10,32,32,32,32, +32,32,32,32,32,60,105,116,101,109,47,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116, +101,109,62,85,110,105,99,111,100,101,32,40,85,84,70,45,56,41,60,47,105, +116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,85,110,105,99, +111,100,101,32,40,85,84,70,45,49,54,76,69,41,60,47,105,116,101,109,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,115,105,122,101,62,49,54,48,44,45,49,60,47,115,105,122,101,62,10,32, +32,32,32,32,32,32,60,105,116,101,109,62,65,114,97,98,105,99,32,40,87,105, +110,100,111,119,115,45,49,50,53,54,41,60,47,105,116,101,109,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,99,111,110,116,101,110,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116, -101,109,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,85,110,105,99, -111,100,101,32,40,85,84,70,45,56,41,60,47,105,116,101,109,62,10,32,32,32, +32,32,32,32,60,105,116,101,109,62,67,101,110,116,114,97,108,32,69,117,114, +111,112,101,97,110,32,76,97,116,105,110,45,50,32,40,73,83,79,45,56,56,53, +57,45,50,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101, +109,62,67,101,110,116,114,97,108,32,69,117,114,111,112,101,97,110,32,40, +87,105,110,100,111,119,115,45,49,50,53,48,41,60,47,105,116,101,109,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,105,116,101,109,62,85,110,105,99,111,100,101,32,40,85,84,70, -45,49,54,76,69,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116, -101,109,62,65,114,97,98,105,99,32,40,87,105,110,100,111,119,115,45,49,50, -53,54,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,105,116,101,109,62,67,101,110,116,114,97,108,32,69, +117,114,111,112,101,97,110,32,40,67,80,56,53,50,41,60,47,105,116,101,109, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,105,116,101,109,62,67,104,105,110,101,115,101, +32,83,105,109,112,108,105,102,105,101,100,32,40,71,66,50,51,49,50,41,60, +47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,67,104, +105,110,101,115,101,32,84,114,97,100,105,116,105,111,110,97,108,32,40,66, +105,103,53,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116, +101,109,62,67,121,114,105,108,108,105,99,32,40,73,83,79,45,56,56,53,57, +45,53,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109, -62,67,101,110,116,114,97,108,32,69,117,114,111,112,101,97,110,32,76,97, -116,105,110,45,50,32,40,73,83,79,45,56,56,53,57,45,50,41,60,47,105,116, -101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,67,101,110,116,114, -97,108,32,69,117,114,111,112,101,97,110,32,40,87,105,110,100,111,119,115, -45,49,50,53,48,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116, -101,109,62,67,101,110,116,114,97,108,32,69,117,114,111,112,101,97,110,32, -40,67,80,56,53,50,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105, -116,101,109,62,67,104,105,110,101,115,101,32,83,105,109,112,108,105,102, -105,101,100,32,40,71,66,50,51,49,50,41,60,47,105,116,101,109,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,105,116,101,109,62,67,104,105,110,101,115,101,32,84,114, -97,100,105,116,105,111,110,97,108,32,40,66,105,103,53,41,60,47,105,116, +62,67,121,114,105,108,108,105,99,32,40,75,79,73,56,45,82,41,60,47,105,116, 101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,67,121,114,105,108, -108,105,99,32,40,73,83,79,45,56,56,53,57,45,53,41,60,47,105,116,101,109, +108,105,99,32,40,87,105,110,100,111,119,115,45,49,50,53,49,41,60,47,105, +116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,67,121,114,105, +108,108,105,99,47,82,117,115,115,105,97,110,32,40,67,80,56,54,54,41,60, +47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,71,114, +101,101,107,32,40,73,83,79,45,56,56,53,57,45,55,41,60,47,105,116,101,109, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,105,116,101,109,62,67,121,114,105,108,108,105, -99,32,40,75,79,73,56,45,82,41,60,47,105,116,101,109,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,105,116,101,109,62,72,101,98,114,101,119,32, +40,73,83,79,45,56,56,53,57,45,56,45,49,41,60,47,105,116,101,109,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,105,116,101,109,62,67,121,114,105,108,108,105,99,32,40,87,105,110, -100,111,119,115,45,49,50,53,49,41,60,47,105,116,101,109,62,10,32,32,32, +32,32,32,32,32,60,105,116,101,109,62,72,101,98,114,101,119,32,40,87,105, +110,100,111,119,115,45,49,50,53,53,41,60,47,105,116,101,109,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,105,116,101,109,62,67,121,114,105,108,108,105,99,47,82,117, -115,115,105,97,110,32,40,67,80,56,54,54,41,60,47,105,116,101,109,62,10, +32,32,32,32,60,105,116,101,109,62,74,97,112,97,110,101,115,101,32,40,83, +104,105,102,116,95,74,73,83,41,60,47,105,116,101,109,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,105,116,101,109,62,71,114,101,101,107,32,40,73,83, -79,45,56,56,53,57,45,55,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,105,116,101,109,62,72,101,98,114,101,119,32,40,73,83,79,45,56,56,53, -57,45,56,45,49,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116, -101,109,62,72,101,98,114,101,119,32,40,87,105,110,100,111,119,115,45,49, -50,53,53,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,105,116,101,109,62,74,97,112,97,110,101,115,101,32,40,69,85,67, +45,74,80,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101, -109,62,74,97,112,97,110,101,115,101,32,40,83,104,105,102,116,95,74,73,83, -41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,74, -97,112,97,110,101,115,101,32,40,69,85,67,45,74,80,41,60,47,105,116,101, +109,62,75,111,114,101,97,110,32,40,69,85,67,45,75,82,41,60,47,105,116,101, 109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,75,111,114,101,97,110, -32,40,69,85,67,45,75,82,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,105,116,101,109,62,78,111,114,100,105,99,32,76,97,116,105,110,45,54, -32,40,73,83,79,45,56,56,53,57,45,49,48,41,60,47,105,116,101,109,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,105,116,101,109,62,83,111,117,116,104,32,69,117,114,111, -112,101,97,110,32,76,97,116,105,110,45,51,32,40,73,83,79,45,56,56,53,57, -45,51,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109, -62,84,117,114,107,105,115,104,32,76,97,116,105,110,45,53,32,40,73,83,79, -45,56,56,53,57,45,57,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -105,116,101,109,62,84,117,114,107,105,115,104,32,40,87,105,110,100,111, -119,115,45,49,50,53,52,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,105,116,101,109,62,86,105,101,116,110,97,109,101,115,101,32,40,87,105, -110,100,111,119,115,45,49,50,53,56,41,60,47,105,116,101,109,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,105,116,101,109,62,87,101,115,116,32,69,117,114,111,112, -101,97,110,32,76,97,116,105,110,45,49,32,40,73,83,79,45,56,56,53,57,45, -49,41,60,47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62, -87,101,115,116,32,69,117,114,111,112,101,97,110,32,76,97,116,105,110,45, -57,32,40,73,83,79,45,56,56,53,57,45,49,53,41,60,47,105,116,101,109,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,99,111,110,116,101,110,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,70,105,108,101,60,47, -108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,110,111,116,101,98,111, -111,107,112,97,103,101,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,80, -97,110,101,108,34,32,110,97,109,101,61,34,100,115,68,97,116,97,98,97,115, -101,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, -122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76, -60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,48,44,49,48,60,47,115, -105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,83,105,122, -101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116, -34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84,69,88,84,34,62, +32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,78,111,114,100,105,99, +32,76,97,116,105,110,45,54,32,40,73,83,79,45,56,56,53,57,45,49,48,41,60, +47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,83,111, +117,116,104,32,69,117,114,111,112,101,97,110,32,76,97,116,105,110,45,51, +32,40,73,83,79,45,56,56,53,57,45,51,41,60,47,105,116,101,109,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,105,116,101,109,62,84,117,114,107,105,115,104,32,76,97,116, +105,110,45,53,32,40,73,83,79,45,56,56,53,57,45,57,41,60,47,105,116,101, +109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,84,117,114,107,105,115, +104,32,40,87,105,110,100,111,119,115,45,49,50,53,52,41,60,47,105,116,101, +109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,86,105,101,116,110,97, +109,101,115,101,32,40,87,105,110,100,111,119,115,45,49,50,53,56,41,60,47, +105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,105,116,101,109,62,87,101,115, +116,32,69,117,114,111,112,101,97,110,32,76,97,116,105,110,45,49,32,40,73, +83,79,45,56,56,53,57,45,49,41,60,47,105,116,101,109,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,105,116,101,109,62,87,101,115,116,32,69,117,114,111,112,101,97,110, +32,76,97,116,105,110,45,57,32,40,73,83,79,45,56,56,53,57,45,49,53,41,60, +47,105,116,101,109,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,99,111,110,116,101,110,116,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115,101,32,84, -121,112,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, -114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,111, -105,99,101,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95, -84,89,80,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,52,48,44,45,49, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,110,116,101,110,116,47, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, -95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, -116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115,101,32,72,111,115, -116,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67, -116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95, -72,79,83,84,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84, -101,120,116,67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49, -55,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83, -116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108, +62,70,105,108,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +110,111,116,101,98,111,111,107,112,97,103,101,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,80,97,110,101,108,34,32,110,97,109,101,61,34,100,115, +68,97,116,97,98,97,115,101,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86, +69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,48, +44,49,48,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,70,108,101,120,71,114, +105,100,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110, -97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -108,97,98,101,108,62,68,97,116,97,98,97,115,101,32,80,111,114,116,60,47, -108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, +105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73, +67,84,69,88,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97, +98,97,115,101,32,84,121,112,101,60,47,108,97,98,101,108,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60, +47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,67,95, +67,68,83,95,68,66,95,84,89,80,69,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, +62,51,52,48,44,45,49,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,110, +116,101,110,116,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, 98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, 34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,108, -34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,80,79,82,84, -34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84,101,120,116, +99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, +116,34,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67, +69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, +105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84, +73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115, +101,32,72,111,115,116,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84, +101,120,116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,67,68, +83,95,68,66,95,72,79,83,84,34,32,115,117,98,99,108,97,115,115,61,34,65, +117,116,111,84,101,120,116,67,116,114,108,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, +122,101,62,49,55,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32, +110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,108,97,98,101,108,62,68,97,116,97,98,97,115,101,32,80,111,114,116,60, +47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114, +108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,80,79,82, +84,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84,101,120,116, 67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44,45, 49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, @@ -32265,112 +32269,206 @@ static unsigned char xml_res_file_9[] = { 32,110,97,109,101,61,34,73,68,67,95,79,80,69,78,95,73,65,83,67,34,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114, -99,101,115,46,99,112,112,36,111,112,101,110,45,102,111,108,100,101,114, -46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, -62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, -67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,73, -71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76, -76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, -100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,48,44,49,52,48,60,47, -115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +99,101,115,46,99,112,112,36,48,48,48,45,111,112,101,110,45,102,111,108, +100,101,114,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116, +121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121, +108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, +73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, +120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, +119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, +48,44,49,52,48,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,52,44,49,48,60,47,115, -105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, +52,44,49,48,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,32,83,111, +117,114,99,101,32,79,118,101,114,118,105,101,119,47,72,101,108,112,58,32, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111, +114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,72,121,112,101,114,108,105,110,107,67,116,114, +108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,117,114,108,62,104,116,116,112,58,47,47,103,101,111,100, +97,99,101,110,116,101,114,46,103,105,116,104,117,98,46,105,111,47,102,111, +114,109,97,116,115,46,104,116,109,108,60,47,117,114,108,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, 61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, 99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,108,97,98,101,108,62,68,97,116,97,32,83,111,117,114,99,101,32, -79,118,101,114,118,105,101,119,47,72,101,108,112,58,32,60,47,108,97,98, -101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,72,121,112,101,114,108,105,110,107,67,116,114,108,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,117,114, -108,62,104,116,116,112,58,47,47,103,101,111,100,97,99,101,110,116,101,114, -46,103,105,116,104,117,98,46,105,111,47,102,111,114,109,97,116,115,46,104, -116,109,108,60,47,117,114,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,108,97,98,101,108,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,108,97,98,101,108,62,70,105,108,101,60,47,108,97,98,101,108,62,10,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,110, +111,116,101,98,111,111,107,112,97,103,101,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,80,97,110,101,108,34,32,110,97,109,101,61,34,100,115,68,97,116,97,98, +97,115,101,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122, +101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105, +101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, +101,62,48,44,49,48,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,83,105,122,101, +114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, 105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,47, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,70,105, -108,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,110,111,116,101,98,111,111,107, -112,97,103,101,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,80,97,110,101,108,34,32,110, -97,109,101,61,34,100,115,68,97,116,97,98,97,115,101,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, -86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, +120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68, +95,83,84,65,84,73,67,84,69,88,84,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97, +116,97,98,97,115,101,32,84,121,112,101,60,47,108,97,98,101,108,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, +101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101, +61,34,73,68,67,95,67,68,83,95,68,66,95,84,89,80,69,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, +122,101,62,51,52,48,44,45,49,60,47,115,105,122,101,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,110, +116,101,110,116,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97, +116,105,99,84,101,120,116,34,47,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, +71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101, +61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68, +97,116,97,98,97,115,101,32,72,111,115,116,60,47,108,97,98,101,108,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,48,44,49,48,60,47,115, -105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114, +108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,72,79,83, +84,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84,101,120,116, +67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44,45,49,100,60, +47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,118,97,108,117,101,47,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101, +61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68, +97,116,97,98,97,115,101,32,80,111,114,116,60,47,108,97,98,101,108,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, 111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -70,108,101,120,71,114,105,100,83,105,122,101,114,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, -84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,84, -69,88,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115,101,32, -84,121,112,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114, +108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,80,79,82, +84,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84,101,120,116, +67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44,45,49,100,60, +47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,118,97,108,117,101,47,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, 116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,67,95,67,68, -83,95,68,66,95,84,89,80,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,52,48,44,45, -49,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,99,111,110,116,101,110,116,47,62,10,32, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101, +61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68, +97,116,97,98,97,115,101,32,78,97,109,101,47,73,110,115,116,97,110,99,101, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120, +116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68, +66,95,78,65,77,69,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111, +84,101,120,116,67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44, +45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,47,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, 98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, @@ -32379,108 +32477,43 @@ static unsigned char xml_res_file_9[] = { 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, 99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, 116,34,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82, -69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116, -97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83, -84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115, -101,32,72,111,115,116,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109, -101,61,34,73,68,67,95,67,68,83,95,68,66,95,72,79,83,84,34,32,115,117,98, -99,108,97,115,115,61,34,65,117,116,111,84,101,120,116,67,116,114,108,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,115,105,122,101,62,49,55,48,44,45,49,100,60,47,115,105,122,101, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,118,97,108,117,101,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32, +110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, +101,108,62,85,115,101,114,32,110,97,109,101,60,47,108,97,98,101,108,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114, +108,34,32,110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,85,78,65, +77,69,34,32,115,117,98,99,108,97,115,115,61,34,65,117,116,111,84,101,120, +116,67,116,114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44,45,49,100, +60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,47,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, 99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97, -116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84, -65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115,101, -32,80,111,114,116,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, -122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109,101,61, -34,73,68,67,95,67,68,83,95,68,66,95,80,79,82,84,34,32,115,117,98,99,108, -97,115,115,61,34,65,117,116,111,84,101,120,116,67,116,114,108,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,115,105,122,101,62,49,55,48,44,45,49,100,60,47,115,105,122,101,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,118,97,108,117,101,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97, -116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84, -65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,97,116,97,98,97,115,101, -32,78,97,109,101,47,73,110,115,116,97,110,99,101,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, -114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32, -110,97,109,101,61,34,73,68,67,95,67,68,83,95,68,66,95,78,65,77,69,34,32, -115,117,98,99,108,97,115,115,61,34,65,117,116,111,84,101,120,116,67,116, -114,108,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,115,105,122,101,62,49,55,48,44,45,49,100,60,47,115, -105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,118,97,108,117,101,47,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, -122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61, -34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,85,115, -101,114,32,110,97,109,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101, +61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,80, +97,115,115,119,111,114,100,60,47,108,97,98,101,108,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, 99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, @@ -32488,54 +32521,25 @@ static unsigned char xml_res_file_9[] = { 115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109, -101,61,34,73,68,67,95,67,68,83,95,68,66,95,85,78,65,77,69,34,32,115,117, -98,99,108,97,115,115,61,34,65,117,116,111,84,101,120,116,67,116,114,108, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,115,105,122,101,62,49,55,48,44,45,49,100,60,47,115,105,122, -101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,118,97,108,117,101,47,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68, -67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,80,97,115,115, -119,111,114,100,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32, +101,61,34,73,68,67,95,67,68,83,95,68,66,95,85,80,87,68,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, +122,101,62,49,55,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108, +117,101,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,80,65,83,83, +87,79,82,68,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, 106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, 101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109,101,61,34, -73,68,67,95,67,68,83,95,68,66,95,85,80,87,68,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, -62,49,55,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117, -101,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,80,65,83,83,87,79, -82,68,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,47,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, 120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68, 67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,84,97,98,108,101, @@ -32782,180 +32786,162 @@ static unsigned char xml_res_file_9[] = { 116,116,111,110,34,32,110,97,109,101,61,34,73,68,67,95,79,80,69,78,95,67, 82,83,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116, 109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, -99,112,112,36,111,112,101,110,45,99,114,115,46,112,110,103,60,47,98,105, -116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116, -121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121, -108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,116,111,111, -108,116,105,112,62,76,111,97,100,32,67,82,83,32,102,114,111,109,32,97,32, -100,97,116,97,32,115,111,117,114,99,101,60,47,116,111,111,108,116,105,112, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, -119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,73,71,78,95,76,69,70,84,124,119,120,76,69,70,84,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,49,53, -60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, -120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114, -105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114, -105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +99,112,112,36,48,48,48,45,111,112,101,110,45,99,114,115,46,112,110,103, +60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60, +47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,116,111,111,108,116,105,112,62,76,111,97,100,32,67,82,83,32,102,114, +111,109,32,97,32,100,97,116,97,32,115,111,117,114,99,101,60,47,116,111, +111,108,116,105,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90, +79,78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69, +82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,76,69,70, +84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100, +101,114,62,49,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, +32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84, +65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,70,108,101,120,71,114, +105,100,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,99,111,108,115,62,51,60,47,99,111,108,115,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,114,111,119,115,62,50,60,47,114,111,119,115, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,103,97,112,62,48, +60,47,118,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +104,103,97,112,62,48,60,47,104,103,97,112,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,67,104,101,99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,67,95, +67,82,69,65,84,69,95,80,82,79,74,69,67,84,95,70,73,76,69,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, +67,114,101,97,116,101,32,97,32,112,114,111,106,101,99,116,32,102,105,108, +101,63,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,48,60,47,99,104,101,99, +107,101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, +78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,84, +79,80,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114, +100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99, 116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,83,105,122,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,108,115,62, -51,60,47,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,114,111,119,115,62,50,60,47,114,111,119,115,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,118,103,97,112,62,48,60,47,118,103,97,112,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,104,103,97,112,62,48,60, -47,104,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107, -66,111,120,34,32,110,97,109,101,61,34,73,68,67,95,67,82,69,65,84,69,95, -80,82,79,74,69,67,84,95,70,73,76,69,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,114,101,97,116,101, -32,97,32,112,114,111,106,101,99,116,32,102,105,108,101,63,60,47,108,97, -98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,99,104,101,99,107,101,100,62,48,60,47,99,104,101,99,107,101,100,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, -69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,84,79,80,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60, -47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, -120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97, -109,101,61,34,119,120,73,68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,108,97,98,101,108,62,79,75,60,47,108,97,98,101,108,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, -73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65, -76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32, 32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, 122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116, -116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,65,78,67,69, -76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,62,67,97,110,99,101,108,60,47,108,97,98,101,108,62,10,32,32,32,32,32, +116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,79,75,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,79,75, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, +73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119, +120,73,68,95,67,65,78,67,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,108,97,98,101,108,62,67,97,110,99,101,108,60,47,108,97,98,101, +108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +71,82,79,87,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, +120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32, 32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,71,82,79,87,124,119,120, -65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79, -78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79, -78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,60,116,105,116,108,101,62,83,97,118,101,32,65,115,60,47,116,105,116, -108,101,62,10,32,32,32,32,60,99,101,110,116,101,114,101,100,62,49,60,47, -99,101,110,116,101,114,101,100,62,10,32,32,32,32,60,115,116,121,108,101, -62,119,120,67,65,80,84,73,79,78,124,119,120,83,89,83,84,69,77,95,77,69, -78,85,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108,101, -62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,68,105,97,108,111,103,34,32,110, -97,109,101,61,34,73,68,68,95,83,65,86,69,95,65,83,95,68,76,71,34,32,115, -117,98,99,108,97,115,115,61,34,83,97,118,101,65,115,68,108,103,34,62,10, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,60,111,114,105, -101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110, -116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,80,97,110, -101,108,34,32,110,97,109,101,61,34,100,115,70,105,108,101,34,62,10,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67, -65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99, -101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, -101,62,48,44,49,48,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,70,108,101, -120,71,114,105,100,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,99,111,108,115,62,53,60,47,99,111,108,115,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,114,111,119,115,62, -50,60,47,114,111,119,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,118,103,97,112,62,48,60,47,118,103,97,112,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,104,103,97,112,62,53,60,47,104,103, -97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, -62,53,44,48,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, +95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,60,116,105,116,108,101,62,83,97,118,101,32,65, +115,60,47,116,105,116,108,101,62,10,32,32,32,32,60,99,101,110,116,101,114, +101,100,62,49,60,47,99,101,110,116,101,114,101,100,62,10,32,32,32,32,60, +115,116,121,108,101,62,119,120,67,65,80,84,73,79,78,124,119,120,83,89,83, +84,69,77,95,77,69,78,85,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115, +116,121,108,101,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,68,105,97,108, +111,103,34,32,110,97,109,101,61,34,73,68,68,95,83,65,86,69,95,65,83,95, +68,76,71,34,32,115,117,98,99,108,97,115,115,61,34,83,97,118,101,65,115, +68,108,103,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, +32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47, +111,114,105,101,110,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +34,119,120,80,97,110,101,108,34,32,110,97,109,101,61,34,100,115,70,105, +108,101,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, +120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,115,105,122,101,62,48,44,49,48,60,47,115,105,122,101,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110,97,109,101,61, -34,73,68,95,83,69,76,95,80,82,74,95,67,72,69,67,75,66,79,88,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101, -99,107,101,100,62,48,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32, +115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,70,108,101,120,71,114,105,100,83,105,122,101,114,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,108,115,62,53,60, +47,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,114,111,119,115,62,50,60,47,114,111,119,115,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,118,103,97,112,62,48,60,47,118,103,97, +112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,104,103,97, +112,62,53,60,47,104,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112, +97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,115,105,122,101,62,53,44,48,60,47,115,105,122,101,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67, -65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66,111, +120,34,32,110,97,109,101,61,34,73,68,95,83,69,76,95,80,82,74,95,67,72,69, +67,75,66,79,88,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,99,104,101,99,107,101,100,62,48,60,47,99,104,101,99,107, +101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, +82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, +116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,78,101,119,32,112,114,111,106,101,99,116,32,102,105,108,101,58,60, +47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61, -34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,78,101,119,32,112, -114,111,106,101,99,116,32,102,105,108,101,58,60,47,108,97,98,101,108,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120, -65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119, -120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114, -108,34,32,110,97,109,101,61,34,73,68,67,95,70,73,69,76,68,95,65,83,67,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, -105,122,101,62,49,55,50,44,45,49,100,60,47,115,105,122,101,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108, -101,62,119,120,84,69,95,82,69,65,68,79,78,76,89,60,47,115,116,121,108,101, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95, -72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84, -69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,66,117,116,116, -111,110,34,32,110,97,109,101,61,34,73,68,67,95,79,80,69,78,95,73,65,83, -67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114, -99,101,115,46,99,112,112,36,115,97,118,101,46,112,110,103,60,47,98,105, -116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78, -69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, +76,69,70,84,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82, +84,73,67,65,76,124,119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77, +73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +84,101,120,116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,67,95,70, +73,69,76,68,95,65,83,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,115,105,122,101,62,49,55,50,44,45,49,100,60,47, +115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,82,69,65,68,79,78,76, +89,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, 71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120, @@ -32964,97 +32950,116 @@ static unsigned char xml_res_file_9[] = { 32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, 101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, 98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,53,44,48,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, +116,109,97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68, +67,95,79,80,69,78,95,73,65,83,67,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65, +112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45, +115,97,118,101,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, +62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72, +79,82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69, +82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, +100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,48,60,47,115, +105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +67,104,101,99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,95,83,69, +76,95,68,83,95,67,72,69,67,75,66,79,88,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,48, +60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, +73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116, +97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83, +84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,108,97,98,101,108,62,78,101,119,32,100,97,116,97,115,111, +117,114,99,101,58,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,73,71,78,95,67,69,78,84, +69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,124,119,120,65,68, +74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110,97, -109,101,61,34,73,68,95,83,69,76,95,68,83,95,67,72,69,67,75,66,79,88,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99, -104,101,99,107,101,100,62,48,60,47,99,104,101,99,107,101,100,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84, -73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109,101, +61,34,73,68,67,95,70,73,69,76,68,95,68,83,95,80,65,84,72,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, +62,49,55,50,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119, +120,84,69,95,82,69,65,68,79,78,76,89,60,47,115,116,121,108,101,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73, +90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86, +69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109, -101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,78,101,119, -32,100,97,116,97,115,111,117,114,99,101,58,60,47,108,97,98,101,108,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120, -65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119, -120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114, -108,34,32,110,97,109,101,61,34,73,68,67,95,70,73,69,76,68,95,68,83,95,80, -65,84,72,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,115,105,122,101,62,49,55,50,44,45,49,100,60,47,115,105,122,101, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, -116,121,108,101,62,119,120,84,69,95,82,69,65,68,79,78,76,89,60,47,115,116, -121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78, -84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95, +115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,66,117,116,116,111,110,34, +32,110,97,109,101,61,34,73,68,67,95,79,80,69,78,95,68,83,95,80,65,84,72, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,115,97,118,101,46,112,110,103,60,47, +98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78, +79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, +120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, +119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,48,44, +49,48,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101, +114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34, +119,120,73,68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,108,97,98,101,108,62,79,75,60,47,108,97,98,101,108,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, 67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,66, -117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,67,95,79,80,69,78, -95,68,83,95,80,65,84,72,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82, -101,115,111,117,114,99,101,115,46,99,112,112,36,115,97,118,101,46,112,110, -103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68, -69,82,95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, -119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84, -65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73, -67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, -60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, +100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, 32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97, -99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,48,44,49,48,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, -105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101, -61,34,119,120,73,68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,108,97,98,101,108,62,79,75,60,47,108,97,98,101,108,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, -78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, 114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, 98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111, 110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,65,78,67,69,76,34,62, @@ -33748,7 +33753,7 @@ static unsigned char xml_res_file_10[] = { 195,15,186,16,166,183,179,143,115,70,253,38,236,33,84,254,37,69,110,78, 113,195,20,26,21,90,52,110,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_11 = 92085; +static size_t xml_res_size_11 = 92125; static unsigned char xml_res_file_11[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,117,116,102,45,56,34,63,62,10,60,114,101, @@ -34380,81 +34385,81 @@ static unsigned char xml_res_file_11[] = { 122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, 83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,70,105,114,115,116,32, -114,111,119,32,111,102,32,67,83,86,32,102,105,108,101,60,47,108,97,98,101, -108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69, -82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,66,117,116,116,111,110,34, -32,110,97,109,101,61,34,73,68,95,70,73,82,83,84,95,82,79,87,95,67,83,86, -95,72,69,76,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69, -60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101, -115,111,117,114,99,101,115,46,99,112,112,36,56,112,120,95,104,101,108,112, -46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, -71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101, -110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101, -110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,66,79,84,84,79,77,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60, -47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, -122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116, -114,108,34,32,110,97,109,101,61,34,73,68,95,70,73,82,83,84,95,82,79,87, -95,67,83,86,95,84,88,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,115,105,122,101,62,51,48,48,44,45,49,100,60,47,115,105, -122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -115,116,121,108,101,62,119,120,84,69,95,65,85,84,79,95,83,67,82,79,76,76, -124,119,120,84,69,95,77,85,76,84,73,76,73,78,69,124,119,120,84,69,95,82, -69,65,68,79,78,76,89,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49, -60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,124,119,120, +32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,70,105,114,115,116,32, +114,111,119,32,111,102,32,67,83,86,32,102,105,108,101,60,47,108,97,98,101, +108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69, +82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,66,117,116,116,111,110,34, +32,110,97,109,101,61,34,73,68,95,70,73,82,83,84,95,82,79,87,95,67,83,86, +95,72,69,76,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69, +60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101, +115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,56,112,120,95,104, +101,108,112,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, 65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102, 108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, 106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114, 105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114, 105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116, -105,111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, +103,62,119,120,66,79,84,84,79,77,124,119,120,65,76,73,71,78,95,67,69,78, +84,69,82,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, +120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101, +120,116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,95,70,73,82,83, +84,95,82,79,87,95,67,83,86,95,84,88,84,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,48,48,44,45,49,100, +60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,65,85,84,79,95,83,67, +82,79,76,76,124,119,120,84,69,95,77,85,76,84,73,76,73,78,69,124,119,120, +84,69,95,82,69,65,68,79,78,76,89,60,47,115,116,121,108,101,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111, +110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,124, +119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60, +47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78, +68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110,97,109,101,61, -34,73,68,95,73,78,67,76,85,68,69,95,86,65,82,95,78,65,77,69,83,95,67,66, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,70,105,114,115,116,32,108,105,110,101,32,111,102,32,67,83, -86,32,105,115,32,118,97,114,105,97,98,108,101,32,110,97,109,101,115,63, -60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,99,104,101,99,107,101,100,62,49,60,47,99,104,101,99,107, +115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110,97,109, +101,61,34,73,68,95,73,78,67,76,85,68,69,95,86,65,82,95,78,65,77,69,83,95, +67,66,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +108,97,98,101,108,62,70,105,114,115,116,32,108,105,110,101,32,111,102,32, +67,83,86,32,105,115,32,118,97,114,105,97,98,108,101,32,110,97,109,101,115, +63,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,99,104,101,99,107,101,100,62,49,60,47,99,104,101,99,107, 101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, 98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, 111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, @@ -34471,424 +34476,343 @@ static unsigned char xml_res_file_11[] = { 60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47, 115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111, -117,114,99,101,115,46,99,112,112,36,56,112,120,95,104,101,108,112,46,112, -110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, -95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -84,79,80,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73, -90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,49,53,60,47,98,111,114,100,101,114, +117,114,99,101,115,46,99,112,112,36,48,48,48,45,56,112,120,95,104,101,108, +112,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105, +101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105, +101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,84,79,80,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95, +72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,49,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101, 62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69, +82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,111, +112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32, +32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,69,88, +80,65,78,68,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82, +73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, +60,98,111,114,100,101,114,62,49,53,60,47,98,111,114,100,101,114,62,10,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32, 32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95, +79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,67,111,110,116,105,110,117,101,60,47,108,97,98,101,108,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,82,73,71,72, +84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98, +111,114,100,101,114,62,49,48,60,47,98,111,114,100,101,114,62,10,32,32,32, 32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65, -76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,111,112,116,105,111, -110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,65,76,76,124,119,120,69,88,80,65,78,68,124,119, -120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101, -114,62,49,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116, -111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,79,75,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,111,110, -116,105,110,117,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,82,73,71,72,84,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,49,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32, -110,97,109,101,61,34,119,120,73,68,95,67,65,78,67,69,76,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,97,110,99, -101,108,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105, -101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105, -101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79,84,84,79, -77,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79, -78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,49,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,60,116,105,116,108,101,62,67,83,86,32,67,111,110, -116,97,105,110,115,32,86,97,114,105,97,98,108,101,32,78,97,109,101,115, -63,60,47,116,105,116,108,101,62,10,32,32,32,32,60,99,101,110,116,101,114, -101,100,62,49,60,47,99,101,110,116,101,114,101,100,62,10,32,32,32,32,60, -115,116,121,108,101,62,119,120,67,65,80,84,73,79,78,124,119,120,83,89,83, -84,69,77,95,77,69,78,85,124,119,120,82,69,83,73,90,69,95,66,79,82,68,69, -82,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108,101,62, -10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,68,105,97,108,111,103,34,32,110,97,109, -101,61,34,73,68,68,95,69,88,80,79,82,84,95,67,83,86,95,68,76,71,34,32,115, -117,98,99,108,97,115,115,61,34,69,120,112,111,114,116,67,115,118,68,108, -103,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32, -60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111, -114,105,101,110,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, -122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66, -111,120,34,32,110,97,109,101,61,34,73,68,95,73,78,67,76,85,68,69,95,86, -65,82,95,78,65,77,69,83,95,67,66,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,73,110,99,108,117,100,101, -32,86,97,114,105,97,98,108,101,32,78,97,109,101,115,60,47,108,97,98,101, -108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104, -101,99,107,101,100,62,49,60,47,99,104,101,99,107,101,100,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47, -115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,73,78,67, -76,85,68,69,95,86,65,82,95,78,65,77,69,83,95,72,69,76,80,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, -62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116, -109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, -99,112,112,36,56,112,120,95,104,101,108,112,46,112,110,103,60,47,98,105, -116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, -95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79, -82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,76,69,70,84,124,119,120, -82,73,71,72,84,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79, -82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,98,111,114,100,101,114,62,51,48,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, -86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62, -119,120,65,76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116, +116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,65,78,67,69, +76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,67,97,110,99,101,108,60,47,108,97,98,101,108,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76, +60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +66,79,84,84,79,77,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72, 79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,60,98,111,114,100,101,114,62,49,48,60,47,98,111,114,100,101,114,62, -10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,32,60,98,111,114,100,101,114,62,49,53,60,47,98,111,114,100,101,114,62, +10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,60,116,105,116,108,101,62,67,83, +86,32,67,111,110,116,97,105,110,115,32,86,97,114,105,97,98,108,101,32,78, +97,109,101,115,63,60,47,116,105,116,108,101,62,10,32,32,32,32,60,99,101, +110,116,101,114,101,100,62,49,60,47,99,101,110,116,101,114,101,100,62,10, +32,32,32,32,60,115,116,121,108,101,62,119,120,67,65,80,84,73,79,78,124, +119,120,83,89,83,84,69,77,95,77,69,78,85,124,119,120,82,69,83,73,90,69, +95,66,79,82,68,69,82,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116, +121,108,101,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,68,105,97,108,111, +103,34,32,110,97,109,101,61,34,73,68,68,95,69,88,80,79,82,84,95,67,83,86, +95,68,76,71,34,32,115,117,98,99,108,97,115,115,61,34,69,120,112,111,114, +116,67,115,118,68,108,103,34,62,10,32,32,32,32,60,111,98,106,101,99,116, 32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62, -10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73, -68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,79,75,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,82,73,71,72,84,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,49,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, +10,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84, +73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,60,111, 98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32, -110,97,109,101,61,34,119,120,73,68,95,67,65,78,67,69,76,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,97,110,99, -101,108,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105, -101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105, -101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79,84,84,79, -77,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79, -78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,49,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,60,116,105,116,108,101,62,83,97,118,101,32,84, -97,98,108,101,32,65,115,32,67,83,86,32,70,105,108,101,60,47,116,105,116, -108,101,62,10,32,32,32,32,60,99,101,110,116,101,114,101,100,62,49,60,47, -99,101,110,116,101,114,101,100,62,10,32,32,32,32,60,115,116,121,108,101, -62,119,120,67,65,80,84,73,79,78,124,119,120,83,89,83,84,69,77,95,77,69, -78,85,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108,101, -62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,68,105,97,108,111,103,34,32,110, -97,109,101,61,34,73,68,95,86,65,82,95,71,82,79,85,80,73,78,71,95,69,68, -73,84,79,82,34,32,115,117,98,99,108,97,115,115,61,34,86,97,114,71,114,111, -117,112,105,110,103,69,100,105,116,111,114,68,108,103,34,62,10,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120, -83,105,122,101,114,34,62,10,32,32,32,32,32,32,60,111,114,105,101,110,116, -62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, -122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, -120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,108,97,98,101,108,62,85,110,103,114,111,117,112,101,100, -32,86,97,114,105,97,98,108,101,115,60,47,108,97,98,101,108,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, -95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, -53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,66,117,116, -116,111,110,34,32,110,97,109,101,61,34,73,68,95,85,78,71,82,79,85,80,69, -68,95,86,65,82,83,95,72,69,76,80,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66, -79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116, -109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, -99,112,112,36,56,112,120,95,104,101,108,112,46,112,110,103,60,47,98,105, -116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, -78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76, -60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79,84,84,79,77,124, -119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84, -65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,50,60,47,98,111,114,100,101,114,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,76,105,115,116,67,116,114,108,34,32, -110,97,109,101,61,34,73,68,95,85,78,71,82,79,85,80,69,68,95,76,73,83,84, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,54,48,44,49,48,48,100,60,47,115,105,122,101,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119, -120,76,67,95,82,69,80,79,82,84,32,124,32,119,120,76,66,95,69,88,84,69,78, -68,69,68,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32, +101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +67,104,101,99,107,66,111,120,34,32,110,97,109,101,61,34,73,68,95,73,78, +67,76,85,68,69,95,86,65,82,95,78,65,77,69,83,95,67,66,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,73, +110,99,108,117,100,101,32,86,97,114,105,97,98,108,101,32,78,97,109,101, +115,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,99,104,101,99,107,101,100,62,49,60,47,99,104,101,99,107, +101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122, +101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,47,111,112, -116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,69,88,80,65,78,68,60,47,102,108,97,103,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116, -62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,51,51,60, -47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,69,88,80,65,78,68,60,47,102,108,97,103,62,10, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, 32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, 115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117, -116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,65,68,68,95,84,79,95, -76,73,83,84,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,103,116,59,60,47,108, -97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,115,116,121,108,101,62,119,120,66,85,95,69,88,65,67,84,70,73,84,60, -47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78, -84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,105,116,109,97,112,66,117,116,116,111,110,34,32,110,97,109,101, +61,34,73,68,95,73,78,67,76,85,68,69,95,86,65,82,95,78,65,77,69,83,95,72, +69,76,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47, +115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111, +117,114,99,101,115,46,99,112,112,36,48,48,48,45,56,112,120,95,104,101,108, +112,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61, -34,73,68,95,82,69,77,79,86,69,95,70,82,95,76,73,83,84,95,66,85,84,84,79, -78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108, -97,98,101,108,62,38,108,116,59,60,47,108,97,98,101,108,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119, -120,66,85,95,69,88,65,67,84,70,73,84,60,47,115,116,121,108,101,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, -84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47, -98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47, -111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84, -73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114, -105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105, +101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105, +101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,76,69,70,84,124,119,120,82,73,71,72,84,124,119,120,65,76,73, +71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,51,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, +111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114, 105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, -120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,108,97,98,101,108,62,78,101,119,32,71,114,111,117,112,32, -68,101,116,97,105,108,115,60,47,108,97,98,101,108,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84, -73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,53,100, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,66,117,116,116,111,110,34, -32,110,97,109,101,61,34,73,68,95,78,69,87,95,71,82,79,85,80,95,72,69,76, -80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69, -60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112, -112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,56,112,120,95,104, -101,108,112,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69, -82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47,115, +105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120, +65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60, +47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,49,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110, +34,32,110,97,109,101,61,34,119,120,73,68,95,79,75,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,79,75,60,47,108,97, +98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, +120,82,73,71,72,84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,98,111,114,100,101,114,62,49,48,60,47,98,111,114,100,101,114, +62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95, +67,65,78,67,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +108,97,98,101,108,62,67,97,110,99,101,108,60,47,108,97,98,101,108,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, 32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62, -119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90, +79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108, 97,103,62,119,120,66,79,84,84,79,77,124,119,120,65,76,73,71,78,95,67,69, 78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,49,53,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,116,105, +116,108,101,62,83,97,118,101,32,84,97,98,108,101,32,65,115,32,67,83,86, +32,70,105,108,101,60,47,116,105,116,108,101,62,10,32,32,32,32,60,99,101, +110,116,101,114,101,100,62,49,60,47,99,101,110,116,101,114,101,100,62,10, +32,32,32,32,60,115,116,121,108,101,62,119,120,67,65,80,84,73,79,78,124, +119,120,83,89,83,84,69,77,95,77,69,78,85,124,119,120,67,76,79,83,69,95, +66,79,88,60,47,115,116,121,108,101,62,10,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,68,105,97,108,111,103,34,32,110,97,109,101,61,34,73,68,95,86,65,82, +95,71,82,79,85,80,73,78,71,95,69,68,73,84,79,82,34,32,115,117,98,99,108, +97,115,115,61,34,86,97,114,71,114,111,117,112,105,110,103,69,100,105,116, +111,114,68,108,103,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32, +32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67, +65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, +120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, +120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,85,110,103,114,111,117,112,101,100,32,86,97,114,105,97,98,108,101, +115,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,105,116,109,97,112,66,117,116,116,111,110,34,32,110,97,109,101,61, +34,73,68,95,85,78,71,82,79,85,80,69,68,95,86,65,82,83,95,72,69,76,80,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,115,116,121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47, +115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82, +101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,56,112,120, +95,104,101,108,112,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, +95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, +116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,66,79,84,84,79,77,124,119,120,65,76,73,71,78, +95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, +100,101,114,62,50,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,76,105,115,116,67,116,114,108,34,32,110,97,109,101,61,34, +73,68,95,85,78,71,82,79,85,80,69,68,95,76,73,83,84,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,54,48,44, +49,48,48,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,76,67,95,82,69, +80,79,82,84,32,124,32,119,120,76,66,95,69,88,84,69,78,68,69,68,60,47,115, +116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, +119,120,69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69, +82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,112,116,105,111,110,62,51,51,60,47,111,112,116,105, +111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, +119,120,69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32, 32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, +122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110, +34,32,110,97,109,101,61,34,73,68,95,65,68,68,95,84,79,95,76,73,83,84,95, +66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,108,97,98,101,108,62,38,103,116,59,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116, +121,108,101,62,119,120,66,85,95,69,88,65,67,84,70,73,84,60,47,115,116,121, +108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72, +79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, 105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, +120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,82,69,77, +79,86,69,95,70,82,95,76,73,83,84,95,66,85,84,84,79,78,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,38, +108,116,59,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,85,95,69,88, +65,67,84,70,73,84,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, +73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, +120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101, +114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101, +110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, +72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, 34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,110,97,109,101,58,60,47,108,97,98,101,108,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,102,108,97,103,62,119,120,82,73,71,72,84,124,119,120,65,76,73,71,78, -95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,54,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67, -116,114,108,34,32,110,97,109,101,61,34,73,68,95,78,69,87,95,71,82,79,85, -80,95,78,65,77,69,95,84,88,84,95,67,84,82,76,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,55, -48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105, -111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69, -88,80,65,78,68,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69, -82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62, -119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, -97,103,62,119,120,69,88,80,65,78,68,124,119,120,71,82,79,87,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, -120,116,34,32,110,97,109,101,61,34,73,68,95,78,69,87,95,70,73,69,76,68, -95,84,89,80,69,95,83,84,65,84,95,84,88,84,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,48,44,45,49,100, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,108,97,98,101,108,62,110,117,109,101,114,105,99,60,47,108,97, -98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,78,101,119,32,71,114,111,117,112,32,68,101,116,97,105,108,115,60, +47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, +73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, 111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,102,108,97,103,62,119,120,84,79,80,124,119,120,66,79,84,84,79,77, -124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65, -76,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79, -78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,114,100,101, -114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, -105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,73,78,67,76,85, -68,69,95,76,73,83,84,95,83,84,65,84,95,84,88,84,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108, -62,53,32,111,102,32,53,32,118,97,114,105,97,98,108,101,115,32,110,101,101, -100,101,100,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, -119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82, -73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97, +99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,105,116,109,97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34, +73,68,95,78,69,87,95,71,82,79,85,80,95,72,69,76,80,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108, +101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114, +99,101,115,46,99,112,112,36,48,48,48,45,56,112,120,95,104,101,108,112,46, +112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65, +76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79, +82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, 66,79,84,84,79,77,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72, 79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98, 111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, 47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, @@ -34898,112 +34822,209 @@ static unsigned char xml_res_file_11[] = { 32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, 101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,83,79, -82,84,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,111,114,116,60, -47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,85,95,69,88,65, -67,84,70,73,84,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, +119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, +110,97,109,101,58,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,82,73,71,72,84,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +103,62,119,120,82,73,71,72,84,124,119,120,65,76,73,71,78,95,67,69,78,84, +82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,54,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110, -97,109,101,61,34,73,68,95,80,76,65,67,69,72,79,76,68,69,82,95,66,85,84, -84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,108,97,98,101,108,62,69,100,105,116,60,47,108,97,98,101, -108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,115,116,121,108,101,62,119,120,66,85,95,69,88,65,67,84,70,73,84,60, -47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34, +32,110,97,109,101,61,34,73,68,95,78,69,87,95,71,82,79,85,80,95,78,65,77, +69,95,84,88,84,95,67,84,82,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,55,48,44,45,49,100, +60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60, +47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,124, +119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82, +73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -102,108,97,103,62,119,120,66,79,84,84,79,77,124,119,120,65,76,73,71,78, -95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,76,105,115,116,67,116,114,108,34,32,110,97,109,101,61,34, -73,68,95,73,78,67,76,85,68,69,95,76,73,83,84,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,56,48,44,49,52, -48,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,76,67,95,69,68,73,84, -95,76,65,66,69,76,83,124,119,120,76,67,95,82,69,80,79,82,84,60,47,115,116, -121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +69,88,80,65,78,68,124,119,120,71,82,79,87,60,47,102,108,97,103,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101, -61,34,73,68,95,77,79,86,69,95,85,80,95,66,85,84,84,79,78,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, -101,108,62,77,111,118,101,32,85,112,60,47,108,97,98,101,108,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116, -121,108,101,62,119,120,66,85,95,69,88,65,67,84,70,73,84,60,47,115,116,121, -108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32, +110,97,109,101,61,34,73,68,95,78,69,87,95,70,73,69,76,68,95,84,89,80,69, +95,83,84,65,84,95,84,88,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,115,105,122,101,62,51,48,44,45,49,100,60,47,115,105, +122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +108,97,98,101,108,62,110,117,109,101,114,105,99,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,84,79,80,124,119,120,66,79,84,84,79,77,124,119,120, +65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,124,119, +120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,98,111,114,100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, +84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,73,78,67,76,85,68,69, +95,76,73,83,84,95,83,84,65,84,95,84,88,84,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,53, +32,111,102,32,53,32,118,97,114,105,97,98,108,101,115,32,110,101,101,100, +101,100,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, +120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47, +102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,82,73,71,72,84,60, -47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,77,79,86, -69,95,68,79,87,78,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,77,111, -118,101,32,68,111,119,110,60,47,108,97,98,101,108,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, -62,119,120,66,85,95,69,88,65,67,84,70,73,84,60,47,115,116,121,108,101,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73, -90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90, +79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79, +84,84,79,77,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82, +73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122, +101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,83,79,82,84, +95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,111,114,116,60,47,108, +97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,85,95,69,88,65,67,84, +70,73,84,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,84, -79,80,124,119,120,82,73,71,72,84,124,119,120,65,76,73,71,78,95,67,69,78, -84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67, -65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,112,116,105,111,110,62,51,52,60,47,111,112,116,105,111,110,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, +119,120,82,73,71,72,84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97, +109,101,61,34,73,68,95,80,76,65,67,69,72,79,76,68,69,82,95,66,85,84,84, +79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,108,97,98,101,108,62,69,100,105,116,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,115,116,121,108,101,62,119,120,66,85,95,69,88,65,67,84,70,73,84,60,47, +115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116, +62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,66,79,84,84,79,77,124,119,120,65,76,73,71,78,95,67, +69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,76,105,115,116,67,116,114,108,34,32,110,97,109,101,61,34,73,68,95,73, +78,67,76,85,68,69,95,76,73,83,84,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,105,122,101,62,56,48,44,49,52,48,100,60, +47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,115,116,121,108,101,62,119,120,76,67,95,69,68,73,84,95,76,65,66, +69,76,83,124,119,120,76,67,95,82,69,80,79,82,84,60,47,115,116,121,108,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69, 88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110, -97,109,101,61,34,73,68,95,67,82,69,65,84,69,95,71,82,80,95,66,85,84,84, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61, +34,73,68,95,77,79,86,69,95,85,80,95,66,85,84,84,79,78,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,77,111,118,101,32,85,112,60,47,108,97,98,101,108,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121, +108,101,62,119,120,66,85,95,69,88,65,67,84,70,73,84,60,47,115,116,121,108, +101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,102,108,97,103,62,119,120,82,73,71,72,84,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,77,79,86,69, +95,68,79,87,78,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,77,111,118, +101,32,68,111,119,110,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62, +119,120,66,85,95,69,88,65,67,84,70,73,84,60,47,115,116,121,108,101,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90, +79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,84,79, +80,124,119,120,82,73,71,72,84,124,119,120,65,76,73,71,78,95,67,69,78,84, +82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62, +53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65, +76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,112,116,105,111,110,62,51,52,60,47,111,112,116,105,111,110,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88, +80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109, +101,61,34,73,68,95,67,82,69,65,84,69,95,71,82,80,95,66,85,84,84,79,78,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, +101,108,62,38,103,116,59,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66, +85,95,69,88,65,67,84,70,73,84,60,47,115,116,121,108,101,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, +120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76, +124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, +100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110, +34,32,110,97,109,101,61,34,73,68,95,85,78,71,82,79,85,80,95,66,85,84,84, 79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -108,97,98,101,108,62,38,103,116,59,60,47,108,97,98,101,108,62,10,32,32, +108,97,98,101,108,62,38,108,116,59,60,47,108,97,98,101,108,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, 62,119,120,66,85,95,69,88,65,67,84,70,73,84,60,47,115,116,121,108,101,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, @@ -35013,151 +35034,136 @@ static unsigned char xml_res_file_11[] = { 32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, 60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,85,78,71,82,79, -85,80,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,108,97,98,101,108,62,38,108,116,59,60,47,108,97,98, -101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -115,116,121,108,101,62,119,120,66,85,95,69,88,65,67,84,70,73,84,60,47,115, -116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, -95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69, -82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78, -84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, -122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120, -83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, -105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,71,114, -111,117,112,101,100,32,86,97,114,105,97,98,108,101,115,60,47,108,97,98, -101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, -67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114, +32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76, +60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69, +82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, 34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -115,105,122,101,62,52,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, +105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,71,114,111,117,112,101, +100,32,86,97,114,105,97,98,108,101,115,60,47,108,97,98,101,108,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, +95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, +52,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,66,117,116, +116,111,110,34,32,110,97,109,101,61,34,73,68,95,67,85,82,95,71,82,79,85, +80,69,68,95,72,69,76,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,66,79,82,68, +69,82,95,78,79,78,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112, +62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112, +36,48,48,48,45,56,112,120,95,104,101,108,112,46,112,110,103,60,47,98,105, +116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, +78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101, +114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,115,105,122,101,62,52,44,53,100,60,47,115,105,122,101,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, 101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, 34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, 111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109, -97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,67,85, -82,95,71,82,79,85,80,69,68,95,72,69,76,80,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62, -119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, -105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101, -115,46,99,112,112,36,56,112,120,95,104,101,108,112,46,112,110,103,60,47, -98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, -73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97, -99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,115,105,122,101,62,52,44,53,100,60,47,115,105,122,101,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,84,73, +77,69,95,76,79,65,68,95,70,82,79,77,95,71,68,65,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, +62,119,120,78,79,95,66,79,82,68,69,82,124,119,120,66,85,95,69,88,65,67, +84,70,73,84,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100, +97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48, +48,45,111,112,101,110,45,102,111,108,100,101,114,46,112,110,103,60,47,98, +105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,76,111,97,100,32,116, +105,109,101,32,100,101,102,105,110,105,116,105,111,110,32,102,114,111,109, +32,112,114,111,106,101,99,116,32,102,105,108,101,46,60,47,116,111,111,108, +116,105,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, +95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,105,116,109,97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34, -73,68,95,84,73,77,69,95,76,79,65,68,95,70,82,79,77,95,71,68,65,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, -116,121,108,101,62,119,120,78,79,95,66,79,82,68,69,82,124,119,120,66,85, -95,69,88,65,67,84,70,73,84,60,47,115,116,121,108,101,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109, -97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99, -112,112,36,111,112,101,110,45,102,111,108,100,101,114,46,112,110,103,60, -47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,76,111,97,100, -32,116,105,109,101,32,100,101,102,105,110,105,116,105,111,110,32,102,114, -111,109,32,112,114,111,106,101,99,116,32,102,105,108,101,46,60,47,116,111, -111,108,116,105,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, -73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84, -65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79,84,84,79, -77,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79, -78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,98,111,114,100,101,114,62,50,60,47,98,111,114,100,101, -114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,76,105,115,116,66,111,120,34, -32,110,97,109,101,61,34,73,68,95,71,82,79,85,80,69,68,95,76,73,83,84,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,56,48,44,57,48,100,60,47,115,105,122,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62, -49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,52, -44,53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32, +60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60, +47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, -122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34, -73,68,95,83,65,86,69,95,83,80,65,67,69,84,73,77,69,95,84,65,66,76,69,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,108,97,98,101,108,62,83,97,118,101,32,83,112,97,99,101,45,84,105,109, -101,32,84,97,98,108,101,47,87,101,105,103,104,116,115,60,47,108,97,98,101, -108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,115,116,121,108,101,62,119,120,66,85,95,69,88,65,67,84,70,73,84,60, -47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79,84,84,79,77,124,119, +120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,98,111,114,100,101,114,62,50,60,47,98,111,114,100,101,114,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,76,105,115,116,66,111,120,34,32,110,97,109, +101,61,34,73,68,95,71,82,79,85,80,69,68,95,76,73,83,84,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,56,48, +44,57,48,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,47,111,112, +116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,69,88,80,65,78,68,60,47,102,108,97,103,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,52,44,53,100,60,47, +115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, 98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, -116,109,97,112,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68, -95,83,65,86,69,95,83,80,65,67,69,84,73,77,69,95,72,69,76,80,34,62,10,32, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, +122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,83,65,86, +69,95,83,80,65,67,69,84,73,77,69,95,84,65,66,76,69,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,83,97,118,101,32,83,112,97,99,101,45,84,105,109,101,32,84,97,98, +108,101,47,87,101,105,103,104,116,115,60,47,108,97,98,101,108,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116, -121,108,101,62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121, +121,108,101,62,119,120,66,85,95,69,88,65,67,84,70,73,84,60,47,115,116,121, 108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111, -117,114,99,101,115,46,99,112,112,36,56,112,120,95,104,101,108,112,46,112, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, +67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, +100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, +66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,83,65,86,69, +95,83,80,65,67,69,84,73,77,69,95,72,69,76,80,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, +62,119,120,66,79,82,68,69,82,95,78,79,78,69,60,47,115,116,121,108,101,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,56,112,120,95,104,101,108,112,46,112, 110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, @@ -35210,360 +35216,361 @@ static unsigned char xml_res_file_11[] = { 32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,66,105,116,109, 97,112,34,32,110,97,109,101,61,34,119,120,73,68,95,83,84,65,84,73,67,34, 62,10,32,32,32,32,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100, -97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,97,98, -111,117,116,45,103,101,111,100,97,45,108,111,103,111,46,112,110,103,60, -47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,124,119,120,65, -76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60, -47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, -116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73,67,34,62,10,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,111,112,121,114,105, -103,104,116,32,40,67,41,32,49,57,57,56,45,50,48,49,49,10,71,101,111,68, -97,32,67,101,110,116,101,114,32,102,111,114,32,71,101,111,115,112,97,116, -105,97,108,32,65,110,97,108,121,115,105,115,32,97,110,100,32,67,111,109, -112,117,116,97,116,105,111,110,10,97,110,100,32,65,114,105,122,111,110, -97,32,66,111,97,114,100,32,111,102,32,82,101,103,101,110,116,115,10,65, -108,108,32,82,105,103,104,116,115,32,82,101,115,101,114,118,101,100,60, -47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,60,115,116,121, -108,101,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,115,116,121, -108,101,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47,102,108,97,103, -62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, -111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, -62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, +97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48, +48,45,97,98,111,117,116,45,103,101,111,100,97,45,108,111,103,111,46,112, +110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,124,119, +120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47, +102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,67,95,83,84,65,84,73, +67,34,62,10,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,111, +112,121,114,105,103,104,116,32,40,67,41,32,49,57,57,56,45,50,48,49,49,10, +71,101,111,68,97,32,67,101,110,116,101,114,32,102,111,114,32,71,101,111, +115,112,97,116,105,97,108,32,65,110,97,108,121,115,105,115,32,97,110,100, +32,67,111,109,112,117,116,97,116,105,111,110,10,97,110,100,32,65,114,105, +122,111,110,97,32,66,111,97,114,100,32,111,102,32,82,101,103,101,110,116, +115,10,65,108,108,32,82,105,103,104,116,115,32,82,101,115,101,114,118,101, +100,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,60,115, +116,121,108,101,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,115, +116,121,108,101,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101, +114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62, +119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62, +10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61, +34,73,68,95,83,84,65,84,73,67,84,69,88,84,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,66,70,32,86,105,101,119, +101,114,32,48,46,56,32,40,74,117,108,121,32,50,57,44,32,50,48,49,49,41, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,115,116,121,108,101,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60, +47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, +73,67,65,76,124,119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73, +78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69, +82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62, +53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116, +116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,79,75,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,79,75, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,68,105, +97,108,111,103,34,32,110,97,109,101,61,34,73,68,95,68,65,84,65,95,86,73, +69,87,69,82,95,68,69,76,69,84,69,95,67,79,76,95,68,76,71,34,32,115,117, +98,99,108,97,115,115,61,34,68,97,116,97,86,105,101,119,101,114,68,101,108, +101,116,101,67,111,108,68,108,103,34,62,10,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114, +34,62,10,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69, +82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62, +10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, 72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, 34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95, -83,84,65,84,73,67,84,69,88,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,108,97,98,101,108,62,68,66,70,32,86,105,101,119,101,114,32, -48,46,56,32,40,74,117,108,121,32,50,57,44,32,50,48,49,49,41,60,47,108,97, -98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121, -108,101,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,60,47,115,116,121, -108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, -119,120,65,76,76,124,119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, -114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84, -73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114, -100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32, -110,97,109,101,61,34,119,120,73,68,95,79,75,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,79,75,60,47,108,97,98,101, -108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,68,105,97,108,111,103,34,32,110, -97,109,101,61,34,73,68,95,68,65,84,65,95,86,73,69,87,69,82,95,68,69,76, -69,84,69,95,67,79,76,95,68,76,71,34,32,115,117,98,99,108,97,115,115,61, -34,68,97,116,97,86,105,101,119,101,114,68,101,108,101,116,101,67,111,108, -68,108,103,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, +69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, +120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47, -111,114,105,101,110,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, -32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84, -65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32, +111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, -97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73, -67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34, -32,110,97,109,101,61,34,73,68,95,84,69,88,84,95,49,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,101, -108,101,99,116,32,118,97,114,105,97,98,108,101,115,32,116,111,32,100,101, -108,101,116,101,32,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, -71,78,95,76,69,70,84,124,119,120,65,76,76,124,119,120,65,68,74,85,83,84, -95,77,73,78,83,73,90,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, -114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,76,105,115,116,66, -111,120,34,32,110,97,109,101,61,34,73,68,95,70,73,69,76,68,95,67,72,79, -73,67,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,115,116,121,108,101,62,119,120,76,66,95,77,85,76,84,73,80,76,69,32,124, -32,119,120,76,66,95,72,83,67,82,79,76,76,60,47,115,116,121,108,101,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, -62,49,48,48,44,32,56,48,100,60,47,115,105,122,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,60,47,102,108,97,103, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, +105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,84,69,88,84,95, +49,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108, +97,98,101,108,62,83,101,108,101,99,116,32,118,97,114,105,97,98,108,101, +115,32,116,111,32,100,101,108,101,116,101,32,60,47,108,97,98,101,108,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65,76,76,124, +119,120,65,68,74,85,83,84,95,77,73,78,83,73,90,69,60,47,102,108,97,103, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100, 101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, -103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67, -65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124, -119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110, -34,32,110,97,109,101,61,34,73,68,95,68,69,76,69,84,69,95,66,85,84,84,79, -78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108, -97,98,101,108,62,68,101,108,101,116,101,60,47,108,97,98,101,108,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110, -97,109,101,61,34,119,120,73,68,95,67,65,78,67,69,76,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,108, -111,115,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,76,105,115,116,66,111,120,34,32,110,97,109,101,61,34,73,68,95,70, +73,69,76,68,95,67,72,79,73,67,69,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,76,66,95,77,85, +76,84,73,80,76,69,32,124,32,119,120,76,66,95,72,83,67,82,79,76,76,60,47, +115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,115,105,122,101,62,49,48,48,44,32,56,48,100,60,47,115,105,122, +101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,65,76,73,71,78,95,76,69,70,84,124,119,120,65, +76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, +69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, +120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47, +111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72, +79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,68,69, +76,69,84,69,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,68,101,108,101,116,101, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,65, +78,67,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,108,97,98,101,108,62,67,108,111,115,101,60,47,108,97,98,101,108,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90, +79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, +84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,84,69,88,84,95,77,83, +71,34,62,10,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,77,101, +115,115,97,103,101,32,97,114,101,97,60,47,108,97,98,101,108,62,10,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, -95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76, -76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, +32,60,102,108,97,103,62,119,120,66,79,84,84,79,77,124,119,120,76,69,70, +84,124,119,120,82,73,71,72,84,124,119,120,65,76,73,71,78,95,76,69,70,84, +60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,56,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,60,116,105,116,108,101,62,68,101,108,101,116,101,32,86,97,114, +105,97,98,108,101,40,115,41,60,47,116,105,116,108,101,62,10,32,32,32,32, +60,99,101,110,116,101,114,101,100,62,49,60,47,99,101,110,116,101,114,101, +100,62,10,32,32,32,32,60,115,116,121,108,101,62,119,120,67,65,80,84,73, +79,78,124,119,120,83,89,83,84,69,77,95,77,69,78,85,124,119,120,67,76,79, +83,69,95,66,79,88,60,47,115,116,121,108,101,62,10,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,68,105,97,108,111,103,34,32,110,97,109,101,61,34,73,68,95,68, +65,84,65,95,86,73,69,87,69,82,95,65,68,68,95,67,79,76,95,70,73,88,69,68, +95,68,76,71,34,32,115,117,98,99,108,97,115,115,61,34,68,97,116,97,86,105, +101,119,101,114,65,100,100,67,111,108,68,108,103,34,62,10,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, +105,122,101,114,34,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,70,108,101,120,71,114,105,100,83,105,122,101,114,34,62,10,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61, -34,73,68,95,84,69,88,84,95,77,83,71,34,62,10,32,32,32,32,32,32,32,32,32, -32,60,108,97,98,101,108,62,77,101,115,115,97,103,101,32,97,114,101,97,60, -47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79, -84,84,79,77,124,119,120,76,69,70,84,124,119,120,82,73,71,72,84,124,119, -120,65,76,73,71,78,95,76,69,70,84,60,47,102,108,97,103,62,10,32,32,32,32, -32,32,32,32,60,98,111,114,100,101,114,62,56,60,47,98,111,114,100,101,114, -62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,60,116,105,116,108,101,62,68, -101,108,101,116,101,32,86,97,114,105,97,98,108,101,40,115,41,60,47,116, -105,116,108,101,62,10,32,32,32,32,60,99,101,110,116,101,114,101,100,62, -49,60,47,99,101,110,116,101,114,101,100,62,10,32,32,32,32,60,115,116,121, -108,101,62,119,120,67,65,80,84,73,79,78,124,119,120,83,89,83,84,69,77,95, -77,69,78,85,124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108, -101,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,68,105,97,108,111,103,34,32,110, -97,109,101,61,34,73,68,95,68,65,84,65,95,86,73,69,87,69,82,95,65,68,68, -95,67,79,76,95,70,73,88,69,68,95,68,76,71,34,32,115,117,98,99,108,97,115, -115,61,34,68,97,116,97,86,105,101,119,101,114,65,100,100,67,111,108,68, -108,103,34,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100, -83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34, -32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,95,78,69,87,95,78,65, -77,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,62,78,97,109,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95, +83,84,65,84,73,67,95,78,69,87,95,78,65,77,69,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,78,97,109,101,60,47,108, +97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, +62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65, +76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109, +101,61,34,73,68,95,84,69,88,84,95,78,69,87,95,78,65,77,69,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,49,49,48,44,45, +49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,115,116,121,108,101,62,119,120,84,69,95,80,82,79,67,69,83,83,95, +69,78,84,69,82,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82, +69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32, 32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, -82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67, +95,84,89,80,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108, +97,98,101,108,62,84,121,112,101,60,47,108,97,98,101,108,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, 32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, 101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116, -67,116,114,108,34,32,110,97,109,101,61,34,73,68,95,84,69,88,84,95,78,69, -87,95,78,65,77,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -115,105,122,101,62,49,49,48,44,45,49,100,60,47,115,105,122,101,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120, -84,69,95,80,82,79,67,69,83,83,95,69,78,84,69,82,60,47,115,116,121,108,101, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,111,105, +99,101,34,32,110,97,109,101,61,34,73,68,95,67,72,79,73,67,69,95,84,89,80, +69,34,47,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, 62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, 61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101, -61,34,73,68,95,83,84,65,84,73,67,95,84,89,80,69,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,84,121,112,101,60,47, +61,34,73,68,95,83,84,65,84,73,67,95,73,78,83,69,82,84,95,80,79,83,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,73, +110,115,101,114,116,32,98,101,102,111,114,101,60,47,108,97,98,101,108,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67, +104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,95,67,72,79,73,67,69, +95,73,78,83,69,82,84,95,80,79,83,34,47,62,10,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120, +116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,95,76,69,78,71, +84,72,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,76,101,110,103,116,104,32,40,109,97,120,32,50,53,52,41,60,47,108, +97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109,101,61, +34,73,68,95,84,69,88,84,95,76,69,78,71,84,72,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,105,122,101,62,50,53,44,45,49,100,60,47, +115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, +116,121,108,101,62,119,120,84,69,95,80,82,79,67,69,83,83,95,69,78,84,69, +82,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32, +110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,95,68,69,67,73,77,65,76, +83,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,68,101,99,105,109,97,108,115,32,40,109,97,120,32,49,53,41,60,47, 108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, 106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, 99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, 99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61,34, -73,68,95,67,72,79,73,67,69,95,84,89,80,69,34,47,62,10,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, -99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67, -95,73,78,83,69,82,84,95,80,79,83,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,108,97,98,101,108,62,73,110,115,101,114,116,32,98,101,102, -111,114,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109, -101,61,34,73,68,95,67,72,79,73,67,69,95,73,78,83,69,82,84,95,80,79,83,34, -47,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68, -95,83,84,65,84,73,67,95,76,69,78,71,84,72,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,108,97,98,101,108,62,76,101,110,103,116,104,32, -40,109,97,120,32,50,53,52,41,60,47,108,97,98,101,108,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67, -116,114,108,34,32,110,97,109,101,61,34,73,68,95,84,69,88,84,95,76,69,78, -71,84,72,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,50,53,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69,95,80, -82,79,67,69,83,83,95,69,78,84,69,82,60,47,115,116,121,108,101,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +115,115,61,34,119,120,84,101,120,116,67,116,114,108,34,32,110,97,109,101, +61,34,73,68,95,84,69,88,84,95,68,69,67,73,77,65,76,83,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,50,53,44,45,49,100, +60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +115,116,121,108,101,62,119,120,84,69,95,80,82,79,67,69,83,83,95,69,78,84, +69,82,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34, +32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,95,68,73,83,80,76,65, +89,69,68,95,68,69,67,73,77,65,76,83,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,108,97,98,101,108,62,68,105,115,112,108,97,121,101,100, +32,100,101,99,105,109,97,108,115,32,112,108,97,99,101,115,60,47,108,97, +98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,95, +68,73,83,80,76,65,89,69,68,95,68,69,67,73,77,65,76,83,34,47,62,10,32,32, 32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, 32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, 105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116, 97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84, -65,84,73,67,95,68,69,67,73,77,65,76,83,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,108,97,98,101,108,62,68,101,99,105,109,97,108,115, -32,40,109,97,120,32,49,53,41,60,47,108,97,98,101,108,62,10,32,32,32,32, +65,84,73,67,95,77,65,88,95,76,65,66,69,76,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,108,97,98,101,108,62,109,97,120,105,109,117,109, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110, +97,109,101,61,34,73,68,95,83,84,65,84,73,67,95,77,65,88,95,86,65,76,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, +57,57,57,46,57,57,57,57,57,57,60,47,108,97,98,101,108,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, 32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, 32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, 114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67, -116,114,108,34,32,110,97,109,101,61,34,73,68,95,84,69,88,84,95,68,69,67, -73,77,65,76,83,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, -105,122,101,62,50,53,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,84,69, -95,80,82,79,67,69,83,83,95,69,78,84,69,82,60,47,115,116,121,108,101,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83, -116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83, -84,65,84,73,67,95,68,73,83,80,76,65,89,69,68,95,68,69,67,73,77,65,76,83, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108, -62,68,105,115,112,108,97,121,101,100,32,100,101,99,105,109,97,108,115,32, -112,108,97,99,101,115,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67, +95,77,73,78,95,76,65,66,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,108,97,98,101,108,62,109,105,110,105,109,117,109,60,47,108, +97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109, +101,61,34,73,68,95,83,84,65,84,73,67,95,77,73,78,95,86,65,76,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,45,57,57, +46,57,57,57,57,57,57,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, 32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,111,105,99,101,34, -32,110,97,109,101,61,34,73,68,95,68,73,83,80,76,65,89,69,68,95,68,69,67, -73,77,65,76,83,34,47,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110, -97,109,101,61,34,73,68,95,83,84,65,84,73,67,95,77,65,88,95,76,65,66,69, -76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,62,109,97,120,105,109,117,109,60,47,108,97,98,101,108,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +99,111,108,115,62,50,60,47,99,111,108,115,62,10,32,32,32,32,32,32,32,32, +32,32,60,114,111,119,115,62,56,60,47,114,111,119,115,62,10,32,32,32,32, +32,32,32,32,32,32,60,118,103,97,112,62,53,60,47,118,103,97,112,62,10,32, +32,32,32,32,32,32,32,32,32,60,104,103,97,112,62,53,60,47,104,103,97,112, +62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,65,76, +73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,56,60, +47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,109,105,110, +115,105,122,101,62,49,48,48,44,50,48,48,100,60,47,109,105,110,115,105,122, +101,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, 32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, -101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116, -105,99,84,101,120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73, -67,95,77,65,88,95,86,65,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,108,97,98,101,108,62,57,57,57,46,57,57,57,57,57,57,60,47,108,97, -98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101, -61,34,73,68,95,83,84,65,84,73,67,95,77,73,78,95,76,65,66,69,76,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,109,105, -110,105,109,117,109,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, -120,116,34,32,110,97,109,101,61,34,73,68,95,83,84,65,84,73,67,95,77,73, -78,95,86,65,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108, -97,98,101,108,62,45,57,57,46,57,57,57,57,57,57,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,60,99,111,108,115,62,50,60,47,99,111,108,115,62, -10,32,32,32,32,32,32,32,32,32,32,60,114,111,119,115,62,56,60,47,114,111, -119,115,62,10,32,32,32,32,32,32,32,32,32,32,60,118,103,97,112,62,53,60, -47,118,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32,60,104,103,97,112, -62,53,60,47,104,103,97,112,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,76,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73, -67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,56,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,60,109,105,110,115,105,122,101,62,49,48,48,44,50,48,48,100,60,47, -109,105,110,115,105,122,101,62,10,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, -120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97, -109,101,61,34,119,120,73,68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,108,97,98,101,108,62,65,100,100,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, -120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, -95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117, -116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,65,78,67, -69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101, +114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34, +119,120,73,68,95,79,75,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,108,97,98,101,108,62,65,100,100,60,47,108,97,98,101,108,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, +78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65, +76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60, +98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72, +79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116, +116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,65,78,67,69, +76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, 108,62,67,108,111,115,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, 32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, @@ -36403,289 +36410,327 @@ static unsigned char xml_res_file_11[] = { 97,109,101,61,34,73,68,95,79,80,69,78,95,66,85,84,84,79,78,34,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,105, 116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115, -46,99,112,112,36,111,112,101,110,45,102,111,108,100,101,114,46,112,110, -103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,78,79, -95,66,79,82,68,69,82,124,119,120,66,85,95,69,88,65,67,84,70,73,84,60,47, +46,99,112,112,36,48,48,48,45,111,112,101,110,45,102,111,108,100,101,114, +46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119, +120,78,79,95,66,79,82,68,69,82,124,119,120,66,85,95,69,88,65,67,84,70,73, +84,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +82,73,71,72,84,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69, +82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79, +82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,73,110, +112,117,116,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65, +76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,69,88,80,65,78,68,124,119,120,65,76,76,60, +47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, +100,101,114,62,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,66,111,120,83,105,122,101,114,34,32,110,97,109,101,61,34,119,120,73, +68,95,65,78,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, +122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,82,97,100,105,111,66,117,116,116,111,110,34,32,110,97,109,101,61,34, +73,68,95,77,69,82,71,69,95,76,69,70,84,95,74,79,73,78,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,77,101,114,103,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101, +62,49,60,47,118,97,108,117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,82,66,95, +71,82,79,85,80,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,82,97, +100,105,111,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95, +77,69,82,71,69,95,79,85,84,69,82,95,74,79,73,78,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108, +62,83,116,97,99,107,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60, +47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,108,97,98,101,108,62,77,101,116,104,111,100,60,47,108, +97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114, +105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101, +110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, +120,69,88,80,65,78,68,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,47,62,10,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116, +97,116,105,99,66,111,120,83,105,122,101,114,34,32,110,97,109,101,61,34, +119,120,73,68,95,65,78,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, +120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,82,97,100,105,111,66,117,116,116,111,110,34,32,110,97, +109,101,61,34,73,68,95,75,69,89,95,86,65,76,95,82,66,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, +108,62,77,101,114,103,101,32,98,121,32,107,101,121,32,118,97,108,117,101, +115,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,49,60,47,118,97,108, +117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,115,116,121,108,101,62,119,120,82,66,95,71,82,79,85,80,60,47, 115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,82,73, -71,72,84,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84, -73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111, +32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79, +84,84,79,77,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,50,60,47,98,111, 114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82,73,90, -79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,73,110,112,117, -116,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47, -111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,69,88,80,65,78,68,124,119,120,65,76,76,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100, -101,114,62,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,66,111, -120,83,105,122,101,114,34,32,110,97,109,101,61,34,119,120,73,68,95,65,78, -89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,82,97,100,105, -111,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,77,69,82, -71,69,95,76,69,70,84,95,74,79,73,78,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,77,101,114, -103,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,118,97,108,117,101,62,49,60,47,118, -97,108,117,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,115,116,121,108,101,62,119,120,82,66,95,71,82,79,85,80, -60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,82,97,100,105,111,66, -117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,77,69,82,71,69, -95,79,85,84,69,82,95,74,79,73,78,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,116,97,99, -107,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108, -97,98,101,108,62,77,101,116,104,111,100,60,47,108,97,98,101,108,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, -120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68, -124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,60,98,111,114,100,101,114,47,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,66,111, -120,83,105,122,101,114,34,32,110,97,109,101,61,34,119,120,73,68,95,65,78, -89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,82,97,100,105, -111,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,75,69,89, -95,86,65,76,95,82,66,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,77,101,114,103,101,32,98, -121,32,107,101,121,32,118,97,108,117,101,115,60,47,108,97,98,101,108,62, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,70,108,101,120,71,114,105,100,83,105,122,101,114,34,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -118,97,108,117,101,62,49,60,47,118,97,108,117,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, -62,119,120,82,66,95,71,82,79,85,80,60,47,115,116,121,108,101,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,66,79,84,84,79,77,60,47,102,108,97,103, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, +116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, +101,108,62,99,117,114,114,101,110,116,32,116,97,98,108,101,32,107,101,121, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73, +67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101,114,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90, +79,78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69, +82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98, 111,114,100,101,114,62,50,60,47,98,111,114,100,101,114,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,70,108,101,120, -71,114,105,100,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, -84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,99,117,114,114,101, -110,116,32,116,97,98,108,101,32,107,101,121,60,47,108,97,98,101,108,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, -73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44, -53,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76, -73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, -120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124, -119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,50,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,95,67,85,82,82,69, -78,84,95,75,69,89,95,67,72,79,73,67,69,34,32,115,117,98,99,108,97,115,115, -61,34,71,100,97,67,104,111,105,99,101,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, -62,56,53,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, -82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, 122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,108,97,98,101,108,62,105,109,112,111,114,116,32,116,97,98,108,101, -32,107,101,121,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, -95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,101, -114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,115,105,122,101,62,53,44,53,100,60,47,115,105,122,101,62, +97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109,101,61, +34,73,68,95,67,85,82,82,69,78,84,95,75,69,89,95,67,72,79,73,67,69,34,32, +115,117,98,99,108,97,115,115,61,34,71,100,97,67,104,111,105,99,101,34,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95, -72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,73,71,78,95,67,69,78,84, -69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97, -103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,98,111,114,100,101,114,62,50,60,47,98,111,114,100,101,114,62, +32,32,32,60,115,105,122,101,62,56,53,44,45,49,100,60,47,115,105,122,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, +76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, +120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,105,109,112,111,114,116, +32,116,97,98,108,101,32,107,101,121,60,47,108,97,98,101,108,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, +95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, 47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,53,44,53,100,60, +47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95, +67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,73, +71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,65,76, +76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,50,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109, -101,61,34,73,68,95,73,77,80,79,82,84,95,75,69,89,95,67,72,79,73,67,69,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,115,105,122,101,62,56,53,44,45,49,100,60,47,115,105,122, -101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,108,115,62,51,60,47,99, -111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,114,111,119,115,62,50,60,47,114,111,119,115,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,118,103, -97,112,62,50,60,47,118,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,76,69,70,84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,50,53,60,47, -98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69, -82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,82,97,100,105,111,66,117, -116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,82,69,67,95,79,82,68, -69,82,95,82,66,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,108,97,98,101,108,62,77,101,114,103,101,32,98,121, -32,114,101,99,111,114,100,32,111,114,100,101,114,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82, -73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -84,79,80,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,98,111,114,100,101,114,62,50,60,47,98,111,114,100,101,114, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, -105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,104,111, +105,99,101,34,32,110,97,109,101,61,34,73,68,95,73,77,80,79,82,84,95,75, +69,89,95,67,72,79,73,67,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,56,53,44, +45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86, +69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +99,111,108,115,62,51,60,47,99,111,108,115,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,114,111,119,115,62,50,60,47, +114,111,119,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,118,103,97,112,62,50,60,47,118,103,97,112,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,102,108,97,103,62,119,120,76,69,70,84,60,47,102,108,97,103,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, +114,100,101,114,62,50,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105, +101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, +122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,82,97,100,105,111,66,117,116,116,111,110,34,32,110,97,109,101,61,34, +73,68,95,82,69,67,95,79,82,68,69,82,95,82,66,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, +77,101,114,103,101,32,98,121,32,114,101,99,111,114,100,32,111,114,100,101, +114,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, +116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +102,108,97,103,62,119,120,84,79,80,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,50, +60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122, +101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, 105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120, +83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, +86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, +101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47, -111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,60,108,97,98,101,108,62,69,120,99,108,117,100,101,60,47,108,97, +98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97, -116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,62,69,120,99,108,117,100,101,60,47,108,97,98,101,108,62,10,32,32,32, +32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95, +72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,76,105,115,116,66, +111,120,34,32,110,97,109,101,61,34,73,68,95,69,88,67,76,85,68,69,95,76, +73,83,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,57,48,44,55,55, +100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, +62,119,120,76,66,95,83,73,78,71,76,69,60,47,115,116,121,108,101,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105, +111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112, +116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, +103,62,119,120,69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105, +122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, +116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34, +73,68,95,73,78,67,95,65,76,76,95,66,85,84,84,79,78,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,115,105,122,101,62,51,48,44,45,49,100,60,47,115,105,122,101,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,103,116,59,38,103,116,59, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78, +84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, 105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,76,105,115,116,66,111,120,34,32,110,97,109,101, -61,34,73,68,95,69,88,67,76,85,68,69,95,76,73,83,84,34,62,10,32,32,32,32, +97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61, +34,73,68,95,73,78,67,95,79,78,69,95,66,85,84,84,79,78,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,115,105,122,101,62,57,48,44,55,55,100,60,47,115,105,122,101,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,76,66,95,83,73,78, -71,76,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,47,111, -112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69, -88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62, -49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69, -88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,60,115,105,122,101,62,51,48,44,45,49,100,60,47,115,105,122,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,103,116,59,60,47,108, +97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,73,78,67,95,65, -76,76,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, -62,51,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -108,97,98,101,108,62,38,103,116,59,38,103,116,59,60,47,108,97,98,101,108, +32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82, +95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, +101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,69,88, +67,76,95,79,78,69,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115, +105,122,101,62,51,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,108,97,98,101,108,62,38,108,116,59,60,47,108,97,98,101,108, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, @@ -36699,303 +36744,239 @@ static unsigned char xml_res_file_11[] = { 108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117, -116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,73,78,67,95,79,78,69, -95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51, -48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97, -98,101,108,62,38,103,116,59,60,47,108,97,98,101,108,62,10,32,32,32,32,32, +116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,69,88,67,76,95,65,76, +76,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, +51,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108, +97,98,101,108,62,38,108,116,59,38,108,116,59,60,47,108,97,98,101,108,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90, +79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62, +119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, 47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124, -119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, +78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, 61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110, -34,32,110,97,109,101,61,34,73,68,95,69,88,67,76,95,79,78,69,95,66,85,84, -84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,48,44,45,49, -100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108, -62,38,108,116,59,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73, -71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120, -65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65, +76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83, +116,97,116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, +101,108,62,73,110,99,108,117,100,101,60,47,108,97,98,101,108,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, +119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84, +65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,76,105,115,116,66,111,120,34,32,110,97,109, +101,61,34,73,68,95,73,78,67,76,85,68,69,95,76,73,83,84,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,115,105,122,101,62,57,48,44,55,55,100,60,47,115,105,122,101, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,76,66,95,83,73, +78,71,76,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,47,111, +112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69, +88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, 116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32, -110,97,109,101,61,34,73,68,95,69,88,67,76,95,65,76,76,95,66,85,84,84,79, -78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,48,44,45,49,100, -60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,38, -108,116,59,38,108,116,59,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65, -76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119, -120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, -114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62, +49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69, +88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114, +105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114, +105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,47,111, +112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,69,88, +80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73, 67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69, -95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,47,111, +112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,124,119,120,65,76,73, +71,78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,124,119,120, +76,69,70,84,124,119,120,82,73,71,72,84,124,119,120,84,79,80,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111, +114,100,101,114,62,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, 115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114, -105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101, -110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, -120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,73,110,99,108, -117,100,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, -78,95,67,69,78,84,82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,76,105,115,116,66,111,120,34,32,110,97,109,101,61,34,73,68,95,73, -78,67,76,85,68,69,95,76,73,83,84,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105, -122,101,62,57,48,44,55,55,100,60,47,115,105,122,101,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,115,116,121,108,101,62,119,120,76,66,95,83,73,78,71,76,69,60,47,115, -116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66,111,120,34, +32,110,97,109,101,61,34,73,68,95,77,69,82,71,69,95,79,86,69,82,87,82,73, +84,69,95,83,65,77,69,95,70,73,69,76,68,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,85,115, +101,32,101,120,105,115,116,105,110,103,32,102,105,101,108,100,32,110,97, +109,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,48,60, +47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,47,111,112,116,105, -111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, -120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, -97,103,62,119,120,65,76,76,124,119,120,69,88,80,65,78,68,60,47,102,108, -97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101, +110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101, +110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,84,79,80,60,47,102,108,97,103,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62, +50,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,108,97,98,101,108,62,80,97,114,97,109,101,116,101,114,115, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111, +114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,69,88,80,65,78,68,124,119,120,65,76,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, +114,62,50,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, +32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111, 114,105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105, -101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, -120,69,88,80,65,78,68,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95, -72,79,82,73,90,79,78,84,65,76,124,119,120,76,69,70,84,124,119,120,82,73, -71,72,84,124,119,120,84,79,80,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,48,60,47, -98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, -120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110,97,109,101,61, -34,73,68,95,77,69,82,71,69,95,79,86,69,82,87,82,73,84,69,95,83,65,77,69, -95,70,73,69,76,68,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,108,97,98,101,108,62,85,115,101,32,101,120,105, -115,116,105,110,103,32,102,105,101,108,100,32,110,97,109,101,60,47,108, -97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,99,104,101,99,107,101,100,62,48,60,47,99,104,101,99,107, -101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, +101,110,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, +95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,76,69, +70,84,124,119,120,82,73,71,72,84,124,119,120,84,79,80,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,52,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, +32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95, +72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103, +62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, +62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, 72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, -119,120,84,79,80,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,50,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, -101,108,62,80,97,114,97,109,101,116,101,114,115,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110, -116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88, -80,65,78,68,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,50,60,47,98,111,114, -100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, -120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72, -79,82,73,90,79,78,84,65,76,124,119,120,76,69,70,84,124,119,120,82,73,71, -72,84,124,119,120,84,79,80,60,47,102,108,97,103,62,10,32,32,32,32,32,32, -32,32,60,98,111,114,100,101,114,62,52,60,47,98,111,114,100,101,114,62,10, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, -116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124, -119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60, -98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32, -32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, -60,111,114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60, -47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97, -109,101,61,34,119,120,73,68,95,77,69,82,71,69,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,97,109,112,59,77,101, -114,103,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,77,69, +82,71,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, +101,108,62,38,97,109,112,59,77,101,114,103,101,60,47,108,97,98,101,108, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66, +79,84,84,79,77,124,119,120,76,69,70,84,124,119,120,82,73,71,72,84,60,47, +102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, +100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, +32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111, +110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,76,79,83,69,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,67,108, +111,115,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,60,102,108,97,103,62,119,120,66,79,84,84,79,77,124,119,120,76,69,70, 84,124,119,120,82,73,71,72,84,60,47,102,108,97,103,62,10,32,32,32,32,32, 32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100, 101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120, -73,68,95,67,76,79,83,69,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,108,97,98,101,108,62,67,108,111,115,101,60,47,108,97,98,101,108,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79, -84,84,79,77,124,119,120,76,69,70,84,124,119,120,82,73,71,72,84,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100, -101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,116,105, -116,108,101,62,77,101,114,103,101,60,47,116,105,116,108,101,62,10,32,32, -32,32,60,99,101,110,116,101,114,101,100,62,49,60,47,99,101,110,116,101, -114,101,100,62,10,32,32,32,32,60,115,116,121,108,101,62,119,120,67,65,80, -84,73,79,78,124,119,120,83,89,83,84,69,77,95,77,69,78,85,124,119,120,82, -69,83,73,90,69,95,66,79,82,68,69,82,124,119,120,67,76,79,83,69,95,66,79, -88,60,47,115,116,121,108,101,62,10,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,68, -105,97,108,111,103,34,32,110,97,109,101,61,34,73,68,95,68,73,83,83,79,76, -86,69,95,68,76,71,34,32,115,117,98,99,108,97,115,115,61,34,68,105,115,115, -111,108,118,101,68,108,103,34,62,10,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62, -10,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84, -73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116, -101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,83,99,114,111,108,108,101,100,87,105,110,100, -111,119,34,32,110,97,109,101,61,34,73,68,95,68,73,83,83,79,76,86,69,95, -83,67,82,79,76,76,95,87,73,78,34,62,10,32,32,32,32,32,32,32,32,32,32,60, -115,116,121,108,101,62,119,120,72,83,67,82,79,76,76,124,119,120,86,83,67, -82,79,76,76,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120, -83,105,122,101,114,34,32,110,97,109,101,61,34,73,68,95,68,73,83,83,79,76, -86,69,95,83,67,82,79,76,76,95,87,73,78,95,83,73,90,69,82,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,60,116,105,116,108,101,62,77,101,114,103,101, +60,47,116,105,116,108,101,62,10,32,32,32,32,60,99,101,110,116,101,114,101, +100,62,49,60,47,99,101,110,116,101,114,101,100,62,10,32,32,32,32,60,115, +116,121,108,101,62,119,120,67,65,80,84,73,79,78,124,119,120,83,89,83,84, +69,77,95,77,69,78,85,124,119,120,82,69,83,73,90,69,95,66,79,82,68,69,82, +124,119,120,67,76,79,83,69,95,66,79,88,60,47,115,116,121,108,101,62,10, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,68,105,97,108,111,103,34,32,110,97,109, +101,61,34,73,68,95,68,73,83,83,79,76,86,69,95,68,76,71,34,32,115,117,98, +99,108,97,115,115,61,34,68,105,115,115,111,108,118,101,68,108,103,34,62, +10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,60,111,114, +105,101,110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101, +110,116,62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, 115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101, -108,62,83,101,108,101,99,116,32,118,97,114,105,97,98,108,101,32,102,111, -114,32,100,105,115,115,111,108,118,105,110,103,58,60,47,108,97,98,101,108, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95, -86,69,82,84,73,67,65,76,124,119,120,82,73,71,72,84,60,47,102,108,97,103, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,55,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,99, +114,111,108,108,101,100,87,105,110,100,111,119,34,32,110,97,109,101,61, +34,73,68,95,68,73,83,83,79,76,86,69,95,83,67,82,79,76,76,95,87,73,78,34, +62,10,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,72, +83,67,82,79,76,76,124,119,120,86,83,67,82,79,76,76,60,47,115,116,121,108, +101,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,32,110,97, +109,101,61,34,73,68,95,68,73,83,83,79,76,86,69,95,83,67,82,79,76,76,95, +87,73,78,95,83,73,90,69,82,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105, +122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105, +116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97, +116,105,99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,101,108,101,99,116,32, +118,97,114,105,97,98,108,101,32,102,111,114,32,100,105,115,115,111,108, +118,105,110,103,58,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,67,104,111,105,99,101,34,32,110,97,109, -101,61,34,73,68,95,67,85,82,82,69,78,84,95,75,69,89,95,67,72,79,73,67,69, -34,32,115,117,98,99,108,97,115,115,61,34,71,100,97,67,104,111,105,99,101, -34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -115,105,122,101,62,56,53,44,45,49,100,60,47,115,105,122,101,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102, -108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84, -73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, +65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,124,119, +120,82,73,71,72,84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,55,60,47,98,111, +114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, +114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +67,104,111,105,99,101,34,32,110,97,109,101,61,34,73,68,95,67,85,82,82,69, +78,84,95,75,69,89,95,67,72,79,73,67,69,34,32,115,117,98,99,108,97,115,115, +61,34,71,100,97,67,104,111,105,99,101,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,56,53,44,45,49, +100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,72,79,82, -73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, -78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,124,119,120,65,76,76, -60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -98,111,114,100,101,114,62,49,48,60,47,98,111,114,100,101,114,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,83,116,97,116,105,99,66,111,120,83,105,122,101,114,34,32,110,97, -109,101,61,34,119,120,73,68,95,65,78,89,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99, -84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,101,108,101,99,116,32, -118,97,114,105,97,98,108,101,115,58,60,47,108,97,98,101,108,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78, -84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114, -100,101,114,62,48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114, -105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114, -105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +114,105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111, +114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86, +69,82,84,73,67,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,49, +48,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,124,119, -120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,56,60,47,98,111,114,100, -101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, +99,66,111,120,83,105,122,101,114,34,32,110,97,109,101,61,34,119,120,73, +68,95,65,78,89,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, 105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111, @@ -37003,115 +36984,122 @@ static unsigned char xml_res_file_11[] = { 32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, 115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, -109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +108,97,98,101,108,62,83,101,108,101,99,116,32,118,97,114,105,97,98,108, +101,115,58,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108, +97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73, +67,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,48,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, +72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,69,88,80,65,78,68,124,119,120,65,76,76,60,47,102, +108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,98,111,114,100,101,114,62,56,60,47,98,111,114,100,101,114,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101, +114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, +105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, 120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101, -110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,76,105,115,116,66,111,120, -34,32,110,97,109,101,61,34,73,68,95,69,88,67,76,85,68,69,95,76,73,83,84, -34,32,115,117,98,99,108,97,115,115,61,34,71,100,97,76,105,115,116,66,111, -120,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,57,48,44,56,55, -100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121, -108,101,62,119,120,76,66,95,83,73,78,71,76,69,60,47,115,116,121,108,101, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,60,47, -102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49, -60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120, -69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, -114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120, +83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, +120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101, 114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34,32,110,97, -109,101,61,34,73,68,95,73,78,67,95,65,76,76,95,66,85,84,84,79,78,34,62, +32,99,108,97,115,115,61,34,119,120,76,105,115,116,66,111,120,34,32,110, +97,109,101,61,34,73,68,95,69,88,67,76,85,68,69,95,76,73,83,84,34,32,115, +117,98,99,108,97,115,115,61,34,71,100,97,76,105,115,116,66,111,120,34,62, 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,48,44,45,49,100,60, +32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,57,48,44,56,55,100,60, 47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62, -38,103,116,59,38,103,116,59,60,47,108,97,98,101,108,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78, -84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101, +62,119,120,76,66,95,83,73,78,71,76,69,60,47,115,116,121,108,101,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, +112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,47,111,112, +116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78, +68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101, 99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, 34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,73, -78,67,95,79,78,69,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32, +78,67,95,65,76,76,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 60,115,105,122,101,62,51,48,44,45,49,100,60,47,115,105,122,101,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,103,116,59,60,47,108,97, -98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78, -84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102, -108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60, -47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116,116,111,110,34, -32,110,97,109,101,61,34,73,68,95,69,88,67,76,95,79,78,69,95,66,85,84,84, -79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,48,44,45, -49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98, -101,108,62,38,108,116,59,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,103,116,59,38,103,116,59, +60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78, +95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76, +76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, +62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62, -119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73,90,79,78,84, -65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116, +116,111,110,34,32,110,97,109,101,61,34,73,68,95,73,78,67,95,79,78,69,95, +66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62, +51,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,62,10,32,32, +60,108,97,98,101,108,62,38,103,116,59,60,47,108,97,98,101,108,62,10,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,69,88, -67,76,95,65,76,76,95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102, +108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,72,79,82,73, +90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,115,105,122,101,62,51,48,44,45,49,100,60,47,115,105,122,101,62,10,32, +32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101, +109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73, +68,95,69,88,67,76,95,79,78,69,95,66,85,84,84,79,78,34,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,108,116,59,38,108,116,59, +32,32,32,32,60,115,105,122,101,62,51,48,44,45,49,100,60,47,115,105,122, +101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,38,108,116,59, 60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99, 116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, @@ -37122,109 +37110,129 @@ static unsigned char xml_res_file_11[] = { 62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, 101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86, -69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71, -78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83, -105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120, -86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114, -105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,76,105,115,116,66,111,120,34,32,110,97,109, -101,61,34,73,68,95,73,78,67,76,85,68,69,95,76,73,83,84,34,32,115,117,98, -99,108,97,115,115,61,34,71,100,97,76,105,115,116,66,111,120,34,62,10,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,117,116, +116,111,110,34,32,110,97,109,101,61,34,73,68,95,69,88,67,76,95,65,76,76, +95,66,85,84,84,79,78,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101, +62,51,48,44,45,49,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,60,115,105,122,101,62,57,48,44,56,55,100,60,47,115, -105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119, -120,76,66,95,83,73,78,71,76,69,60,47,115,116,121,108,101,62,10,32,32,32, +32,60,108,97,98,101,108,62,38,108,116,59,38,108,116,59,60,47,108,97,98, +101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112, -116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, +69,82,95,72,79,82,73,90,79,78,84,65,76,124,119,120,65,76,76,60,47,102,108, +97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98, +111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,60,47,102,108,97,103, +32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73,67,65, +76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,47,111,112, -116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78, -68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114, -105,101,110,116,62,119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114, -105,101,110,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, +32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84, +82,69,95,86,69,82,84,73,67,65,76,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,114,105,101,110,116,62,119,120,86,69,82,84,73, +67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,76,105,115,116,66,111,120,34,32,110,97,109,101,61,34,73,68, +95,73,78,67,76,85,68,69,95,76,73,83,84,34,32,115,117,98,99,108,97,115,115, +61,34,71,100,97,76,105,115,116,66,111,120,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,60,115,105,122,101,62,57,48,44,56,55,100,60,47,115,105,122,101,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,76,66,95,83,73, +78,71,76,69,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62, 49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76, -124,119,120,69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101, -114,62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101, -110,116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,69,88,80,65,78,68,124,119,120,65,76,73,71,78,95,67,69,78,84, -82,69,95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114, -62,56,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97, +103,62,119,120,69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,60,111,112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,60,47,102,108,97, +103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62, +119,120,72,79,82,73,90,79,78,84,65,76,60,47,111,114,105,101,110,116,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,47,111,112, +116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,76,124,119,120,69,88, +80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105, -99,84,101,120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,77,101,116,104,111,100, -58,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103, -62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65, -76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,48,60,47,98,111,114, -100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,116,62,119, +120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112, +116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69, +88,80,65,78,68,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,72,79, +82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,56,60,47, +98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,82,97,100,105,111,66,117,116,116,111,110, -34,32,110,97,109,101,61,34,73,68,95,68,73,83,83,79,76,86,69,95,67,79,85, -78,84,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,108,97,98,101,108,62,67,111,117,110,116,60,47,108,97, -98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,60,118,97,108,117,101,62,48,60,47,118,97,108,117,101, -62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,60,115,116,121,108,101,62,119,120,82,66,95,71,82,79,85,80,60,47,115, -116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,66,111,120,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109, +101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101, +120,116,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,108,97,98,101,108,62,77,101,116,104,111,100,58,60, +47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119, +120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,60,47, +102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,60,98,111,114,100,101,114,62,48,60,47,98,111,114,100,101, +114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, +105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,82,97,100,105,111,66,117,116,116,111,110,34,32, +110,97,109,101,61,34,73,68,95,68,73,83,83,79,76,86,69,95,67,79,85,78,84, 34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,82,97,100, -105,111,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,68,73, -83,83,79,76,86,69,95,65,86,71,34,62,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,65,118,101, +32,32,32,60,108,97,98,101,108,62,67,111,117,110,116,60,47,108,97,98,101, +108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,118,97,108,117,101,62,48,60,47,118,97,108,117,101,62,10,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +115,116,121,108,101,62,119,120,82,66,95,71,82,79,85,80,60,47,115,116,121, +108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62, +10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,82,97,100,105, +111,66,117,116,116,111,110,34,32,110,97,109,101,61,34,73,68,95,68,73,83, +83,79,76,86,69,95,65,86,71,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,65,118,101, 114,97,103,101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98, @@ -57883,7 +57891,7 @@ static unsigned char xml_res_file_71[] = { 160,17,160,255,214,244,79,162,182,168,120,144,155,250,62,0,0,0,0,73,69, 78,68,174,66,96,130}; -static size_t xml_res_size_72 = 8008; +static size_t xml_res_size_72 = 8248; static unsigned char xml_res_file_72[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,73,83,79,45,56,56,53,57,45,49,53,34,63, @@ -57900,294 +57908,303 @@ static unsigned char xml_res_file_72[] = { 32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108, 34,32,110,97,109,101,61,34,73,68,95,78,69,87,95,80,82,79,74,69,67,84,34, 62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112, -82,101,115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95, -51,50,120,51,50,95,48,49,46,112,110,103,60,47,98,105,116,109,97,112,62, -10,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112, -82,101,115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95, -51,50,120,51,50,95,48,49,46,112,110,103,60,47,98,105,116,109,97,112,50, -62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,79,112,101,110, -60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,67,76,79,83,69, -95,80,82,79,74,69,67,84,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97, -112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112, -112,36,99,111,108,111,114,95,51,50,120,51,50,95,48,50,46,112,110,103,60, -47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112, -50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112, -112,36,103,114,97,121,95,51,50,120,51,50,95,48,50,46,112,110,103,60,47, +82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108, +111,114,95,51,50,120,51,50,95,48,49,46,112,110,103,60,47,98,105,116,109, +97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97, +65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48, +45,99,111,108,111,114,95,51,50,120,51,50,95,48,49,46,112,110,103,60,47, 98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108,116, -105,112,62,67,108,111,115,101,60,47,116,111,111,108,116,105,112,62,10,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101, -61,34,73,68,95,83,65,86,69,95,80,82,79,74,69,67,84,34,62,10,32,32,32,32, +105,112,62,79,112,101,110,60,47,116,111,111,108,116,105,112,62,10,32,32, +32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61, +34,73,68,95,67,76,79,83,69,95,80,82,79,74,69,67,84,34,62,10,32,32,32,32, 32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95, -48,51,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32, -60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,48, -51,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32, -60,116,111,111,108,116,105,112,62,83,97,118,101,60,47,116,111,111,108,116, -105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,101,112,97,114, -97,116,111,114,34,47,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,77,95, -78,69,87,95,84,65,66,76,69,34,62,10,32,32,32,32,32,32,60,98,105,116,109, -97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99, -112,112,36,99,111,108,111,114,95,51,50,120,51,50,95,48,52,46,112,110,103, -60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97, -112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99, -112,112,36,103,114,97,121,95,51,50,120,51,50,95,48,52,46,112,110,103,60, -47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108, -116,105,112,62,84,97,98,108,101,60,47,116,111,111,108,116,105,112,62,10, -32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109, -101,61,34,73,68,95,84,79,79,76,83,95,77,69,78,85,34,62,10,32,32,32,32,32, -32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95, -52,49,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32, -60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,52, -49,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32, -60,116,111,111,108,116,105,112,62,84,111,111,108,115,60,47,116,111,111, -108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111, -108,34,32,110,97,109,101,61,34,73,68,95,84,79,79,76,83,95,87,69,73,71,72, -84,83,95,77,65,78,65,71,69,82,34,62,10,32,32,32,32,32,32,60,98,105,116, +114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108,111,114,95,51,50, +120,51,50,95,48,50,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32, +32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101, +115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,103,114,97,121, +95,51,50,120,51,50,95,48,50,46,112,110,103,60,47,98,105,116,109,97,112, +50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,67,108,111, +115,101,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,83,65, +86,69,95,80,82,79,74,69,67,84,34,62,10,32,32,32,32,32,32,60,98,105,116, 109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, -99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95,48,53,46,112,110, -103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109, -97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, -99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,48,53,46,112,110,103, +99,112,112,36,48,48,48,45,99,111,108,111,114,95,51,50,120,51,50,95,48,51, +46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98, +105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,103,114,97,121,95,51,50,120,51,50, +95,48,51,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32, +32,32,60,116,111,111,108,116,105,112,62,83,97,118,101,60,47,116,111,111, +108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,101,112, +97,114,97,116,111,114,34,47,62,10,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73, +68,77,95,78,69,87,95,84,65,66,76,69,34,62,10,32,32,32,32,32,32,60,98,105, +116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115, +46,99,112,112,36,48,48,48,45,99,111,108,111,114,95,51,50,120,51,50,95,48, +52,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60, +98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114, +99,101,115,46,99,112,112,36,48,48,48,45,103,114,97,121,95,51,50,120,51, +50,95,48,52,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32, +32,32,32,60,116,111,111,108,116,105,112,62,84,97,98,108,101,60,47,116,111, +111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10, +32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111, +111,108,34,32,110,97,109,101,61,34,73,68,95,84,79,79,76,83,95,77,69,78, +85,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65, +112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45, +99,111,108,111,114,95,51,50,120,51,50,95,52,49,46,112,110,103,60,47,98, +105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50, +62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112, +36,48,48,48,45,103,114,97,121,95,51,50,120,51,50,95,52,49,46,112,110,103, 60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108, -116,105,112,62,87,101,105,103,104,116,115,32,77,97,110,97,103,101,114,60, -47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32,60,111,98, +116,105,112,62,84,111,111,108,115,60,47,116,111,111,108,116,105,112,62, +10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98, 106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97, -109,101,61,34,73,68,95,77,65,80,95,67,72,79,73,67,69,83,34,62,10,32,32, -32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115, -111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51,50,120, -51,50,95,48,57,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32, -32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115, -111,117,114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50,120,51, -50,95,48,57,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32, -32,32,32,60,116,111,111,108,116,105,112,62,77,97,112,115,32,97,110,100, -32,82,97,116,101,115,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73, -68,95,83,72,79,87,95,67,65,82,84,79,71,82,65,77,95,78,69,87,95,86,73,69, -87,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65, -112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111, -114,95,51,50,120,51,50,95,49,48,46,112,110,103,60,47,98,105,116,109,97, -112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65, -112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,103,114,97,121, -95,51,50,120,51,50,95,49,48,46,112,110,103,60,47,98,105,116,109,97,112, -50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,67,97,114, -116,111,103,114,97,109,60,47,116,111,111,108,116,105,112,62,10,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73, -68,95,83,72,79,87,95,68,65,84,65,95,77,79,86,73,69,34,62,10,32,32,32,32, -32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95, -49,49,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32, -60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,49, -49,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32, -60,116,111,111,108,116,105,112,62,77,97,112,32,77,111,118,105,101,60,47, -116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101, -61,34,73,68,95,83,72,79,87,95,67,65,84,95,67,76,65,83,83,73,70,34,62,10, +109,101,61,34,73,68,95,84,79,79,76,83,95,87,69,73,71,72,84,83,95,77,65, +78,65,71,69,82,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71, +100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48, +48,48,45,99,111,108,111,114,95,51,50,120,51,50,95,48,53,46,112,110,103, +60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97, +112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99, +112,112,36,48,48,48,45,103,114,97,121,95,51,50,120,51,50,95,48,53,46,112, +110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111, +111,108,116,105,112,62,87,101,105,103,104,116,115,32,77,97,110,97,103,101, +114,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,115,101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32, +110,97,109,101,61,34,73,68,95,77,65,80,95,67,72,79,73,67,69,83,34,62,10, 32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101, -115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51,50, -120,51,50,95,49,50,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32, -32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101, -115,111,117,114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50,120, -51,50,95,49,50,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32, -32,32,32,32,60,116,111,111,108,116,105,112,62,67,97,116,101,103,111,114, -121,32,69,100,105,116,111,114,60,47,116,111,111,108,116,105,112,62,10,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,115,101,112,97,114,97,116,111,114,34, -47,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -116,111,111,108,34,32,110,97,109,101,61,34,73,68,77,95,72,73,83,84,34,62, -10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82, -101,115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51, -50,120,51,50,95,49,51,46,112,110,103,60,47,98,105,116,109,97,112,62,10, -32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82, -101,115,111,117,114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50, +115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108,111, +114,95,51,50,120,51,50,95,48,57,46,112,110,103,60,47,98,105,116,109,97, +112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65, +112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45, +103,114,97,121,95,51,50,120,51,50,95,48,57,46,112,110,103,60,47,98,105, +116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112, +62,77,97,112,115,32,97,110,100,32,82,97,116,101,115,60,47,116,111,111,108, +116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108, +34,32,110,97,109,101,61,34,73,68,95,83,72,79,87,95,67,65,82,84,79,71,82, +65,77,95,78,69,87,95,86,73,69,87,34,62,10,32,32,32,32,32,32,60,98,105,116, +109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, +99,112,112,36,48,48,48,45,99,111,108,111,114,95,51,50,120,51,50,95,49,48, +46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98, +105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,103,114,97,121,95,51,50,120,51,50, +95,49,48,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32, +32,32,60,116,111,111,108,116,105,112,62,67,97,114,116,111,103,114,97,109, +60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,83,72,79,87,95, +68,65,84,65,95,77,79,86,73,69,34,62,10,32,32,32,32,32,32,60,98,105,116, +109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, +99,112,112,36,48,48,48,45,99,111,108,111,114,95,51,50,120,51,50,95,49,49, +46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98, +105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,103,114,97,121,95,51,50,120,51,50, +95,49,49,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32, +32,32,60,116,111,111,108,116,105,112,62,77,97,112,32,77,111,118,105,101, +60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110, +97,109,101,61,34,73,68,95,83,72,79,87,95,67,65,84,95,67,76,65,83,83,73, +70,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65, +112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45, +99,111,108,111,114,95,51,50,120,51,50,95,49,50,46,112,110,103,60,47,98, +105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50, +62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112, +36,48,48,48,45,103,114,97,121,95,51,50,120,51,50,95,49,50,46,112,110,103, +60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108, +116,105,112,62,67,97,116,101,103,111,114,121,32,69,100,105,116,111,114, +60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,115,101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110, +97,109,101,61,34,73,68,77,95,72,73,83,84,34,62,10,32,32,32,32,32,32,60, +98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,99,111,108,111,114,95,51,50,120,51, +50,95,49,51,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32, +32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111, +117,114,99,101,115,46,99,112,112,36,48,48,48,45,103,114,97,121,95,51,50, 120,51,50,95,49,51,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10, 32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,72,105,115,116,111, 103,114,97,109,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47, 111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99, 108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,77, 95,66,79,88,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100, -97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,99,111, -108,111,114,95,51,50,120,51,50,95,49,52,46,112,110,103,60,47,98,105,116, -109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100, -97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,103,114, -97,121,95,51,50,120,51,50,95,49,52,46,112,110,103,60,47,98,105,116,109, -97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,66, -111,120,32,80,108,111,116,60,47,116,111,111,108,116,105,112,62,10,32,32, -32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61, -34,73,68,77,95,83,67,65,84,84,69,82,80,76,79,84,34,62,10,32,32,32,32,32, -32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95, -49,53,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32, -60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,49, -53,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32, -60,116,111,111,108,116,105,112,62,83,99,97,116,116,101,114,32,80,108,111, -116,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106, -101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,77,95,83,67, -65,84,84,69,82,80,76,79,84,95,77,65,84,34,62,10,32,32,32,32,32,32,60,98, +97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48, +48,45,99,111,108,111,114,95,51,50,120,51,50,95,49,52,46,112,110,103,60, +47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112, +50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112, +112,36,48,48,48,45,103,114,97,121,95,51,50,120,51,50,95,49,52,46,112,110, +103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111, +108,116,105,112,62,66,111,120,32,80,108,111,116,60,47,116,111,111,108,116, +105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34, +32,110,97,109,101,61,34,73,68,77,95,83,67,65,84,84,69,82,80,76,79,84,34, +62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112, +82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108, +111,114,95,51,50,120,51,50,95,49,53,46,112,110,103,60,47,98,105,116,109, +97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97, +65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48, +45,103,114,97,121,95,51,50,120,51,50,95,49,53,46,112,110,103,60,47,98,105, +116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112, +62,83,99,97,116,116,101,114,32,80,108,111,116,60,47,116,111,111,108,116, +105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34, +32,110,97,109,101,61,34,73,68,77,95,83,67,65,84,84,69,82,80,76,79,84,95, +77,65,84,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100, +97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48, +48,45,99,111,108,111,114,95,51,50,120,51,50,95,49,54,46,112,110,103,60, +47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112, +50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112, +112,36,48,48,48,45,103,114,97,121,95,51,50,120,51,50,95,49,54,46,112,110, +103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111, +108,116,105,112,62,83,99,97,116,116,101,114,32,80,108,111,116,32,77,97, +116,114,105,120,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68, +77,95,66,85,66,66,76,69,67,72,65,82,84,34,62,10,32,32,32,32,32,32,60,98, 105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101, -115,46,99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95,49,54,46, -112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105, -116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101, -115,46,99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,49,54,46,112, -110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111, -111,108,116,105,112,62,83,99,97,116,116,101,114,32,80,108,111,116,32,77, -97,116,114,105,120,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32, -60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73, -68,77,95,66,85,66,66,76,69,67,72,65,82,84,34,62,10,32,32,32,32,32,32,60, -98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99, -101,115,46,99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95,49,55, -46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98, -105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99, -101,115,46,99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,49,55,46, -112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116, -111,111,108,116,105,112,62,66,117,98,98,108,101,32,67,104,97,114,116,60, -47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,77,95,51,68,80,34,62, -10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82, -101,115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51, -50,120,51,50,95,49,56,46,112,110,103,60,47,98,105,116,109,97,112,62,10, +115,46,99,112,112,36,48,48,48,45,99,111,108,111,114,95,51,50,120,51,50, +95,49,55,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32, +32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117, +114,99,101,115,46,99,112,112,36,48,48,48,45,103,114,97,121,95,51,50,120, +51,50,95,49,55,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32, +32,32,32,32,60,116,111,111,108,116,105,112,62,66,117,98,98,108,101,32,67, +104,97,114,116,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,77, +95,51,68,80,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100, +97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48, +48,45,99,111,108,111,114,95,51,50,120,51,50,95,49,56,46,112,110,103,60, +47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112, +50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112, +112,36,48,48,48,45,103,114,97,121,95,51,50,120,51,50,95,49,56,46,112,110, +103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111, +108,116,105,112,62,51,68,32,83,99,97,116,116,101,114,32,80,108,111,116, +60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,77,95,80,67,80,34, +62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112, +82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108, +111,114,95,51,50,120,51,50,95,49,57,46,112,110,103,60,47,98,105,116,109, +97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97, +65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48, +45,103,114,97,121,95,51,50,120,51,50,95,49,57,46,112,110,103,60,47,98,105, +116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112, +62,80,97,114,97,108,108,101,108,32,67,111,111,114,100,105,110,97,116,101, +32,80,108,111,116,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60, +47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68, +95,67,79,78,68,95,80,76,79,84,95,67,72,79,73,67,69,83,34,62,10,32,32,32, +32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111, +117,114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108,111,114,95,51, +50,120,51,50,95,50,48,46,112,110,103,60,47,98,105,116,109,97,112,62,10, 32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82, -101,115,111,117,114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50, -120,51,50,95,49,56,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10, -32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,51,68,32,83,99,97,116, -116,101,114,32,80,108,111,116,60,47,116,111,111,108,116,105,112,62,10,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101, -61,34,73,68,77,95,80,67,80,34,62,10,32,32,32,32,32,32,60,98,105,116,109, -97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99, -112,112,36,99,111,108,111,114,95,51,50,120,51,50,95,49,57,46,112,110,103, +101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,103,114,97, +121,95,51,50,120,51,50,95,50,48,46,112,110,103,60,47,98,105,116,109,97, +112,50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,67,111, +110,100,105,116,105,111,110,97,108,32,80,108,111,116,60,47,116,111,111, +108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, +32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,101,112, +97,114,97,116,111,114,34,47,62,10,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73, +68,95,67,76,85,83,84,69,82,73,78,71,95,67,72,79,73,67,69,83,34,62,10,32, +32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101, +115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108,111, +114,95,51,50,120,51,50,95,51,56,46,112,110,103,60,47,98,105,116,109,97, +112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65, +112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45, +103,114,97,121,95,51,50,120,51,50,95,51,56,46,112,110,103,60,47,98,105, +116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112, +62,67,108,117,115,116,101,114,115,60,47,116,111,111,108,116,105,112,62, +10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,115,101,112,97,114,97,116,111, +114,34,47,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,77,79,82,65,78, +95,77,69,78,85,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71, +100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48, +48,48,45,99,111,108,111,114,95,51,50,120,51,50,95,50,49,46,112,110,103, 60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97, 112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99, -112,112,36,103,114,97,121,95,51,50,120,51,50,95,49,57,46,112,110,103,60, -47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108, -116,105,112,62,80,97,114,97,108,108,101,108,32,67,111,111,114,100,105,110, -97,116,101,32,80,108,111,116,60,47,116,111,111,108,116,105,112,62,10,32, -32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101, -61,34,73,68,95,67,79,78,68,95,80,76,79,84,95,67,72,79,73,67,69,83,34,62, -10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82, -101,115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51, -50,120,51,50,95,50,48,46,112,110,103,60,47,98,105,116,109,97,112,62,10, -32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82, -101,115,111,117,114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50, -120,51,50,95,50,48,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10, -32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,67,111,110,100,105, -116,105,111,110,97,108,32,80,108,111,116,60,47,116,111,111,108,116,105, +112,112,36,48,48,48,45,103,114,97,121,95,51,50,120,51,50,95,50,49,46,112, +110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111, +111,108,116,105,112,62,77,111,114,97,110,32,83,99,97,116,116,101,114,32, +80,108,111,116,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,77, +95,67,79,82,82,69,76,79,71,82,65,77,34,62,10,32,32,32,32,32,32,60,98,105, +116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115, +46,99,112,112,36,48,48,48,45,99,111,108,111,114,95,51,50,120,51,50,95,50, +50,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60, +98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114, +99,101,115,46,99,112,112,36,48,48,48,45,103,114,97,121,95,51,50,120,51, +50,95,50,50,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32, +32,32,32,60,116,111,111,108,116,105,112,62,83,112,97,116,105,97,108,32, +67,111,114,114,101,108,111,103,114,97,109,60,47,116,111,111,108,116,105, +112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32, +110,97,109,101,61,34,73,68,95,76,73,83,65,95,77,69,78,85,34,62,10,32,32, +32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115, +111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108,111,114, +95,51,50,120,51,50,95,50,51,46,112,110,103,60,47,98,105,116,109,97,112, +62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112, +112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,103, +114,97,121,95,51,50,120,51,50,95,50,51,46,112,110,103,60,47,98,105,116, +109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62, +67,108,117,115,116,101,114,32,77,97,112,115,60,47,116,111,111,108,116,105, 112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60, 111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,101,112,97,114,97, 116,111,114,34,47,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,67, -76,85,83,84,69,82,73,78,71,95,67,72,79,73,67,69,83,34,62,10,32,32,32,32, -32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95, -51,56,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32, -60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,51, -56,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32, -60,116,111,111,108,116,105,112,62,67,108,117,115,116,101,114,115,60,47, -116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116, -62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115, -101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101, -61,34,73,68,95,77,79,82,65,78,95,77,69,78,85,34,62,10,32,32,32,32,32,32, -60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114, -99,101,115,46,99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95,50, -49,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60, -98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114, -99,101,115,46,99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,50,49, -46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60, -116,111,111,108,116,105,112,62,77,111,114,97,110,32,83,99,97,116,116,101, -114,32,80,108,111,116,60,47,116,111,111,108,116,105,112,62,10,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73, -68,77,95,67,79,82,82,69,76,79,71,82,65,77,34,62,10,32,32,32,32,32,32,60, -98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99, -101,115,46,99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95,50,50, -46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98, -105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99, -101,115,46,99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,50,50,46, -112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116, -111,111,108,116,105,112,62,83,112,97,116,105,97,108,32,67,111,114,114,101, -108,111,103,114,97,109,60,47,116,111,111,108,116,105,112,62,10,32,32,32, -32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73, -68,95,76,73,83,65,95,77,69,78,85,34,62,10,32,32,32,32,32,32,60,98,105,116, -109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, -99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95,50,51,46,112,110, -103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109, -97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, -99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,50,51,46,112,110,103, -60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108, -116,105,112,62,67,108,117,115,116,101,114,32,77,97,112,115,60,47,116,111, -111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10, -32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,101, -112,97,114,97,116,111,114,34,47,62,10,32,32,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61, -34,73,68,95,83,72,79,87,95,84,73,77,69,95,67,72,79,79,83,69,82,34,62,10, -32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101, -115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51,50, +97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,83, +72,79,87,95,84,73,77,69,95,67,72,79,79,83,69,82,34,62,10,32,32,32,32,32, +32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, +114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108,111,114,95,51,50, 120,51,50,95,50,53,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32, 32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101, -115,111,117,114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50,120, -51,50,95,50,53,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32, -32,32,32,32,60,116,111,111,108,116,105,112,62,84,105,109,101,60,47,116, +115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,103,114,97,121, +95,51,50,120,51,50,95,50,53,46,112,110,103,60,47,98,105,116,109,97,112, +50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,84,105,109, +101,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106, +101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,77,95,76,73, +78,69,95,67,72,65,82,84,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97, +112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112, +112,36,48,48,48,45,99,111,108,111,114,95,51,50,120,51,50,95,50,54,46,112, +110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116, +109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115, +46,99,112,112,36,48,48,48,45,103,114,97,121,95,51,50,120,51,50,95,50,54, +46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60, +116,111,111,108,116,105,112,62,65,118,101,114,97,103,101,115,32,67,104, +97,114,116,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111, +98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,115,101,112,97,114,97,116,111,114,34,47,62,10,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108, +34,32,110,97,109,101,61,34,73,68,95,82,69,71,82,69,83,83,73,79,78,95,67, +76,65,83,83,73,67,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62, +71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36, +48,48,48,45,99,111,108,111,114,95,51,50,120,51,50,95,50,55,46,112,110,103, +60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97, +112,50,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99, +112,112,36,48,48,48,45,103,114,97,121,95,51,50,120,51,50,95,50,55,46,112, +110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32,60,116,111, +111,108,116,105,112,62,82,101,103,114,101,115,115,105,111,110,60,47,116, 111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62, -10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116, -111,111,108,34,32,110,97,109,101,61,34,73,68,77,95,76,73,78,69,95,67,72, -65,82,84,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100, -97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,99,111, -108,111,114,95,51,50,120,51,50,95,50,54,46,112,110,103,60,47,98,105,116, -109,97,112,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,50,62,71,100, -97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,103,114, -97,121,95,51,50,120,51,50,95,50,54,46,112,110,103,60,47,98,105,116,109, -97,112,50,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,65, -118,101,114,97,103,101,115,32,67,104,97,114,116,60,47,116,111,111,108,116, -105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,101,112,97,114, -97,116,111,114,34,47,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,82, -69,71,82,69,83,83,73,79,78,95,67,76,65,83,83,73,67,34,62,10,32,32,32,32, -32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,51,50,120,51,50,95, -50,55,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32, -60,98,105,116,109,97,112,50,62,71,100,97,65,112,112,82,101,115,111,117, -114,99,101,115,46,99,112,112,36,103,114,97,121,95,51,50,120,51,50,95,50, -55,46,112,110,103,60,47,98,105,116,109,97,112,50,62,10,32,32,32,32,32,32, -60,116,111,111,108,116,105,112,62,82,101,103,114,101,115,115,105,111,110, -60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101, -99,116,62,10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,84,111,111,108,66,97,114, -34,32,110,97,109,101,61,34,84,111,111,108,66,97,114,95,77,65,80,34,62,10, -32,32,32,32,60,115,116,121,108,101,62,119,120,84,66,95,70,76,65,84,124, -119,120,84,66,95,72,79,82,73,90,79,78,84,65,76,60,47,115,116,121,108,101, -62,10,32,32,32,32,60,98,105,116,109,97,112,115,105,122,101,62,50,52,44, -50,52,60,47,98,105,116,109,97,112,115,105,122,101,62,10,32,32,32,32,60, -109,97,114,103,105,110,115,62,49,44,49,60,47,109,97,114,103,105,110,115, -62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116, -111,111,108,34,32,110,97,109,101,61,34,73,68,95,83,69,76,69,67,84,95,76, -65,89,69,82,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100, -97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,99,111, +10,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,84,111,111,108,66,97,114,34,32,110,97, +109,101,61,34,84,111,111,108,66,97,114,95,77,65,80,34,62,10,32,32,32,32, +60,115,116,121,108,101,62,119,120,84,66,95,70,76,65,84,124,119,120,84,66, +95,72,79,82,73,90,79,78,84,65,76,60,47,115,116,121,108,101,62,10,32,32, +32,32,60,98,105,116,109,97,112,115,105,122,101,62,50,52,44,50,52,60,47, +98,105,116,109,97,112,115,105,122,101,62,10,32,32,32,32,60,109,97,114,103, +105,110,115,62,49,44,49,60,47,109,97,114,103,105,110,115,62,10,32,32,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108, +34,32,110,97,109,101,61,34,73,68,95,83,69,76,69,67,84,95,76,65,89,69,82, +34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112, +112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,99,111, 108,111,114,95,50,52,120,50,52,95,50,56,46,112,110,103,60,47,98,105,116, 109,97,112,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,83, 101,108,101,99,116,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32, @@ -58195,76 +58212,77 @@ static unsigned char xml_res_file_72[] = { 32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73, 68,95,83,69,76,69,67,84,95,73,78,86,69,82,84,34,62,10,32,32,32,32,32,32, 60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114, -99,101,115,46,99,112,112,36,99,111,108,111,114,95,50,52,120,50,52,95,50, -57,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60, -116,111,111,108,116,105,112,62,73,110,118,101,114,116,32,83,101,108,101, -99,116,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98, -106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,65,68, -68,95,76,65,89,69,82,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112, -62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112, -36,99,111,108,111,114,95,50,52,120,50,52,95,51,57,46,112,110,103,60,47, -98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105, -112,62,65,100,100,32,77,97,112,32,76,97,121,101,114,60,47,116,111,111,108, -116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32, -32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108, -34,32,110,97,109,101,61,34,73,68,95,69,68,73,84,95,76,65,89,69,82,34,62, -10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82, -101,115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95,50, -52,120,50,52,95,52,48,46,112,110,103,60,47,98,105,116,109,97,112,62,10, -32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,77,97,112,32,76,97, -121,101,114,32,83,101,116,116,105,110,103,115,60,47,116,111,111,108,116, -105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32, -60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,101,112,97,114, -97,116,111,114,34,47,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,90, -79,79,77,95,76,65,89,69,82,34,62,10,32,32,32,32,32,32,60,98,105,116,109, -97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99, -112,112,36,99,111,108,111,114,95,50,52,120,50,52,95,51,48,46,112,110,103, +99,101,115,46,99,112,112,36,48,48,48,45,99,111,108,111,114,95,50,52,120, +50,52,95,50,57,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32, +32,32,32,60,116,111,111,108,116,105,112,62,73,110,118,101,114,116,32,83, +101,108,101,99,116,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73, +68,95,65,68,68,95,76,65,89,69,82,34,62,10,32,32,32,32,32,32,60,98,105,116, +109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46, +99,112,112,36,48,48,48,45,99,111,108,111,114,95,50,52,120,50,52,95,51,57, +46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,116, +111,111,108,116,105,112,62,65,100,100,32,77,97,112,32,76,97,121,101,114, +60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101, +99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,69,68,73,84,95, +76,65,89,69,82,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71, +100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48, +48,48,45,99,111,108,111,114,95,50,52,120,50,52,95,52,48,46,112,110,103, 60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,116,111,111,108, -116,105,112,62,90,111,111,109,32,73,110,60,47,116,111,111,108,116,105,112, -62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110, -97,109,101,61,34,73,68,95,90,79,79,77,95,79,85,84,95,76,65,89,69,82,34, -62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112, -82,101,115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95, -50,52,120,50,52,95,51,49,46,112,110,103,60,47,98,105,116,109,97,112,62, -10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,90,111,111,109,32, -79,117,116,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111, -98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,80, -65,78,95,76,65,89,69,82,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97, -112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112, -112,36,99,111,108,111,114,95,50,52,120,50,52,95,51,50,46,112,110,103,60, +116,105,112,62,77,97,112,32,76,97,121,101,114,32,83,101,116,116,105,110, +103,115,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34, +32,110,97,109,101,61,34,73,68,95,90,79,79,77,95,76,65,89,69,82,34,62,10, +32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82,101, +115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108,111, +114,95,50,52,120,50,52,95,51,48,46,112,110,103,60,47,98,105,116,109,97, +112,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,90,111,111, +109,32,73,110,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47, +111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95, +90,79,79,77,95,79,85,84,95,76,65,89,69,82,34,62,10,32,32,32,32,32,32,60, +98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99, +101,115,46,99,112,112,36,48,48,48,45,99,111,108,111,114,95,50,52,120,50, +52,95,51,49,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32, +32,32,60,116,111,111,108,116,105,112,62,90,111,111,109,32,79,117,116,60, +47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99, +116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95,80,65,78,95,76,65, +89,69,82,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100, +97,65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48, +48,45,99,111,108,111,114,95,50,52,120,50,52,95,51,50,46,112,110,103,60, 47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,116,111,111,108,116, 105,112,62,80,97,110,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32, 60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116, 32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73, 68,95,69,88,84,69,78,84,95,76,65,89,69,82,34,62,10,32,32,32,32,32,32,60, 98,105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99, -101,115,46,99,112,112,36,99,111,108,111,114,95,50,52,120,50,52,95,51,51, -46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,116, -111,111,108,116,105,112,62,70,117,108,108,32,69,120,116,101,110,116,60, -47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99, -116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,115,101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110,97, -109,101,61,34,73,68,95,84,79,79,76,66,65,82,95,66,65,83,69,77,65,80,34, -62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112, -82,101,115,111,117,114,99,101,115,46,99,112,112,36,99,111,108,111,114,95, -50,52,120,50,52,95,51,52,46,112,110,103,60,47,98,105,116,109,97,112,62, -10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,66,97,115,101,32, -77,97,112,32,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47, -111,98,106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,116,111,111,108,34,32,110,97,109,101,61,34,73,68,95, -82,69,70,82,69,83,72,95,76,65,89,69,82,34,62,10,32,32,32,32,32,32,60,98, -105,116,109,97,112,62,71,100,97,65,112,112,82,101,115,111,117,114,99,101, -115,46,99,112,112,36,99,111,108,111,114,95,50,52,120,50,52,95,51,54,46, -112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,116, -111,111,108,116,105,112,62,82,101,102,114,101,115,104,60,47,116,111,111, -108,116,105,112,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32, -32,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101, -62,10}; +101,115,46,99,112,112,36,48,48,48,45,99,111,108,111,114,95,50,52,120,50, +52,95,51,51,46,112,110,103,60,47,98,105,116,109,97,112,62,10,32,32,32,32, +32,32,60,116,111,111,108,116,105,112,62,70,117,108,108,32,69,120,116,101, +110,116,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,60,47,111,98, +106,101,99,116,62,10,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,115,101,112,97,114,97,116,111,114,34,47,62,10,32,32,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34, +32,110,97,109,101,61,34,73,68,95,84,79,79,76,66,65,82,95,66,65,83,69,77, +65,80,34,62,10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97, +65,112,112,82,101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48, +45,99,111,108,111,114,95,50,52,120,50,52,95,51,52,46,112,110,103,60,47, +98,105,116,109,97,112,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105, +112,62,66,97,115,101,32,77,97,112,32,60,47,116,111,111,108,116,105,112, +62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,116,111,111,108,34,32,110, +97,109,101,61,34,73,68,95,82,69,70,82,69,83,72,95,76,65,89,69,82,34,62, +10,32,32,32,32,32,32,60,98,105,116,109,97,112,62,71,100,97,65,112,112,82, +101,115,111,117,114,99,101,115,46,99,112,112,36,48,48,48,45,99,111,108, +111,114,95,50,52,120,50,52,95,51,54,46,112,110,103,60,47,98,105,116,109, +97,112,62,10,32,32,32,32,32,32,60,116,111,111,108,116,105,112,62,82,101, +102,114,101,115,104,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32, +60,47,111,98,106,101,99,116,62,10,32,32,60,47,111,98,106,101,99,116,62, +10,60,47,114,101,115,111,117,114,99,101,62,10}; void GdaInitXmlResource() { @@ -58279,81 +58297,81 @@ void GdaInitXmlResource() else wxFileSystem::AddHandler(new wxMemoryFSHandler); } - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$about-geoda-logo.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$open-folder.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$save.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$ToolBarBitmaps_3.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$ToolBarBitmaps_3_disabled.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$selstyle1.png"), xml_res_file_5, xml_res_size_5, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$selstyle2.png"), xml_res_file_6, xml_res_size_6, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$dragdrop.png"), xml_res_file_7, xml_res_size_7, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$open-crs.png"), xml_res_file_8, xml_res_size_8, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$dialogs.xrc"), xml_res_file_9, xml_res_size_9, wxT("text/xml")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$8px_help.png"), xml_res_file_10, xml_res_size_10, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$data_viewer_dialogs.xrc"), xml_res_file_11, xml_res_size_11, wxT("text/xml")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$menus.xrc"), xml_res_file_12, xml_res_size_12, wxT("text/xml")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_01.png"), xml_res_file_13, xml_res_size_13, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_02.png"), xml_res_file_14, xml_res_size_14, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_02.png"), xml_res_file_15, xml_res_size_15, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_03.png"), xml_res_file_16, xml_res_size_16, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_03.png"), xml_res_file_17, xml_res_size_17, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_04.png"), xml_res_file_18, xml_res_size_18, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_04.png"), xml_res_file_19, xml_res_size_19, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_41.png"), xml_res_file_20, xml_res_size_20, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_41.png"), xml_res_file_21, xml_res_size_21, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_05.png"), xml_res_file_22, xml_res_size_22, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_05.png"), xml_res_file_23, xml_res_size_23, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_09.png"), xml_res_file_24, xml_res_size_24, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_09.png"), xml_res_file_25, xml_res_size_25, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_10.png"), xml_res_file_26, xml_res_size_26, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_10.png"), xml_res_file_27, xml_res_size_27, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_11.png"), xml_res_file_28, xml_res_size_28, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_11.png"), xml_res_file_29, xml_res_size_29, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_12.png"), xml_res_file_30, xml_res_size_30, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_12.png"), xml_res_file_31, xml_res_size_31, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_13.png"), xml_res_file_32, xml_res_size_32, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_13.png"), xml_res_file_33, xml_res_size_33, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_14.png"), xml_res_file_34, xml_res_size_34, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_14.png"), xml_res_file_35, xml_res_size_35, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_15.png"), xml_res_file_36, xml_res_size_36, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_15.png"), xml_res_file_37, xml_res_size_37, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_16.png"), xml_res_file_38, xml_res_size_38, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_16.png"), xml_res_file_39, xml_res_size_39, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_17.png"), xml_res_file_40, xml_res_size_40, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_17.png"), xml_res_file_41, xml_res_size_41, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_18.png"), xml_res_file_42, xml_res_size_42, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_18.png"), xml_res_file_43, xml_res_size_43, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_19.png"), xml_res_file_44, xml_res_size_44, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_19.png"), xml_res_file_45, xml_res_size_45, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_20.png"), xml_res_file_46, xml_res_size_46, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_20.png"), xml_res_file_47, xml_res_size_47, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_38.png"), xml_res_file_48, xml_res_size_48, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_38.png"), xml_res_file_49, xml_res_size_49, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_21.png"), xml_res_file_50, xml_res_size_50, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_21.png"), xml_res_file_51, xml_res_size_51, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_22.png"), xml_res_file_52, xml_res_size_52, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_22.png"), xml_res_file_53, xml_res_size_53, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_23.png"), xml_res_file_54, xml_res_size_54, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_23.png"), xml_res_file_55, xml_res_size_55, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_25.png"), xml_res_file_56, xml_res_size_56, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_25.png"), xml_res_file_57, xml_res_size_57, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_26.png"), xml_res_file_58, xml_res_size_58, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_26.png"), xml_res_file_59, xml_res_size_59, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_32x32_27.png"), xml_res_file_60, xml_res_size_60, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$gray_32x32_27.png"), xml_res_file_61, xml_res_size_61, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_24x24_28.png"), xml_res_file_62, xml_res_size_62, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_24x24_29.png"), xml_res_file_63, xml_res_size_63, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_24x24_39.png"), xml_res_file_64, xml_res_size_64, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_24x24_40.png"), xml_res_file_65, xml_res_size_65, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_24x24_30.png"), xml_res_file_66, xml_res_size_66, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_24x24_31.png"), xml_res_file_67, xml_res_size_67, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_24x24_32.png"), xml_res_file_68, xml_res_size_68, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_24x24_33.png"), xml_res_file_69, xml_res_size_69, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_24x24_34.png"), xml_res_file_70, xml_res_size_70, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$color_24x24_36.png"), xml_res_file_71, xml_res_size_71, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$toolbar.xrc"), xml_res_file_72, xml_res_size_72, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/GdaAppResources.cpp$dialogs.xrc")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/GdaAppResources.cpp$data_viewer_dialogs.xrc")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/GdaAppResources.cpp$menus.xrc")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/GdaAppResources.cpp$toolbar.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-about-geoda-logo.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-open-folder.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-save.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-ToolBarBitmaps_3.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-ToolBarBitmaps_3_disabled.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-selstyle1.png"), xml_res_file_5, xml_res_size_5, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-selstyle2.png"), xml_res_file_6, xml_res_size_6, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-dragdrop.png"), xml_res_file_7, xml_res_size_7, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-open-crs.png"), xml_res_file_8, xml_res_size_8, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-dialogs.xrc"), xml_res_file_9, xml_res_size_9, wxT("text/xml")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-8px_help.png"), xml_res_file_10, xml_res_size_10, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-data_viewer_dialogs.xrc"), xml_res_file_11, xml_res_size_11, wxT("text/xml")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-menus.xrc"), xml_res_file_12, xml_res_size_12, wxT("text/xml")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_01.png"), xml_res_file_13, xml_res_size_13, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_02.png"), xml_res_file_14, xml_res_size_14, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_02.png"), xml_res_file_15, xml_res_size_15, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_03.png"), xml_res_file_16, xml_res_size_16, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_03.png"), xml_res_file_17, xml_res_size_17, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_04.png"), xml_res_file_18, xml_res_size_18, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_04.png"), xml_res_file_19, xml_res_size_19, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_41.png"), xml_res_file_20, xml_res_size_20, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_41.png"), xml_res_file_21, xml_res_size_21, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_05.png"), xml_res_file_22, xml_res_size_22, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_05.png"), xml_res_file_23, xml_res_size_23, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_09.png"), xml_res_file_24, xml_res_size_24, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_09.png"), xml_res_file_25, xml_res_size_25, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_10.png"), xml_res_file_26, xml_res_size_26, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_10.png"), xml_res_file_27, xml_res_size_27, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_11.png"), xml_res_file_28, xml_res_size_28, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_11.png"), xml_res_file_29, xml_res_size_29, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_12.png"), xml_res_file_30, xml_res_size_30, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_12.png"), xml_res_file_31, xml_res_size_31, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_13.png"), xml_res_file_32, xml_res_size_32, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_13.png"), xml_res_file_33, xml_res_size_33, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_14.png"), xml_res_file_34, xml_res_size_34, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_14.png"), xml_res_file_35, xml_res_size_35, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_15.png"), xml_res_file_36, xml_res_size_36, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_15.png"), xml_res_file_37, xml_res_size_37, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_16.png"), xml_res_file_38, xml_res_size_38, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_16.png"), xml_res_file_39, xml_res_size_39, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_17.png"), xml_res_file_40, xml_res_size_40, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_17.png"), xml_res_file_41, xml_res_size_41, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_18.png"), xml_res_file_42, xml_res_size_42, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_18.png"), xml_res_file_43, xml_res_size_43, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_19.png"), xml_res_file_44, xml_res_size_44, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_19.png"), xml_res_file_45, xml_res_size_45, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_20.png"), xml_res_file_46, xml_res_size_46, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_20.png"), xml_res_file_47, xml_res_size_47, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_38.png"), xml_res_file_48, xml_res_size_48, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_38.png"), xml_res_file_49, xml_res_size_49, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_21.png"), xml_res_file_50, xml_res_size_50, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_21.png"), xml_res_file_51, xml_res_size_51, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_22.png"), xml_res_file_52, xml_res_size_52, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_22.png"), xml_res_file_53, xml_res_size_53, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_23.png"), xml_res_file_54, xml_res_size_54, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_23.png"), xml_res_file_55, xml_res_size_55, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_25.png"), xml_res_file_56, xml_res_size_56, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_25.png"), xml_res_file_57, xml_res_size_57, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_26.png"), xml_res_file_58, xml_res_size_58, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_26.png"), xml_res_file_59, xml_res_size_59, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_32x32_27.png"), xml_res_file_60, xml_res_size_60, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-gray_32x32_27.png"), xml_res_file_61, xml_res_size_61, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_24x24_28.png"), xml_res_file_62, xml_res_size_62, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_24x24_29.png"), xml_res_file_63, xml_res_size_63, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_24x24_39.png"), xml_res_file_64, xml_res_size_64, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_24x24_40.png"), xml_res_file_65, xml_res_size_65, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_24x24_30.png"), xml_res_file_66, xml_res_size_66, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_24x24_31.png"), xml_res_file_67, xml_res_size_67, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_24x24_32.png"), xml_res_file_68, xml_res_size_68, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_24x24_33.png"), xml_res_file_69, xml_res_size_69, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_24x24_34.png"), xml_res_file_70, xml_res_size_70, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-color_24x24_36.png"), xml_res_file_71, xml_res_size_71, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GdaAppResources.cpp$000-toolbar.xrc"), xml_res_file_72, xml_res_size_72, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/GdaAppResources.cpp$000-dialogs.xrc")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/GdaAppResources.cpp$000-data_viewer_dialogs.xrc")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/GdaAppResources.cpp$000-menus.xrc")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/GdaAppResources.cpp$000-toolbar.xrc")); } From e03d8af27dd030ed078a5a5343393f78ee67dd51 Mon Sep 17 00:00:00 2001 From: lixun910 Date: Tue, 20 Aug 2019 21:03:22 -0700 Subject: [PATCH 41/60] update to gtk-3.0 on ubuntu --- BuildTools/ubuntu/build_bionic.sh | 39 ++++++++++++++++++++++++++----- GeoDamake.bionic.opt | 2 +- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/BuildTools/ubuntu/build_bionic.sh b/BuildTools/ubuntu/build_bionic.sh index 9a8ec8a34..a614f219f 100755 --- a/BuildTools/ubuntu/build_bionic.sh +++ b/BuildTools/ubuntu/build_bionic.sh @@ -12,10 +12,10 @@ NODEBUG=1 echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" echo "% Install prerequisit ?" echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" -read -p "Install pre-requisites for development: cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlibg-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkit-dev libssl-dev? [y/n]" -n 1 -r +read -p "Install pre-requisites for development: cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlibg-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkitgtk-dev libssl-dev? [y/n]" -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then - sudo apt install cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlib1g-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkit2gtk-dev libssl-dev + sudo apt install cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlib1g-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkitgtk-dev libssl-dev fi @@ -202,7 +202,34 @@ install_library proj-4.8.0 https://s3.us-east-2.amazonaws.com/geodabuild/proj-4. ######################################################################### # install FreeXL ######################################################################### -install_library freexl-1.0.0f https://s3.us-east-2.amazonaws.com/geodabuild/freexl-1.0.0f.tar.gz libfreexl.a +#install_library freexl-1.0.0f https://s3.us-east-2.amazonaws.com/geodabuild/freexl-1.0.0f.tar.gz libfreexl.a +LIB_NAME=freexl-1.0.0f +LIB_URL=https://s3.us-east-2.amazonaws.com/geodabuild/freexl-1.0.0f.tar.gz +LIB_CHECKER=libfreexl.a +LIB_FILENAME=$LIB_NAME.tar.gz +echo $LIB_FILENAME +cd $DOWNLOAD_HOME + +if ! [ -f "$LIB_FILENAME" ] ; then + curl -O $LIB_URL +fi + +if ! [ -d "$LIB_NAME" ]; then + tar -xf $LIB_FILENAME +fi + +cd $DOWNLOAD_HOME/$LIB_NAME +if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + cd $LIB_NAME + ./configure CFLAGS="-m64" CXXFLAGS="-m64 -I$PREFIX/include" LDFLAGS="-m64 -L$PREFIX/lib -liconv -L/usr/lib/x86_64-linux-gnu" --prefix=$PREFIX + $MAKER + make install +fi + +if ! [ -f "$PREFIX/lib/$LIB_CHECKER" ] ; then + echo "Error! Exit" + exit +fi ######################################################################### # install SQLite @@ -613,9 +640,9 @@ echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" # sudo apt-get install libgtk2.0-dev libglu1-mesa-dev libgl1-mesa-dev { LIB_NAME=wxWidgets-3.1.0 - LIB_URL="https://s3.us-east-2.amazonaws.com/geodabuild/wxWidgets-3.1.0.tar.bz2" + LIB_URL="https://geodabuild.s3.us-east-2.amazonaws.com/wxWidgets-3.1.0.tar.bz2" - LIB_FILENAME=$(basename "$LIB_URL" ".tar") + LIB_FILENAME=$(basename "$LIB_URL" ".tar.bz2") LIB_CHECKER=wx-config echo $LIB_FILENAME @@ -633,7 +660,7 @@ echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" cp -rf $GEODA_HOME/dep/$LIB_NAME/* . chmod +x configure chmod +x src/stc/gen_iface.py - ./configure --with-gtk=2 --disable-optimise --disable-shared --disable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX + ./configure --with-gtk=3 --disable-optimise --disable-shared --disable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX $MAKER make install cd .. diff --git a/GeoDamake.bionic.opt b/GeoDamake.bionic.opt index 117e441fd..f407f4889 100644 --- a/GeoDamake.bionic.opt +++ b/GeoDamake.bionic.opt @@ -19,7 +19,7 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ - -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkitgtk-1.0 -lEGL + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkitgtk-3.0 -lEGL # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. From 274597b22c6c36d12874adf0e6c8936865e2b25d Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 20 Aug 2019 21:41:22 -0700 Subject: [PATCH 42/60] #1932 ubuntu only issue: basemap transparency and SaveAsImage behave differently --- DialogTools/ConnectDatasourceDlg.cpp | 2 +- DialogTools/VarGroupingEditorDlg.cpp | 3 ++- Explore/MapNewView.cpp | 5 ++++- TemplateFrame.cpp | 2 +- TemplateLegend.cpp | 10 ++++++++-- rc/data_viewer_dialogs.xrc | 1 + 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/DialogTools/ConnectDatasourceDlg.cpp b/DialogTools/ConnectDatasourceDlg.cpp index ce0a9f792..c250eccae 100644 --- a/DialogTools/ConnectDatasourceDlg.cpp +++ b/DialogTools/ConnectDatasourceDlg.cpp @@ -1109,7 +1109,7 @@ void ConnectDatasourceDlg::AddSampleItem(wxBoxSizer* sizer, wxString lbl_ds_name = ds_url; lbl_ds_name = GenUtils::PadTrim(lbl_ds_name, 50, false); wxHyperlinkCtrl* filepath; - filepath = new wxHyperlinkCtrl(scrl, wxID_ANY, ds_url, ds_url); + filepath = new wxHyperlinkCtrl(scrl, wxID_ANY, ds_url, ds_url, wxDefaultPosition, wxDefaultSize, wxHL_ALIGN_LEFT); filepath->SetFont(*GdaConst::extra_small_font); filepath->SetForegroundColour(wxColour(70,70,70)); filepath->SetToolTip(ds_url); diff --git a/DialogTools/VarGroupingEditorDlg.cpp b/DialogTools/VarGroupingEditorDlg.cpp index 5679ca7af..783f2d918 100644 --- a/DialogTools/VarGroupingEditorDlg.cpp +++ b/DialogTools/VarGroupingEditorDlg.cpp @@ -173,7 +173,8 @@ void VarGroupingEditorDlg::CreateControls() group_button = wxDynamicCast(FindWindow(XRCID("ID_CREATE_GRP_BUTTON")), wxButton); ungroup_button = wxDynamicCast(FindWindow(XRCID("ID_UNGROUP_BUTTON")), wxButton); - ungrouped_list = wxDynamicCast(FindWindow(XRCID("ID_UNGROUPED_LIST")), wxListCtrl); + ungrouped_list = wxDynamicCast(FindWindow(XRCID("ID_UNGROUPED_LIST")), wxListCtrl); + ungrouped_list->SetBackgroundColour(*wxWHITE); ungrouped_list->AppendColumn(_("Name")); ungrouped_list->SetColumnWidth(0, 120); ungrouped_list->AppendColumn(_("Type")); diff --git a/Explore/MapNewView.cpp b/Explore/MapNewView.cpp index 1774be439..84ad1a8af 100644 --- a/Explore/MapNewView.cpp +++ b/Explore/MapNewView.cpp @@ -964,9 +964,12 @@ void MapCanvas::DrawLayer1() if (layer1_bm == NULL) return; wxMemoryDC dc(*layer1_bm); - dc.Clear(); if (isDrawBasemap) { + dc.Clear(); dc.DrawBitmap(*basemap_bm,0,0); + } else { + dc.SetBackground(wxBrush(canvas_background_color)); + dc.Clear(); } TranslucentLayer0(dc); dc.SelectObject(wxNullBitmap); diff --git a/TemplateFrame.cpp b/TemplateFrame.cpp index 009b1fe0b..bd408280c 100644 --- a/TemplateFrame.cpp +++ b/TemplateFrame.cpp @@ -727,7 +727,7 @@ void TemplateFrame::OnLegendBackgroundColor(wxCommandEvent& event) if (dialog.ShowModal() == wxID_OK) { wxColourData retData = dialog.GetColourData(); col = retData.GetColour(); - template_legend->SetBackgroundColour(col); + template_legend->legend_background_color = col; template_legend->Refresh(); } UpdateOptionMenuItems(); diff --git a/TemplateLegend.cpp b/TemplateLegend.cpp index 961a81ee7..05e1729cc 100644 --- a/TemplateLegend.cpp +++ b/TemplateLegend.cpp @@ -454,6 +454,12 @@ void TemplateLegend::OnDraw(wxDC& dc) { if (!template_canvas) return; + wxPen bg_pen(legend_background_color); + dc.SetPen(bg_pen); + wxBrush bg_brush(legend_background_color); + dc.SetBrush(bg_brush); + wxSize sz = this->GetSize(); + dc.DrawRectangle(0, 0, sz.GetWidth(), sz.GetHeight()); dc.SetFont(*GdaConst::small_font); wxString title = template_canvas->GetCategoriesTitle(); @@ -540,8 +546,8 @@ int TemplateLegend::GetDrawingWidth() max_width = lbl->getWidth(); } } -#ifdef __WIN32__ - max_width = max_width * 1.2; +#if defined(__WIN32__) ||defined(__linux__) + max_width = max_width * 1.5; #endif return max_width; } diff --git a/rc/data_viewer_dialogs.xrc b/rc/data_viewer_dialogs.xrc index a0b0afdae..e48a86da0 100644 --- a/rc/data_viewer_dialogs.xrc +++ b/rc/data_viewer_dialogs.xrc @@ -594,6 +594,7 @@ 60,100d + #FFFFFF wxEXPAND From 3afcdeb63fb1bc4930711810879d9e97fc401e95 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Wed, 21 Aug 2019 11:56:29 -0700 Subject: [PATCH 43/60] #1932 update UI for ubuntu (only) --- DialogTools/AbstractClusterDlg.cpp | 21 +- DialogTools/HClusterDlg.cpp | 14 +- DialogTools/HDBScanDlg.cpp | 20 +- DialogTools/KMeansDlg.cpp | 23 +- DialogTools/MDSDlg.cpp | 5 +- DialogTools/MaxpDlg.cpp | 26 +- DialogTools/PCASettingsDlg.cpp | 3 +- DialogTools/RedcapDlg.cpp | 18 +- DialogTools/SkaterDlg.cpp | 16 +- DialogTools/SpectralClusteringDlg.cpp | 33 +- DialogTools/VarGroupingEditorDlg.cpp | 2784 ++++++++++++------------- 11 files changed, 1451 insertions(+), 1512 deletions(-) diff --git a/DialogTools/AbstractClusterDlg.cpp b/DialogTools/AbstractClusterDlg.cpp index fdd6d4aa3..fc871c51e 100644 --- a/DialogTools/AbstractClusterDlg.cpp +++ b/DialogTools/AbstractClusterDlg.cpp @@ -214,8 +214,7 @@ bool AbstractClusterDlg::CheckConnectivity(GalWeight* gw) void AbstractClusterDlg::AddSimpleInputCtrls(wxPanel *panel, wxBoxSizer* vbox, bool integer_only) { - wxStaticText* st = new wxStaticText (panel, wxID_ANY, _("Select Variables"), - wxDefaultPosition, wxDefaultSize); + wxStaticText* st = new wxStaticText (panel, wxID_ANY, _("Select Variables")); combo_var = new wxListBox(panel, wxID_ANY, wxDefaultPosition, wxSize(250,250), 0, NULL, @@ -233,8 +232,7 @@ void AbstractClusterDlg::AddSimpleInputCtrls(wxPanel *panel, wxBoxSizer* vbox, void AbstractClusterDlg::AddInputCtrls(wxPanel *panel, wxBoxSizer* vbox, bool show_auto_button) { - wxStaticText* st = new wxStaticText (panel, wxID_ANY, _("Select Variables"), - wxDefaultPosition, wxDefaultSize); + wxStaticText* st = new wxStaticText (panel, wxID_ANY, _("Select Variables")); combo_var = new wxListBox(panel, wxID_ANY, wxDefaultPosition, wxSize(250,250), 0, NULL, @@ -251,8 +249,7 @@ void AbstractClusterDlg::AddInputCtrls(wxPanel *panel, wxBoxSizer* vbox, hbox_c->Add(m_use_centroids, 0); hbox_c->Add(auto_btn, 0); - wxStaticText* st_wc = new wxStaticText (panel, wxID_ANY, _("Weighting:"), - wxDefaultPosition, wxDefaultSize); + wxStaticText* st_wc = new wxStaticText (panel, wxID_ANY, _("Weighting:")); wxStaticText* st_w0 = new wxStaticText (panel, wxID_ANY, "0"); wxStaticText* st_w1 = new wxStaticText (panel, wxID_ANY, "1"); m_weight_centroids = new wxSlider(panel, wxID_ANY, 100, 0, 100, @@ -451,12 +448,11 @@ void AbstractClusterDlg::OnAutoWeightCentroids(wxCommandEvent& event) void AbstractClusterDlg::AddTransformation(wxPanel *panel, wxFlexGridSizer* gbox) { - wxStaticText* st14 = new wxStaticText(panel, wxID_ANY, _("Transformation:"), - wxDefaultPosition, wxSize(120,-1)); + wxStaticText* st14 = new wxStaticText(panel, wxID_ANY, _("Transformation:")); const wxString _transform[4] = {"Raw", "Demean", "Standardize (Z)", "Standardize (MAD)"}; combo_tranform = new wxChoice(panel, wxID_ANY, wxDefaultPosition, - wxSize(120,-1), 4, _transform); + wxSize(100,-1), 4, _transform); combo_tranform->SetSelection(2); gbox->Add(st14, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(combo_tranform, 1, wxEXPAND); @@ -466,9 +462,7 @@ void AbstractClusterDlg::AddNumberOfClusterCtrl(wxPanel *panel, wxFlexGridSizer* gbox, bool allow_dropdown) { - wxStaticText* st1 = new wxStaticText(panel, wxID_ANY, - _("Number of Clusters:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st1 = new wxStaticText(panel, wxID_ANY, _("Number of Clusters:")); combo_n = new wxComboBox(panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(200,-1), 0, NULL); max_n_clusters = num_obs < 100 ? num_obs : 100; @@ -484,8 +478,7 @@ void AbstractClusterDlg::AddNumberOfClusterCtrl(wxPanel *panel, void AbstractClusterDlg::AddMinBound(wxPanel *panel, wxFlexGridSizer* gbox, bool show_checkbox) { - wxStaticText* st = new wxStaticText(panel, wxID_ANY, _("Minimum Bound:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st = new wxStaticText(panel, wxID_ANY, _("Minimum Bound:")); wxBoxSizer *hbox0 = new wxBoxSizer(wxHORIZONTAL); chk_floor = new wxCheckBox(panel, wxID_ANY, ""); diff --git a/DialogTools/HClusterDlg.cpp b/DialogTools/HClusterDlg.cpp index fd7c014c7..f10975c53 100644 --- a/DialogTools/HClusterDlg.cpp +++ b/DialogTools/HClusterDlg.cpp @@ -149,8 +149,7 @@ void HClusterDlg::CreateControls() // Transformation AddTransformation(panel, gbox); - wxStaticText* st12 = new wxStaticText(panel, wxID_ANY, _("Method:"), - wxDefaultPosition, wxSize(120,-1)); + wxStaticText* st12 = new wxStaticText(panel, wxID_ANY, _("Method:")); wxString choices12[] = {"Single-linkage","Ward's-linkage", "Complete-linkage","Average-linkage"}; wxChoice* box12 = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(120,-1), 4, choices12); @@ -158,8 +157,7 @@ void HClusterDlg::CreateControls() gbox->Add(st12, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(box12, 1, wxEXPAND); - wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:"), - wxDefaultPosition, wxSize(120,-1)); + wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:")); wxString choices13[] = {"Euclidean", "Manhattan"}; wxChoice* box13 = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(120,-1), 2, choices13); box13->SetSelection(0); @@ -167,15 +165,13 @@ void HClusterDlg::CreateControls() gbox->Add(box13, 1, wxEXPAND); - wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Spatial Constraint:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Spatial Constraint:")); chk_contiguity = new wxCheckBox(panel, wxID_ANY, ""); gbox->Add(st17, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(chk_contiguity, 1, wxEXPAND); chk_contiguity->Disable(); - wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, "", - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, ""); combo_weights = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1)); gbox->Add(st16, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); @@ -192,7 +188,7 @@ void HClusterDlg::CreateControls() // Output wxFlexGridSizer* gbox1 = new wxFlexGridSizer(5,2,5,0); - wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, _("Save Cluster in Field:"), wxDefaultPosition, wxDefaultSize); + wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, _("Save Cluster in Field:")); wxTextCtrl *box3 = new wxTextCtrl(panel, wxID_ANY, "CL", wxDefaultPosition, wxSize(120,-1)); gbox1->Add(st3, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox1->Add(box3, 1, wxALIGN_CENTER_VERTICAL); diff --git a/DialogTools/HDBScanDlg.cpp b/DialogTools/HDBScanDlg.cpp index 28ac7c8a9..858d23491 100644 --- a/DialogTools/HDBScanDlg.cpp +++ b/DialogTools/HDBScanDlg.cpp @@ -130,8 +130,7 @@ void HDBScanDlg::CreateControls() // Parameters wxFlexGridSizer* gbox = new wxFlexGridSizer(10,2,5,0); - wxStaticText* st2 = new wxStaticText(panel, wxID_ANY, _("Min cluster size:"), - wxDefaultPosition, wxDefaultSize); + wxStaticText* st2 = new wxStaticText(panel, wxID_ANY, _("Min cluster size:")); wxTextValidator validator(wxFILTER_INCLUDE_CHAR_LIST); wxArrayString list; wxString valid_chars(".0123456789"); @@ -144,20 +143,17 @@ void HDBScanDlg::CreateControls() gbox->Add(st2, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(m_minpts, 1, wxEXPAND); - wxStaticText* st14 = new wxStaticText(panel, wxID_ANY, _("Min samples:"), - wxDefaultPosition, wxDefaultSize); + wxStaticText* st14 = new wxStaticText(panel, wxID_ANY, _("Min samples:")); m_minsamples = new wxTextCtrl(panel, wxID_ANY, "10", wxDefaultPosition, wxSize(120, -1),0,validator); gbox->Add(st14, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(m_minsamples, 1, wxEXPAND); - wxStaticText* st15 = new wxStaticText(panel, wxID_ANY, _("Alpha:"), - wxDefaultPosition, wxDefaultSize); + wxStaticText* st15 = new wxStaticText(panel, wxID_ANY, _("Alpha:")); m_ctl_alpha = new wxTextCtrl(panel, wxID_ANY, "1.0", wxDefaultPosition, wxSize(120, -1),0,validator); gbox->Add(st15, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(m_ctl_alpha, 1, wxEXPAND); - wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, _("Method of selecting clusters:"), - wxDefaultPosition, wxSize(180,-1)); + wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, _("Method of selecting clusters:")); wxString choices16[] = {"Excess of Mass", "Leaf"}; m_select_method = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(138,-1), 2, choices16); m_select_method->SetSelection(0); @@ -165,8 +161,7 @@ void HDBScanDlg::CreateControls() gbox->Add(m_select_method, 1, wxEXPAND); - wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Allow a single cluster:"), - wxDefaultPosition, wxSize(138,-1)); + wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Allow a single cluster:")); chk_allowsinglecluster = new wxCheckBox(panel, wxID_ANY, ""); gbox->Add(st17, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(chk_allowsinglecluster, 1, wxEXPAND); @@ -174,8 +169,7 @@ void HDBScanDlg::CreateControls() // Transformation AddTransformation(panel, gbox); - wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:"), - wxDefaultPosition, wxSize(120,-1)); + wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:")); wxString choices13[] = {"Euclidean", "Manhattan"}; wxChoice* box13 = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(120,-1), 2, choices13); box13->SetSelection(0); @@ -199,7 +193,7 @@ void HDBScanDlg::CreateControls() gbox1->Add(m_cluster, 1, wxEXPAND); */ - wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, _("Save Cluster in Field:"), wxDefaultPosition, wxDefaultSize); + wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, _("Save Cluster in Field:")); wxTextCtrl *box3 = new wxTextCtrl(panel, wxID_ANY, "CL", wxDefaultPosition, wxSize(120,-1)); gbox1->Add(st3, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox1->Add(box3, 1, wxALIGN_CENTER_VERTICAL); diff --git a/DialogTools/KMeansDlg.cpp b/DialogTools/KMeansDlg.cpp index 27b7f20da..bd2533a00 100644 --- a/DialogTools/KMeansDlg.cpp +++ b/DialogTools/KMeansDlg.cpp @@ -91,9 +91,7 @@ void KClusterDlg::CreateControls() AddTransformation(panel, gbox); // Initialization Method - wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, - _("Initialization Method:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, _("Initialization Method:")); wxString choices16[] = {"KMeans++", "Random"}; combo_method = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1), 2, choices16); @@ -108,16 +106,12 @@ void KClusterDlg::CreateControls() combo_method->SetSelection(1); // use Random if hide init } - wxStaticText* st10 = new wxStaticText(panel, wxID_ANY, - _("Initialization Re-runs:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st10 = new wxStaticText(panel, wxID_ANY, _("Initialization Re-runs:")); m_pass = new wxTextCtrl(panel, wxID_ANY, "150", wxDefaultPosition, wxSize(200,-1)); gbox->Add(st10, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(m_pass, 1, wxEXPAND); - wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, - _("Use specified seed:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Use specified seed:")); wxBoxSizer *hbox17 = new wxBoxSizer(wxHORIZONTAL); chk_seed = new wxCheckBox(panel, wxID_ANY, ""); seedButton = new wxButton(panel, wxID_OK, _("Change Seed")); @@ -133,9 +127,7 @@ void KClusterDlg::CreateControls() seedButton->Enable(); } - wxStaticText* st11 = new wxStaticText(panel, wxID_ANY, - _("Maximum Iterations:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st11 = new wxStaticText(panel, wxID_ANY, _("Maximum Iterations:")); m_iterations = new wxTextCtrl(panel, wxID_ANY, "1000", wxDefaultPosition, wxSize(200,-1)); gbox->Add(st11, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(m_iterations, 1, wxEXPAND); @@ -145,9 +137,7 @@ void KClusterDlg::CreateControls() m_iterations->Hide(); } - wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, - _("Distance Function:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:")); wxString choices13[] = {"Euclidean", "Manhattan"}; m_distance = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1), 2, choices13); m_distance->SetSelection(0); @@ -164,8 +154,7 @@ void KClusterDlg::CreateControls() // Output - wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, _("Save Cluster in Field:"), - wxDefaultPosition, wxDefaultSize); + wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, _("Save Cluster in Field:")); m_textbox = new wxTextCtrl(panel, wxID_ANY, "CL", wxDefaultPosition, wxSize(158,-1)); wxStaticBoxSizer *hbox1 = new wxStaticBoxSizer(wxHORIZONTAL, panel, _("Output:")); //wxBoxSizer *hbox1 = new wxBoxSizer(wxHORIZONTAL); diff --git a/DialogTools/MDSDlg.cpp b/DialogTools/MDSDlg.cpp index 33434ad4b..c21503836 100644 --- a/DialogTools/MDSDlg.cpp +++ b/DialogTools/MDSDlg.cpp @@ -66,7 +66,7 @@ void MDSDlg::CreateControls() wxFlexGridSizer* gbox = new wxFlexGridSizer(5,2,10,0); // power iteration option approximation - wxStaticText* st15 = new wxStaticText(panel, wxID_ANY, _("Use Power Iteration:"), wxDefaultPosition, wxSize(134,-1)); + wxStaticText* st15 = new wxStaticText(panel, wxID_ANY, _("Use Power Iteration:")); wxBoxSizer *hbox15 = new wxBoxSizer(wxHORIZONTAL); chk_poweriteration = new wxCheckBox(panel, wxID_ANY, ""); lbl_poweriteration = new wxStaticText(panel, wxID_ANY, _("# Max Iteration:")); @@ -86,8 +86,7 @@ void MDSDlg::CreateControls() gbox->Add(hbox15, 1, wxEXPAND); - wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:"), - wxDefaultPosition, wxSize(134,-1)); + wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:")); wxString choices13[] = {"Euclidean", "Manhattan"}; m_distance = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1), 2, choices13); m_distance->SetSelection(0); diff --git a/DialogTools/MaxpDlg.cpp b/DialogTools/MaxpDlg.cpp index 2f2ee1257..d9c11e09d 100644 --- a/DialogTools/MaxpDlg.cpp +++ b/DialogTools/MaxpDlg.cpp @@ -82,7 +82,7 @@ void MaxpDlg::CreateControls() wxFlexGridSizer* gbox = new wxFlexGridSizer(9,2,5,0); // Weights Control - wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, _("Weights:"), wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, _("Weights:")); combo_weights = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1)); gbox->Add(st16, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(combo_weights, 1, wxEXPAND); @@ -91,14 +91,13 @@ void MaxpDlg::CreateControls() AddMinBound(panel, gbox); // Min regions - st_minregions = new wxStaticText(panel, wxID_ANY, _("Min # per Region:"), wxDefaultPosition, wxSize(128,-1)); + st_minregions = new wxStaticText(panel, wxID_ANY, _("Min # per Region:")); txt_minregions = new wxTextCtrl(panel, wxID_ANY, "", wxDefaultPosition, wxSize(200,-1)); txt_minregions->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); gbox->Add(st_minregions, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(txt_minregions, 1, wxEXPAND); - wxStaticText* st18 = new wxStaticText(panel, wxID_ANY, _("Initial Groups:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st18 = new wxStaticText(panel, wxID_ANY, _("Initial Groups:")); wxBoxSizer *hbox18 = new wxBoxSizer(wxHORIZONTAL); chk_lisa = new wxCheckBox(panel, wxID_ANY, ""); combo_lisa = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(160,-1)); @@ -111,24 +110,22 @@ void MaxpDlg::CreateControls() InitLISACombobox(); - wxStaticText* st11 = new wxStaticText(panel, wxID_ANY, _("# Iterations:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st11 = new wxStaticText(panel, wxID_ANY, _("# Iterations:")); m_iterations = new wxTextCtrl(panel, wxID_ANY, "99", wxDefaultPosition, wxSize(200,-1)); gbox->Add(st11, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(m_iterations, 1, wxEXPAND); - wxStaticText* st19 = new wxStaticText(panel, wxID_ANY, _("Local Search:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st19 = new wxStaticText(panel, wxID_ANY, _("Local Search:")); wxString choices19[] = {"Greedy", "Tabu Search", "Simulated Annealing"}; m_localsearch = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1), 3, choices19); m_localsearch->SetSelection(0); wxBoxSizer *hbox19_1 = new wxBoxSizer(wxHORIZONTAL); - hbox19_1->Add(new wxStaticText(panel, wxID_ANY, _("Tabu Length:"), wxDefaultPosition, wxSize(108,-1))); + hbox19_1->Add(new wxStaticText(panel, wxID_ANY, _("Tabu Length:"))); m_tabulength = new wxTextCtrl(panel, wxID_ANY, "85"); hbox19_1->Add(m_tabulength); m_tabulength->Disable(); wxBoxSizer *hbox19_2 = new wxBoxSizer(wxHORIZONTAL); - hbox19_2->Add(new wxStaticText(panel, wxID_ANY, _("Cooling Rate:"), wxDefaultPosition, wxSize(108,-1))); + hbox19_2->Add(new wxStaticText(panel, wxID_ANY, _("Cooling Rate:"))); m_coolrate= new wxTextCtrl(panel, wxID_ANY, "0.85"); hbox19_2->Add(m_coolrate); m_coolrate->Disable(); @@ -139,8 +136,7 @@ void MaxpDlg::CreateControls() gbox->Add(st19, 0, wxALIGN_TOP | wxRIGHT | wxLEFT, 10); gbox->Add(vbox19, 1, wxEXPAND); - wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:")); wxString choices13[] = {"Euclidean", "Manhattan"}; m_distance = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1), 2, choices13); m_distance->SetSelection(0); @@ -150,8 +146,7 @@ void MaxpDlg::CreateControls() // Transformation AddTransformation(panel, gbox); - wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Use specified seed:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Use specified seed:")); wxBoxSizer *hbox17 = new wxBoxSizer(wxHORIZONTAL); chk_seed = new wxCheckBox(panel, wxID_ANY, ""); seedButton = new wxButton(panel, wxID_OK, _("Change Seed")); @@ -171,8 +166,7 @@ void MaxpDlg::CreateControls() hbox->Add(gbox, 1, wxEXPAND); // Output - wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, _("Save Cluster in Field:"), - wxDefaultPosition, wxDefaultSize); + wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, _("Save Cluster in Field:")); m_textbox = new wxTextCtrl(panel, wxID_ANY, "CL", wxDefaultPosition, wxSize(158,-1)); wxStaticBoxSizer *hbox1 = new wxStaticBoxSizer(wxHORIZONTAL, panel, _("Output:")); //wxBoxSizer *hbox1 = new wxBoxSizer(wxHORIZONTAL); diff --git a/DialogTools/PCASettingsDlg.cpp b/DialogTools/PCASettingsDlg.cpp index d8c058a07..a0de44478 100644 --- a/DialogTools/PCASettingsDlg.cpp +++ b/DialogTools/PCASettingsDlg.cpp @@ -72,8 +72,7 @@ void PCASettingsDlg::CreateControls() // parameters wxFlexGridSizer* gbox = new wxFlexGridSizer(5,2,10,0); - wxStaticText* st12 = new wxStaticText(panel, wxID_ANY, _("Method:"), - wxDefaultPosition, wxSize(120,-1)); + wxStaticText* st12 = new wxStaticText(panel, wxID_ANY, _("Method:")); const wxString _methods[2] = {"SVD", "Eigen"}; combo_method = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(120,-1), 2, _methods); diff --git a/DialogTools/RedcapDlg.cpp b/DialogTools/RedcapDlg.cpp index 57c45f963..4d9a70e73 100644 --- a/DialogTools/RedcapDlg.cpp +++ b/DialogTools/RedcapDlg.cpp @@ -119,15 +119,13 @@ void RedcapDlg::CreateControls() // Parameters wxFlexGridSizer* gbox = new wxFlexGridSizer(11,2,5,0); - wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, _("Weights:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, _("Weights:")); combo_weights = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1)); gbox->Add(st16, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(combo_weights, 1, wxEXPAND); - wxStaticText* st20 = new wxStaticText(panel, wxID_ANY, _("Method:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st20 = new wxStaticText(panel, wxID_ANY, _("Method:")); wxString choices20[] = {"FirstOrder-SingleLinkage", "FullOrder-CompleteLinkage", "FullOrder-AverageLinkage", "FullOrder-SingleLinkage"}; combo_method = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1), 4, choices20); combo_method->SetSelection(2); @@ -138,14 +136,12 @@ void RedcapDlg::CreateControls() // Minimum Bound Control AddMinBound(panel, gbox); - wxStaticText* st11 = new wxStaticText(panel, wxID_ANY, _("Maximum # of regions:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st11 = new wxStaticText(panel, wxID_ANY, _("Maximum # of regions:")); m_max_region = new wxTextCtrl(panel, wxID_ANY, "5", wxDefaultPosition, wxSize(200,-1)); gbox->Add(st11, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(m_max_region, 1, wxEXPAND); - wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:")); wxString choices13[] = {"Euclidean", "Manhattan"}; m_distance = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1), 2, choices13); m_distance->SetSelection(0); @@ -155,8 +151,7 @@ void RedcapDlg::CreateControls() // Transformation AddTransformation(panel, gbox); - wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Use specified seed:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Use specified seed:")); wxBoxSizer *hbox17 = new wxBoxSizer(wxHORIZONTAL); chk_seed = new wxCheckBox(panel, wxID_ANY, ""); seedButton = new wxButton(panel, wxID_OK, _("Change Seed")); @@ -177,8 +172,7 @@ void RedcapDlg::CreateControls() // Output - wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, _("Save Cluster in Field:"), - wxDefaultPosition, wxDefaultSize); + wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, _("Save Cluster in Field:")); m_textbox = new wxTextCtrl(panel, wxID_ANY, "CL", wxDefaultPosition, wxSize(158,-1)); chk_save_mst = new wxCheckBox(panel, wxID_ANY, "Save Minimum Spanning Tree"); diff --git a/DialogTools/SkaterDlg.cpp b/DialogTools/SkaterDlg.cpp index 5044f57d9..44fc18204 100644 --- a/DialogTools/SkaterDlg.cpp +++ b/DialogTools/SkaterDlg.cpp @@ -90,14 +90,13 @@ void SkaterDlg::CreateControls() // Parameters wxFlexGridSizer* gbox = new wxFlexGridSizer(9,2,5,0); - wxStaticText* st11 = new wxStaticText(panel, wxID_ANY, _("Number of Clusters:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st11 = new wxStaticText(panel, wxID_ANY, _("Number of Clusters:")); m_max_region = new wxTextCtrl(panel, wxID_ANY, "5", wxDefaultPosition, wxSize(200,-1)); gbox->Add(st11, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(m_max_region, 1, wxEXPAND); // Weights Control - wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, _("Weights:"), wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, _("Weights:")); combo_weights = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1)); gbox->Add(st16, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(combo_weights, 1, wxEXPAND); @@ -106,14 +105,13 @@ void SkaterDlg::CreateControls() AddMinBound(panel, gbox); // Min regions - st_minregions = new wxStaticText(panel, wxID_ANY, _("Min Region Size:"), wxDefaultPosition, wxSize(128,-1)); + st_minregions = new wxStaticText(panel, wxID_ANY, _("Min Region Size:")); txt_minregions = new wxTextCtrl(panel, wxID_ANY, "", wxDefaultPosition, wxSize(200,-1)); txt_minregions->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); gbox->Add(st_minregions, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(txt_minregions, 1, wxEXPAND); - wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, _("Distance Function:")); wxString choices13[] = {"Euclidean", "Manhattan"}; m_distance = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(200,-1), 2, choices13); m_distance->SetSelection(0); @@ -122,8 +120,7 @@ void SkaterDlg::CreateControls() AddTransformation(panel, gbox); - wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Use specified seed:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Use specified seed:")); wxBoxSizer *hbox17 = new wxBoxSizer(wxHORIZONTAL); chk_seed = new wxCheckBox(panel, wxID_ANY, ""); seedButton = new wxButton(panel, wxID_OK, _("Change Seed")); @@ -145,8 +142,7 @@ void SkaterDlg::CreateControls() // Output wxFlexGridSizer* gbox_out = new wxFlexGridSizer(2,2,5,0); - wxStaticText* st3 = new wxStaticText(panel, wxID_ANY, _("Save Cluster in Field:"), - wxDefaultPosition, wxDefaultSize); + wxStaticText* st3 = new wxStaticText(panel, wxID_ANY, _("Save Cluster in Field:")); m_textbox = new wxTextCtrl(panel, wxID_ANY, "CL", wxDefaultPosition, wxSize(158,-1)); gbox_out->Add(st3, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox_out->Add(m_textbox, 1, wxEXPAND); diff --git a/DialogTools/SpectralClusteringDlg.cpp b/DialogTools/SpectralClusteringDlg.cpp index 316683605..d4c924ff8 100644 --- a/DialogTools/SpectralClusteringDlg.cpp +++ b/DialogTools/SpectralClusteringDlg.cpp @@ -113,8 +113,7 @@ void SpectralClusteringDlg::CreateControls() AddNumberOfClusterCtrl(panel, gbox); // Spectral controls: KNN - lbl_knn = new wxStaticText(panel, wxID_ANY, _("Affinity with K-NN:"), - wxDefaultPosition, wxSize(130,-1)); + lbl_knn = new wxStaticText(panel, wxID_ANY, _("Affinity with K-NN:")); wxBoxSizer* hbox19 = new wxBoxSizer(wxHORIZONTAL); chk_knn = new wxCheckBox(panel, wxID_ANY, ""); lbl_neighbors = new wxStaticText(panel, wxID_ANY, _("# Neighors:")); @@ -129,8 +128,7 @@ void SpectralClusteringDlg::CreateControls() double suggest_sigma = sqrt(1.0/(double)num_obs); wxString str_sigma; str_sigma << suggest_sigma; - lbl_kernel = new wxStaticText(panel, wxID_ANY, _("Affinity with Kernel:"), - wxDefaultPosition, wxSize(130,-1)); + lbl_kernel = new wxStaticText(panel, wxID_ANY, _("Affinity with Kernel:")); wxBoxSizer* hbox18 = new wxBoxSizer(wxHORIZONTAL); chk_kernel = new wxCheckBox(panel, wxID_ANY, ""); lbl_sigma = new wxStaticText(panel, wxID_ANY, _("(Gaussian) Sigma:")); @@ -143,8 +141,7 @@ void SpectralClusteringDlg::CreateControls() gbox->Add(hbox18, 1, wxEXPAND); // Weights (not enabled) - lbl_weights = new wxStaticText(panel, wxID_ANY, _("Use Weights:"), - wxDefaultPosition, wxSize(128,-1)); + lbl_weights = new wxStaticText(panel, wxID_ANY, _("Use Weights:")); wxBoxSizer *hbox22 = new wxBoxSizer(wxHORIZONTAL); chk_weights = new wxCheckBox(panel, wxID_ANY, ""); combo_weights = new wxChoice(panel, wxID_ANY); @@ -156,8 +153,7 @@ void SpectralClusteringDlg::CreateControls() // power iteration option approximation wxStaticText* st15 = new wxStaticText(panel, wxID_ANY, - _("Use Power Iteration:"), - wxDefaultPosition, wxSize(134,-1)); + _("Use Power Iteration:")); wxBoxSizer *hbox15 = new wxBoxSizer(wxHORIZONTAL); chk_poweriteration = new wxCheckBox(panel, wxID_ANY, ""); lbl_poweriteration = new wxStaticText(panel, wxID_ANY, _("# Max Iteration:")); @@ -182,16 +178,14 @@ void SpectralClusteringDlg::CreateControls() // Transformation AddTransformation(panel, gbox); - wxStaticText* st20 = new wxStaticText(panel, wxID_ANY, "(K-Means)", - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st20 = new wxStaticText(panel, wxID_ANY, "(K-Means)"); wxStaticText* st21 = new wxStaticText(panel, wxID_ANY, "", wxDefaultPosition, wxSize(0,-1)); gbox->Add(st20, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(st21, 1, wxEXPAND); wxStaticText* st16 = new wxStaticText(panel, wxID_ANY, - _("Initialization Method:"), - wxDefaultPosition, wxSize(128,-1)); + _("Initialization Method:")); wxString choices16[] = {"KMeans++", "Random"}; combo_method = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(160,-1), 2, choices16); @@ -202,14 +196,12 @@ void SpectralClusteringDlg::CreateControls() wxStaticText* st10 = new wxStaticText(panel, wxID_ANY, - _("Initialization Re-runs:"), - wxDefaultPosition, wxSize(128,-1)); + _("Initialization Re-runs:")); wxTextCtrl *box10 = new wxTextCtrl(panel, wxID_ANY, "150", wxDefaultPosition, wxSize(160,-1)); gbox->Add(st10, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(box10, 1, wxEXPAND); - wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Use specified seed:"), - wxDefaultPosition, wxSize(128,-1)); + wxStaticText* st17 = new wxStaticText(panel, wxID_ANY, _("Use specified seed:")); wxBoxSizer *hbox17 = new wxBoxSizer(wxHORIZONTAL); chk_seed = new wxCheckBox(panel, wxID_ANY, ""); seedButton = new wxButton(panel, wxID_OK, _("Change Seed")); @@ -226,8 +218,7 @@ void SpectralClusteringDlg::CreateControls() } wxStaticText* st11 = new wxStaticText(panel, wxID_ANY, - _("Maximum Iterations:"), - wxDefaultPosition, wxSize(128,-1)); + _("Maximum Iterations:")); wxTextCtrl *box11 = new wxTextCtrl(panel, wxID_ANY, "300"); gbox->Add(st11, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(box11, 1, wxEXPAND); @@ -243,8 +234,7 @@ void SpectralClusteringDlg::CreateControls() gbox->Add(box12, 1, wxEXPAND); */ wxStaticText* st13 = new wxStaticText(panel, wxID_ANY, - _("Distance Function:"), - wxDefaultPosition, wxSize(128,-1)); + _("Distance Function:")); wxString choices13[] = {"Euclidean", "Manhattan"}; wxChoice* box13 = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxSize(160,-1), 2, choices13); @@ -260,8 +250,7 @@ void SpectralClusteringDlg::CreateControls() // Output wxStaticText* st3 = new wxStaticText (panel, wxID_ANY, - _("Save Cluster in Field:"), - wxDefaultPosition, wxDefaultSize); + _("Save Cluster in Field:")); wxTextCtrl *box3 = new wxTextCtrl(panel, wxID_ANY, "CL", wxDefaultPosition, wxSize(158,-1)); wxStaticBoxSizer *hbox1 = new wxStaticBoxSizer(wxHORIZONTAL, panel, diff --git a/DialogTools/VarGroupingEditorDlg.cpp b/DialogTools/VarGroupingEditorDlg.cpp index 783f2d918..be65ab819 100644 --- a/DialogTools/VarGroupingEditorDlg.cpp +++ b/DialogTools/VarGroupingEditorDlg.cpp @@ -1,976 +1,972 @@ -/** - * GeoDa TM, Copyright (C) 2011-2015 by Luc Anselin - all rights reserved - * - * This file is part of GeoDa. - * - * GeoDa 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. - * - * GeoDa 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 . - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "../FramesManager.h" -#include "../DataViewer/OGRTable.h" -#include "../DataViewer/DataViewerAddColDlg.h" -#include "../DataViewer/TableInterface.h" -#include "../DataViewer/TableState.h" -#include "../DataViewer/TimeState.h" -#include "../DialogTools/ExportDataDlg.h" -#include "../VarCalc/WeightsManInterface.h" -#include "../ShapeOperations/GalWeight.h" -#include "../GeneralWxUtils.h" -#include "../GeoDa.h" -#include "../logger.h" -#include "../Project.h" -#include "../GdaConst.h" -#include "VarGroupingEditorDlg.h" -#include "TimeEditorDlg.h" -#include "../GdaException.h" - - -BEGIN_EVENT_TABLE( VarGroupingEditorDlg, wxDialog ) - EVT_CLOSE( VarGroupingEditorDlg::OnClose ) - - EVT_BUTTON( XRCID("ID_SAVE_SPACETIME_TABLE"), - VarGroupingEditorDlg::OnSaveSpaceTimeTableClick ) - EVT_BUTTON( XRCID("ID_CREATE_GRP_BUTTON"), - VarGroupingEditorDlg::OnCreateGrpClick ) - EVT_BUTTON( XRCID("ID_UNGROUP_BUTTON"), - VarGroupingEditorDlg::OnUngroupClick ) - EVT_BUTTON( XRCID("ID_MOVE_UP_BUTTON"), - VarGroupingEditorDlg::OnMoveUpClick ) - EVT_BUTTON( XRCID("ID_MOVE_DOWN_BUTTON"), - VarGroupingEditorDlg::OnMoveDownClick ) - EVT_BUTTON( XRCID("ID_SORT_BUTTON"), VarGroupingEditorDlg::OnSortClick ) - EVT_BUTTON( XRCID("ID_PLACEHOLDER_BUTTON"), - VarGroupingEditorDlg::OnPlaceholderClick ) - EVT_BUTTON( XRCID("ID_ADD_TO_LIST_BUTTON"), - VarGroupingEditorDlg::OnAddToListClick ) - EVT_BUTTON( XRCID("ID_REMOVE_FR_LIST_BUTTON"), - VarGroupingEditorDlg::OnRemoveFrListClick ) - EVT_LIST_ITEM_ACTIVATED( XRCID("ID_UNGROUPED_LIST"), - VarGroupingEditorDlg::OnUngroupedListItemActivate ) - EVT_LIST_ITEM_SELECTED( XRCID("ID_UNGROUPED_LIST"), - VarGroupingEditorDlg::OnUngroupedListSelection ) - EVT_LIST_ITEM_DESELECTED( XRCID("ID_UNGROUPED_LIST"), - VarGroupingEditorDlg::OnUngroupedListSelection ) - EVT_LIST_ITEM_ACTIVATED( XRCID("ID_INCLUDE_LIST"), - VarGroupingEditorDlg::OnIncludeListItemActivate ) - EVT_LIST_ITEM_SELECTED( XRCID("ID_INCLUDE_LIST"), - VarGroupingEditorDlg::OnIncludeListSelection ) - EVT_LIST_ITEM_DESELECTED( XRCID("ID_INCLUDE_LIST"), - VarGroupingEditorDlg::OnIncludeListSelection ) - EVT_LIST_BEGIN_LABEL_EDIT(XRCID("ID_INCLUDE_LIST"), - VarGroupingEditorDlg::OnIncludeListEdit) - EVT_LIST_END_LABEL_EDIT(XRCID("ID_INCLUDE_LIST"), - VarGroupingEditorDlg::OnIncludeListEditEnd) - EVT_LIST_COL_CLICK(XRCID("ID_INCLUDE_LIST"), - VarGroupingEditorDlg::OnIncludeListColClick) - - EVT_LISTBOX( XRCID("ID_GROUPED_LIST"), - VarGroupingEditorDlg::OnGroupedListSelection ) - - EVT_TEXT( XRCID("ID_NEW_GROUP_NAME_TXT_CTRL"), - VarGroupingEditorDlg::OnNewGroupNameChange ) - EVT_BUTTON( XRCID("ID_UNGROUPED_VARS_HELP"), - VarGroupingEditorDlg::OnUngroupedVarsHelp ) - EVT_BUTTON( XRCID("ID_NEW_GROUP_HELP"), - VarGroupingEditorDlg::OnNewGroupHelp ) - EVT_BUTTON( XRCID("ID_CUR_GROUPED_HELP"), - VarGroupingEditorDlg::OnCurGroupedHelp ) - EVT_BUTTON( XRCID("ID_SAVE_SPACETIME_HELP"), - VarGroupingEditorDlg::OnSaveSTHelp ) - - EVT_BUTTON( XRCID("ID_TIME_LOAD_FROM_GDA"), - VarGroupingEditorDlg::OnLoadFromGda ) -END_EVENT_TABLE() - -using namespace std; - -VarGroupingEditorDlg::VarGroupingEditorDlg(Project* project_p, - wxWindow* parent, - const wxString& title, - const wxPoint& pos, - const wxSize& size, long style) -: project(project_p), -table_int(project_p->GetTableInt()), -frames_manager(project_p->GetFramesManager()), -table_state(project_p->GetTableState()), -highlight_state(project_p->GetHighlightState()), -wmi(project_p->GetWManInt()), -common_empty(true), all_init(false), pos_ungrouped_list(0),is_editing(false), -export_dlg(NULL), mem_table_int(NULL) -{ - wxLogMessage("Open VarGroupingEditorDlg."); - CreateControls(); - SetPosition(pos); - SetTitle(title); - Centre(); - - frames_manager->registerObserver(this); - table_state->registerObserver(this); - all_init = true; -} - -VarGroupingEditorDlg::~VarGroupingEditorDlg() -{ - - frames_manager->removeObserver(this); - table_state->removeObserver(this); - - if (export_dlg) { - export_dlg->Destroy(); - delete export_dlg; - } - - if (mem_table_int) { - delete mem_table_int; - mem_table_int = NULL; - } -} - -void VarGroupingEditorDlg::CreateControls() -{ - wxXmlResource::Get()->LoadDialog(this, GetParent(), "ID_VAR_GROUPING_EDITOR"); - new_group_name_txt_ctrl = wxDynamicCast(FindWindow(XRCID("ID_NEW_GROUP_NAME_TXT_CTRL")), wxTextCtrl); - new_field_type_stat_txt = wxDynamicCast(FindWindow(XRCID("ID_NEW_FIELD_TYPE_STAT_TXT")), wxStaticText); - move_up_button = wxDynamicCast(FindWindow(XRCID("ID_MOVE_UP_BUTTON")), wxButton); - move_down_button = wxDynamicCast(FindWindow(XRCID("ID_MOVE_DOWN_BUTTON")), wxButton); - sort_button = wxDynamicCast(FindWindow(XRCID("ID_SORT_BUTTON")), wxButton); - - placeholder_button = wxDynamicCast(FindWindow(XRCID("ID_PLACEHOLDER_BUTTON")), wxButton); - - include_list = wxDynamicCast(FindWindow(XRCID("ID_INCLUDE_LIST")), wxListCtrl); - include_list->AppendColumn(_("Time")); - include_list->SetColumnWidth(0, 50); - include_list->AppendColumn(_("Name")); - include_list->SetColumnWidth(1, 120); - - - include_list_stat_txt = wxDynamicCast(FindWindow(XRCID("ID_INCLUDE_LIST_STAT_TXT")), wxStaticText); - - add_to_list_button = wxDynamicCast(FindWindow(XRCID("ID_ADD_TO_LIST_BUTTON")), wxButton); - remove_fr_list_button = wxDynamicCast(FindWindow(XRCID("ID_REMOVE_FR_LIST_BUTTON")), wxButton); - - group_button = wxDynamicCast(FindWindow(XRCID("ID_CREATE_GRP_BUTTON")), wxButton); - ungroup_button = wxDynamicCast(FindWindow(XRCID("ID_UNGROUP_BUTTON")), wxButton); - +/** + * GeoDa TM, Copyright (C) 2011-2015 by Luc Anselin - all rights reserved + * + * This file is part of GeoDa. + * + * GeoDa 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. + * + * GeoDa 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 . + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "../FramesManager.h" +#include "../DataViewer/OGRTable.h" +#include "../DataViewer/DataViewerAddColDlg.h" +#include "../DataViewer/TableInterface.h" +#include "../DataViewer/TableState.h" +#include "../DataViewer/TimeState.h" +#include "../DialogTools/ExportDataDlg.h" +#include "../VarCalc/WeightsManInterface.h" +#include "../ShapeOperations/GalWeight.h" +#include "../GeneralWxUtils.h" +#include "../GeoDa.h" +#include "../logger.h" +#include "../Project.h" +#include "../GdaConst.h" +#include "VarGroupingEditorDlg.h" +#include "TimeEditorDlg.h" +#include "../GdaException.h" + + +BEGIN_EVENT_TABLE( VarGroupingEditorDlg, wxDialog ) + EVT_CLOSE( VarGroupingEditorDlg::OnClose ) + EVT_BUTTON( XRCID("ID_SAVE_SPACETIME_TABLE"), + VarGroupingEditorDlg::OnSaveSpaceTimeTableClick ) + EVT_BUTTON( XRCID("ID_CREATE_GRP_BUTTON"), + VarGroupingEditorDlg::OnCreateGrpClick ) + EVT_BUTTON( XRCID("ID_UNGROUP_BUTTON"), + VarGroupingEditorDlg::OnUngroupClick ) + EVT_BUTTON( XRCID("ID_MOVE_UP_BUTTON"), + VarGroupingEditorDlg::OnMoveUpClick ) + EVT_BUTTON( XRCID("ID_MOVE_DOWN_BUTTON"), + VarGroupingEditorDlg::OnMoveDownClick ) + EVT_BUTTON( XRCID("ID_SORT_BUTTON"), VarGroupingEditorDlg::OnSortClick ) + EVT_BUTTON( XRCID("ID_PLACEHOLDER_BUTTON"), + VarGroupingEditorDlg::OnPlaceholderClick ) + EVT_BUTTON( XRCID("ID_ADD_TO_LIST_BUTTON"), + VarGroupingEditorDlg::OnAddToListClick ) + EVT_BUTTON( XRCID("ID_REMOVE_FR_LIST_BUTTON"), + VarGroupingEditorDlg::OnRemoveFrListClick ) + EVT_LIST_ITEM_ACTIVATED( XRCID("ID_UNGROUPED_LIST"), + VarGroupingEditorDlg::OnUngroupedListItemActivate ) + EVT_LIST_ITEM_SELECTED( XRCID("ID_UNGROUPED_LIST"), + VarGroupingEditorDlg::OnUngroupedListSelection ) + EVT_LIST_ITEM_DESELECTED( XRCID("ID_UNGROUPED_LIST"), + VarGroupingEditorDlg::OnUngroupedListSelection ) + EVT_LIST_ITEM_ACTIVATED( XRCID("ID_INCLUDE_LIST"), + VarGroupingEditorDlg::OnIncludeListItemActivate ) + EVT_LIST_ITEM_SELECTED( XRCID("ID_INCLUDE_LIST"), + VarGroupingEditorDlg::OnIncludeListSelection ) + EVT_LIST_ITEM_DESELECTED( XRCID("ID_INCLUDE_LIST"), + VarGroupingEditorDlg::OnIncludeListSelection ) + EVT_LIST_BEGIN_LABEL_EDIT(XRCID("ID_INCLUDE_LIST"), + VarGroupingEditorDlg::OnIncludeListEdit) + EVT_LIST_END_LABEL_EDIT(XRCID("ID_INCLUDE_LIST"), + VarGroupingEditorDlg::OnIncludeListEditEnd) + EVT_LIST_COL_CLICK(XRCID("ID_INCLUDE_LIST"), + VarGroupingEditorDlg::OnIncludeListColClick) + EVT_LISTBOX( XRCID("ID_GROUPED_LIST"), + VarGroupingEditorDlg::OnGroupedListSelection ) + EVT_TEXT( XRCID("ID_NEW_GROUP_NAME_TXT_CTRL"), + VarGroupingEditorDlg::OnNewGroupNameChange ) + EVT_BUTTON( XRCID("ID_UNGROUPED_VARS_HELP"), + VarGroupingEditorDlg::OnUngroupedVarsHelp ) + EVT_BUTTON( XRCID("ID_NEW_GROUP_HELP"), + VarGroupingEditorDlg::OnNewGroupHelp ) + EVT_BUTTON( XRCID("ID_CUR_GROUPED_HELP"), + VarGroupingEditorDlg::OnCurGroupedHelp ) + EVT_BUTTON( XRCID("ID_SAVE_SPACETIME_HELP"), + VarGroupingEditorDlg::OnSaveSTHelp ) + EVT_BUTTON( XRCID("ID_TIME_LOAD_FROM_GDA"), + VarGroupingEditorDlg::OnLoadFromGda ) +END_EVENT_TABLE() + +using namespace std; + +VarGroupingEditorDlg::VarGroupingEditorDlg(Project* project_p, + wxWindow* parent, + const wxString& title, + const wxPoint& pos, + const wxSize& size, long style) +: project(project_p), +table_int(project_p->GetTableInt()), +frames_manager(project_p->GetFramesManager()), +table_state(project_p->GetTableState()), +highlight_state(project_p->GetHighlightState()), +wmi(project_p->GetWManInt()), +common_empty(true), all_init(false), pos_ungrouped_list(0),is_editing(false), +export_dlg(NULL), mem_table_int(NULL) +{ + wxLogMessage("Open VarGroupingEditorDlg."); + CreateControls(); + SetPosition(pos); + SetTitle(title); + Centre(); + frames_manager->registerObserver(this); + table_state->registerObserver(this); + all_init = true; +} + +VarGroupingEditorDlg::~VarGroupingEditorDlg() +{ + + frames_manager->removeObserver(this); + table_state->removeObserver(this); + + if (export_dlg) { + export_dlg->Destroy(); + delete export_dlg; + } + + if (mem_table_int) { + delete mem_table_int; + mem_table_int = NULL; + } +} + +void VarGroupingEditorDlg::CreateControls() +{ + wxXmlResource::Get()->LoadDialog(this, GetParent(), "ID_VAR_GROUPING_EDITOR"); + new_group_name_txt_ctrl = wxDynamicCast(FindWindow(XRCID("ID_NEW_GROUP_NAME_TXT_CTRL")), wxTextCtrl); + new_field_type_stat_txt = wxDynamicCast(FindWindow(XRCID("ID_NEW_FIELD_TYPE_STAT_TXT")), wxStaticText); + move_up_button = wxDynamicCast(FindWindow(XRCID("ID_MOVE_UP_BUTTON")), wxButton); + move_down_button = wxDynamicCast(FindWindow(XRCID("ID_MOVE_DOWN_BUTTON")), wxButton); + sort_button = wxDynamicCast(FindWindow(XRCID("ID_SORT_BUTTON")), wxButton); + + placeholder_button = wxDynamicCast(FindWindow(XRCID("ID_PLACEHOLDER_BUTTON")), wxButton); + + include_list = wxDynamicCast(FindWindow(XRCID("ID_INCLUDE_LIST")), wxListCtrl); + include_list->AppendColumn(_("Time")); + include_list->SetColumnWidth(0, 50); + include_list->AppendColumn(_("Name")); + include_list->SetColumnWidth(1, 120); + + + include_list_stat_txt = wxDynamicCast(FindWindow(XRCID("ID_INCLUDE_LIST_STAT_TXT")), wxStaticText); + + add_to_list_button = wxDynamicCast(FindWindow(XRCID("ID_ADD_TO_LIST_BUTTON")), wxButton); + remove_fr_list_button = wxDynamicCast(FindWindow(XRCID("ID_REMOVE_FR_LIST_BUTTON")), wxButton); + + group_button = wxDynamicCast(FindWindow(XRCID("ID_CREATE_GRP_BUTTON")), wxButton); + ungroup_button = wxDynamicCast(FindWindow(XRCID("ID_UNGROUP_BUTTON")), wxButton); + ungrouped_list = wxDynamicCast(FindWindow(XRCID("ID_UNGROUPED_LIST")), wxListCtrl); - ungrouped_list->SetBackgroundColour(*wxWHITE); - ungrouped_list->AppendColumn(_("Name")); - ungrouped_list->SetColumnWidth(0, 120); - ungrouped_list->AppendColumn(_("Type")); - ungrouped_list->SetColumnWidth(1, 50); - - grouped_list = wxDynamicCast(FindWindow(XRCID("ID_GROUPED_LIST")), wxListBox); - - - save_spacetime_button =wxDynamicCast(FindWindow(XRCID("ID_SAVE_SPACETIME_TABLE")), wxButton); - - ResetAllButtons(); - UpdateCommonType(); - - all_init = true; - InitAll(); - UpdateButtons(); - - ungrouped_list->Bind(wxEVT_LEFT_DOWN, &VarGroupingEditorDlg::OnUngroupedListLeftDown, this); - include_list->Bind(wxEVT_LEFT_DCLICK, &VarGroupingEditorDlg::OnIncludeListDblClicked, this); - include_list->Bind(wxEVT_RIGHT_UP, &VarGroupingEditorDlg::OnIncludeListRightUp, this); - include_list->Bind(wxEVT_RIGHT_DOWN, &VarGroupingEditorDlg::OnIncludeListRightDown, this); - -} - -/** This should completely reset all info based on data from TableInterface. - This is called when dialog is first constructed, and can be called again - when changes TableState::update is called. */ -void VarGroupingEditorDlg::InitAll() -{ - new_group_name_txt_ctrl->SetValue(wxEmptyString); - - std::set empty_set; - InitUngroupedList(empty_set); - - include_list->DeleteAllItems(); - int table_ts = table_int->GetTimeSteps(); - if (table_ts > 1) { - for (int t=0; tInsertItem(t, table_int->GetTimeString(t)); - include_list->SetItem(t, 1, wxEmptyString); - } - } - UpdateTimeStepsTxt(); - - InitGroupedList(); -} - -void VarGroupingEditorDlg::InitUngroupedList(std::set& excl_nms) -{ - ungrouped_list->DeleteAllItems(); - std::vector col_id_map; - table_int->FillColIdMap(col_id_map); - int ug_cnt = 0; - for (int i=0, cid_sz=col_id_map.size(); iIsColTimeVariant(col) || - excl_nms.find(table_int->GetColName(col)) != excl_nms.end()) { - continue; - } - - GdaConst::FieldType type = table_int->GetColType(col); - wxString type_str; - if (type == GdaConst::double_type || type == GdaConst::long64_type) { - type_str << "num"; + ungrouped_list->AppendColumn(_("Name")); + ungrouped_list->SetColumnWidth(0, 120); + ungrouped_list->AppendColumn(_("Type")); + ungrouped_list->SetColumnWidth(1, 50); + + grouped_list = wxDynamicCast(FindWindow(XRCID("ID_GROUPED_LIST")), wxListBox); + + + save_spacetime_button =wxDynamicCast(FindWindow(XRCID("ID_SAVE_SPACETIME_TABLE")), wxButton); + + ResetAllButtons(); + UpdateCommonType(); + + all_init = true; + InitAll(); + UpdateButtons(); + + ungrouped_list->Bind(wxEVT_LEFT_DOWN, &VarGroupingEditorDlg::OnUngroupedListLeftDown, this); + include_list->Bind(wxEVT_LEFT_DCLICK, &VarGroupingEditorDlg::OnIncludeListDblClicked, this); + include_list->Bind(wxEVT_RIGHT_UP, &VarGroupingEditorDlg::OnIncludeListRightUp, this); + include_list->Bind(wxEVT_RIGHT_DOWN, &VarGroupingEditorDlg::OnIncludeListRightDown, this); + + this->SetBackgroundColour(*wxWHITE); + +} + +/** This should completely reset all info based on data from TableInterface. + This is called when dialog is first constructed, and can be called again + when changes TableState::update is called. */ +void VarGroupingEditorDlg::InitAll() +{ + new_group_name_txt_ctrl->SetValue(wxEmptyString); + + std::set empty_set; + InitUngroupedList(empty_set); + + include_list->DeleteAllItems(); + int table_ts = table_int->GetTimeSteps(); + if (table_ts > 1) { + for (int t=0; tInsertItem(t, table_int->GetTimeString(t)); + include_list->SetItem(t, 1, wxEmptyString); + } + } + UpdateTimeStepsTxt(); + + InitGroupedList(); +} + +void VarGroupingEditorDlg::InitUngroupedList(std::set& excl_nms) +{ + ungrouped_list->DeleteAllItems(); + std::vector col_id_map; + table_int->FillColIdMap(col_id_map); + int ug_cnt = 0; + for (int i=0, cid_sz=col_id_map.size(); iIsColTimeVariant(col) || + excl_nms.find(table_int->GetColName(col)) != excl_nms.end()) { + continue; + } + + GdaConst::FieldType type = table_int->GetColType(col); + wxString type_str; + if (type == GdaConst::double_type || type == GdaConst::long64_type) { + type_str << "num"; } else if (type == GdaConst::string_type) { //type_str << "str"; - continue; - } else if (type == GdaConst::date_type) { + continue; + } else if (type == GdaConst::date_type) { //type_str << "date"; - continue; - } else if (type == GdaConst::time_type) { + continue; + } else if (type == GdaConst::time_type) { //type_str << "time"; - continue; - } else if (type == GdaConst::datetime_type) { + continue; + } else if (type == GdaConst::datetime_type) { //type_str << "datetime"; - continue; - } - ungrouped_list->InsertItem(ug_cnt, wxEmptyString); - ungrouped_list->SetItem(ug_cnt, 0, table_int->GetColName(col)); - ungrouped_list->SetItem(ug_cnt, 1, type_str); - ++ug_cnt; - } - - if (pos_ungrouped_list > 0) { - if (pos_ungrouped_list >= ug_cnt) { - pos_ungrouped_list = ug_cnt -1; - } - ungrouped_list->EnsureVisible(pos_ungrouped_list); + continue; + } + ungrouped_list->InsertItem(ug_cnt, wxEmptyString); + ungrouped_list->SetItem(ug_cnt, 0, table_int->GetColName(col)); + ungrouped_list->SetItem(ug_cnt, 1, type_str); + ++ug_cnt; + } + + if (pos_ungrouped_list > 0) { + if (pos_ungrouped_list >= ug_cnt) { + pos_ungrouped_list = ug_cnt -1; + } + ungrouped_list->EnsureVisible(pos_ungrouped_list); ungrouped_list->SetItemState(pos_ungrouped_list, wxLIST_STATE_FOCUSED|wxLIST_STATE_SELECTED, - wxLIST_STATE_FOCUSED|wxLIST_STATE_SELECTED); - - } -} - -void VarGroupingEditorDlg::OnUngroupedListLeftDown(wxMouseEvent& ev) -{ - ev.Skip(); -} - -void VarGroupingEditorDlg::InitGroupedList() -{ - grouped_list->Clear(); - std::vector col_id_map; - table_int->FillColIdMap(col_id_map); - for (int i=0, ug_cnt=0, cid_sz=col_id_map.size(); iIsColTimeVariant(col)) { - grouped_list->Append(table_int->GetColName(col)); - continue; - } - } -} - -void VarGroupingEditorDlg::OnClose(wxCloseEvent& event) -{ - wxLogMessage("In VarGroupingEditorDlg::OnClose"); - - if (export_dlg) { - export_dlg->Close(); - } - - event.Skip(); -} - -void VarGroupingEditorDlg::OnSaveSpaceTimeTableClick( wxCommandEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnSaveSpaceTimeTableClick"); - std::vector tm_strs; - table_int->GetTimeStrings(tm_strs); - int n_obs = table_int->GetNumberRows(); - int n_ts = tm_strs.size(); - int n = n_ts * n_obs; - - std::vector time_stack; - std::vector select_stack; - std::vector id_stack; - std::vector new_ids; - std::vector undefs; // should be ignored - - bool has_highligh = false; - const std::vector& hs(highlight_state->GetHighlight()); - - int idx = 1; - for (int t=0; tUpdateData(new_ids, undefs); - mem_table_int->AddOGRColumn(id_col); - - if (!id_stack.empty()) { - - bool using_default_id = true; - if (wmi) { - boost::uuids::uuid default_wid = wmi->GetDefault(); - if (!default_wid.is_nil()) { - GalWeight* gw = wmi->GetGal(default_wid); - - std::vector id_vec; - int c_id = table_int->FindColId(gw->id_field); - if (c_id > 0) { - table_int->GetColData(c_id, 1, id_vec); - - std::vector new_id_vec; - for (int ii=0; iiid_field, 50, 0, n); - id_col->UpdateData(new_id_vec, undefs); - mem_table_int->AddOGRColumn(id_col); - using_default_id = false; - } - } - } - } - - - if (!select_stack.empty() && has_highligh) { - OGRColumn* select_col = new OGRColumnInteger("SELECT", 18, 0, n); - select_col->UpdateData(select_stack, undefs); - mem_table_int->AddOGRColumn(select_col); - } - - if (!time_stack.empty()) { - OGRColumn* time_col = new OGRColumnString("TIME", 50, 0, n); - time_col->UpdateData(time_stack, undefs); - mem_table_int->AddOGRColumn(time_col); - - // add time dummies - for (int t=0; t time_dummy_vals; - - for (int tt=0; ttUpdateData(time_dummy_vals, undefs); - mem_table_int->AddOGRColumn(time_dummy_col); - } - } - - int n_col = table_int->GetNumberCols(); - for (int i=0; iIsColTimeVariant(i)) { - wxString col_name(table_int->GetColName(i)); - - GdaConst::FieldType ft = table_int->GetColType(i); - - if (ft == GdaConst::long64_type) { - std::vector stack_dat; - stack_dat.reserve(n); - for (int t=0; t dat; - table_int->GetColData(i, t, dat); - stack_dat.insert(stack_dat.end(), dat.begin(), dat.end()); - } - OGRColumn* var_col = new OGRColumnInteger(col_name, 18, 0, n); - var_col->UpdateData(stack_dat, undefs); - mem_table_int->AddOGRColumn(var_col); - - } else if (ft == GdaConst::double_type) { - int n_decimal = -1; - std::vector stack_dat; - stack_dat.reserve(n); - for (int t=0; t dat; - table_int->GetColData(i, t, dat); - stack_dat.insert(stack_dat.end(), dat.begin(), dat.end()); - int deci = table_int->GetColDecimals(i, t); - if (deci > 0 && deci > n_decimal) { + wxLIST_STATE_FOCUSED|wxLIST_STATE_SELECTED); + + } +} + +void VarGroupingEditorDlg::OnUngroupedListLeftDown(wxMouseEvent& ev) +{ + ev.Skip(); +} + +void VarGroupingEditorDlg::InitGroupedList() +{ + grouped_list->Clear(); + std::vector col_id_map; + table_int->FillColIdMap(col_id_map); + for (int i=0, ug_cnt=0, cid_sz=col_id_map.size(); iIsColTimeVariant(col)) { + grouped_list->Append(table_int->GetColName(col)); + continue; + } + } +} + +void VarGroupingEditorDlg::OnClose(wxCloseEvent& event) +{ + wxLogMessage("In VarGroupingEditorDlg::OnClose"); + + if (export_dlg) { + export_dlg->Close(); + } + + event.Skip(); +} + +void VarGroupingEditorDlg::OnSaveSpaceTimeTableClick( wxCommandEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnSaveSpaceTimeTableClick"); + std::vector tm_strs; + table_int->GetTimeStrings(tm_strs); + int n_obs = table_int->GetNumberRows(); + int n_ts = tm_strs.size(); + int n = n_ts * n_obs; + + std::vector time_stack; + std::vector select_stack; + std::vector id_stack; + std::vector new_ids; + std::vector undefs; // should be ignored + + bool has_highligh = false; + const std::vector& hs(highlight_state->GetHighlight()); + + int idx = 1; + for (int t=0; tUpdateData(new_ids, undefs); + mem_table_int->AddOGRColumn(id_col); + + if (!id_stack.empty()) { + + bool using_default_id = true; + if (wmi) { + boost::uuids::uuid default_wid = wmi->GetDefault(); + if (!default_wid.is_nil()) { + GalWeight* gw = wmi->GetGal(default_wid); + + std::vector id_vec; + int c_id = table_int->FindColId(gw->id_field); + if (c_id > 0) { + table_int->GetColData(c_id, 1, id_vec); + + std::vector new_id_vec; + for (int ii=0; iiid_field, 50, 0, n); + id_col->UpdateData(new_id_vec, undefs); + mem_table_int->AddOGRColumn(id_col); + using_default_id = false; + } + } + } + } + + + if (!select_stack.empty() && has_highligh) { + OGRColumn* select_col = new OGRColumnInteger("SELECT", 18, 0, n); + select_col->UpdateData(select_stack, undefs); + mem_table_int->AddOGRColumn(select_col); + } + + if (!time_stack.empty()) { + OGRColumn* time_col = new OGRColumnString("TIME", 50, 0, n); + time_col->UpdateData(time_stack, undefs); + mem_table_int->AddOGRColumn(time_col); + + // add time dummies + for (int t=0; t time_dummy_vals; + + for (int tt=0; ttUpdateData(time_dummy_vals, undefs); + mem_table_int->AddOGRColumn(time_dummy_col); + } + } + + int n_col = table_int->GetNumberCols(); + for (int i=0; iIsColTimeVariant(i)) { + wxString col_name(table_int->GetColName(i)); + + GdaConst::FieldType ft = table_int->GetColType(i); + + if (ft == GdaConst::long64_type) { + std::vector stack_dat; + stack_dat.reserve(n); + for (int t=0; t dat; + table_int->GetColData(i, t, dat); + stack_dat.insert(stack_dat.end(), dat.begin(), dat.end()); + } + OGRColumn* var_col = new OGRColumnInteger(col_name, 18, 0, n); + var_col->UpdateData(stack_dat, undefs); + mem_table_int->AddOGRColumn(var_col); + + } else if (ft == GdaConst::double_type) { + int n_decimal = -1; + std::vector stack_dat; + stack_dat.reserve(n); + for (int t=0; t dat; + table_int->GetColData(i, t, dat); + stack_dat.insert(stack_dat.end(), dat.begin(), dat.end()); + int deci = table_int->GetColDecimals(i, t); + if (deci > 0 && deci > n_decimal) { n_decimal = deci; } else { n_decimal = 12; // default - } - } - OGRColumn* var_col = new OGRColumnDouble(col_name, 18, n_decimal, n); - var_col->UpdateData(stack_dat, undefs); - mem_table_int->AddOGRColumn(var_col); - - } - } - } - - // export - if (export_dlg != NULL) { - export_dlg->Destroy(); - delete export_dlg; - } - export_dlg = new ExportDataDlg(this, (TableInterface*)mem_table_int); - - if (export_dlg->ShowModal() == wxID_OK) { - wxString ds_name = export_dlg->GetDatasourceName(); - wxFileName wx_fn(ds_name); - - // save weights - if (wmi) { - boost::uuids::uuid default_wid = wmi->GetDefault(); - if (!default_wid.is_nil()) { - GeoDaWeight* w = wmi->GetWeights(default_wid); - if (w->weight_type == GeoDaWeight::gal_type) { - wx_fn.SetExt("gal"); - } else if (w->weight_type == GeoDaWeight::gwt_type) { - wx_fn.SetExt("gwt"); - } - wxString ofn(wx_fn.GetFullPath()); - w->SaveSpaceTimeWeights(ofn, wmi, table_int); - } - } - } -} - -void VarGroupingEditorDlg::OnCreateGrpClick( wxCommandEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnCreateGrpClick"); - if (!all_init) return; - - // check that new field name is valid - wxString grp_nm = new_group_name_txt_ctrl->GetValue(); - grp_nm.Trim(true); + } + } + OGRColumn* var_col = new OGRColumnDouble(col_name, 18, n_decimal, n); + var_col->UpdateData(stack_dat, undefs); + mem_table_int->AddOGRColumn(var_col); + + } + } + } + + // export + if (export_dlg != NULL) { + export_dlg->Destroy(); + delete export_dlg; + } + export_dlg = new ExportDataDlg(this, (TableInterface*)mem_table_int); + + if (export_dlg->ShowModal() == wxID_OK) { + wxString ds_name = export_dlg->GetDatasourceName(); + wxFileName wx_fn(ds_name); + + // save weights + if (wmi) { + boost::uuids::uuid default_wid = wmi->GetDefault(); + if (!default_wid.is_nil()) { + GeoDaWeight* w = wmi->GetWeights(default_wid); + if (w->weight_type == GeoDaWeight::gal_type) { + wx_fn.SetExt("gal"); + } else if (w->weight_type == GeoDaWeight::gwt_type) { + wx_fn.SetExt("gwt"); + } + wxString ofn(wx_fn.GetFullPath()); + w->SaveSpaceTimeWeights(ofn, wmi, table_int); + } + } + } +} + +void VarGroupingEditorDlg::OnCreateGrpClick( wxCommandEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnCreateGrpClick"); + if (!all_init) return; + + // check that new field name is valid + wxString grp_nm = new_group_name_txt_ctrl->GetValue(); + grp_nm.Trim(true); grp_nm.Trim(false); - // make sure no duplicated group when adding a new group - bool case_sensitive = false; - if (!table_int->IsValidGroupName(grp_nm) || - table_int->DoesNameExist(grp_nm, case_sensitive)) { - wxString m; - m << "Variable name \"" << grp_nm << "\" is either a duplicate\n"; - m << "or is invalid. Please enter an alternative,\n"; - m << "non-duplicate variable name."; - wxMessageDialog dlg (this, m, _("Error"), wxOK | wxICON_ERROR ); - dlg.ShowModal(); - return; - } - - int tot_items = include_list->GetItemCount(); - std::vector cols(tot_items); - for (int t=0; tGetItemText(t, 1); - if (nm == GdaConst::placeholder_str) { - cols[t] = -1; - } else { - cols[t] = table_int->FindColId(nm); - } - } - - if (table_int->GetTimeSteps() == 1) { - if (table_int->GetTimeSteps() == 1 && tot_items > 1) { - if (table_state->GetNumDisallowTimelineChanges() > 0) { - wxString msg = table_state->GetDisallowTimelineChangesMsg(); - wxMessageDialog dlg (this, msg, _("Warning"), - wxOK | wxICON_INFORMATION); - dlg.ShowModal(); - return; - } - } - // This is a special case since we are increasing - // the number of table time steps. - for (int t=1; tInsertTimeStep(t, s); - } - } - - table_int->GroupCols(cols, grp_nm, cols[0]); - InitAll(); - UpdateButtons(); - GdaFrame::GetGdaFrame()->UpdateToolbarAndMenus(); - event.Skip(); -} - - -void VarGroupingEditorDlg::OnUngroupClick( wxCommandEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnUngroupClick"); - - wxString grp_nm = grouped_list->GetStringSelection(); - if (grp_nm == "") return; - int col = table_int->FindColId(grp_nm); - if (col < 0) return; - - int tms = table_int->GetColTimeSteps(col); - - set col_nms_set; - vector col_nms(tms); - for (int t=0; tGetColName(col, t); - if (nm.IsEmpty()) - nm = GdaConst::placeholder_str; - col_nms[t] = nm; - col_nms_set.insert(nm); - } - - GdaConst::FieldType type = table_int->GetColType(col); - - table_int->UngroupCol(col); - InitAll(); - - new_group_name_txt_ctrl->SetValue(grp_nm); - if (type == GdaConst::double_type || type == GdaConst::long64_type) { - common_type = "num"; - } else if (type == GdaConst::date_type) { - common_type = "date"; - } else if (type == GdaConst::time_type) { - common_type = "time"; - } else if (type == GdaConst::datetime_type) { - common_type = "datetime"; - } else { - common_type = "string"; - } - common_empty = false; - UpdateCommonType(); - - include_list->DeleteAllItems(); - for (int t=0; tInsertItem(t, wxEmptyString); - include_list->SetItem(t, 1, col_nms[t]); - include_list->SetItem(t, 0, table_int->GetTimeString(t)); - } - - InitUngroupedList(col_nms_set); - UpdateTimeStepsTxt(); - - UpdateButtons(); - event.Skip(); -} - -/** Shift selected items, including selection highlighting, - backwards in time. */ -void VarGroupingEditorDlg::OnMoveUpClick( wxCommandEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnMoveUpClick"); - if (!all_init) return; - int item_cnt = include_list->GetItemCount(); - int sel_count = include_list->GetSelectedItemCount(); - if (sel_count == 0) return; - list sel_pos = GetListSel(include_list); - if (sel_pos.front() == 0) return; - set sel_pos_set; - BOOST_FOREACH(int i, sel_pos) sel_pos_set.insert(i); - list unsel_pos; - for (int i=0; i orig(item_cnt); - for (int i=0; iGetItemText(i, 1); - UnselectAll(include_list); - set new_pos_set; - BOOST_FOREACH(int i, sel_pos) { - include_list->SetItem(i-1, 1, orig[i]); - SelectItem(include_list, i-1); - new_pos_set.insert(i-1); - } - int free_pos = 0; - BOOST_FOREACH(int i, unsel_pos) { - while (new_pos_set.find(free_pos) != new_pos_set.end()) ++free_pos; - include_list->SetItem(free_pos, 1, orig[i]); - ++free_pos; - } - UpdateButtons(); -} - -/** Shift selected items, including selection highlighting, - forwards in time */ -void VarGroupingEditorDlg::OnMoveDownClick( wxCommandEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnMoveDownClick"); - if (!all_init) return; - int item_cnt = include_list->GetItemCount(); - int sel_count = include_list->GetSelectedItemCount(); - if (sel_count == 0) return; - list sel_pos = GetListSel(include_list); - if (sel_pos.back() == item_cnt-1) return; - set sel_pos_set; - BOOST_FOREACH(int i, sel_pos) sel_pos_set.insert(i); - list unsel_pos; - for (int i=0; i orig(item_cnt); - for (int i=0; iGetItemText(i, 1); - - UnselectAll(include_list); - set new_pos_set; - BOOST_FOREACH(int i, sel_pos) { - include_list->SetItem(i+1, 1, orig[i]); - SelectItem(include_list, i+1); - new_pos_set.insert(i+1); - } - int free_pos = 0; - BOOST_FOREACH(int i, unsel_pos) { - while (new_pos_set.find(free_pos) != new_pos_set.end()) ++free_pos; - include_list->SetItem(free_pos, 1, orig[i]); - ++free_pos; - } - UpdateButtons(); -} - -void VarGroupingEditorDlg::sortColumn(int col, bool asc) -{ - if (!all_init) return; - - list all_str = GetListAllStrs(include_list, col); - list nm_locs; - vector sorted_nms; - set sel_nms; - int loc=0; - BOOST_FOREACH(const wxString& s, all_str) { - if (!s.IsEmpty() && s != GdaConst::placeholder_str) { - nm_locs.push_back(loc); - sorted_nms.push_back(s); - if (IsItemSel(include_list, loc)) { - UnselectItem(include_list, loc); - sel_nms.insert(s); - } - } - ++loc; - } - - asc = sort_asc; - sort_asc = !sort_asc; - - if (asc) - sort(sorted_nms.begin(), sorted_nms.end()); - else - sort(sorted_nms.begin(), sorted_nms.end(), greater()); - - list::iterator pos = nm_locs.begin(); - BOOST_FOREACH(const wxString& s, sorted_nms) { - include_list->SetItem(*pos, col, s); - if (sel_nms.find(s) != sel_nms.end()) - SelectItem(include_list, *pos); - ++pos; - } - - UpdateButtons(); -} - -/** Sort items in place ignoring blanks and placeholders. Highlighting - moves with items. */ -void VarGroupingEditorDlg::OnSortClick( wxCommandEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnSortClick"); - if (!all_init) return; - - list all_str = GetListAllStrs(include_list, 1); - list nm_locs; - vector sorted_nms; - set sel_nms; - int loc=0; - BOOST_FOREACH(const wxString& s, all_str) { - if (!s.IsEmpty() && s != GdaConst::placeholder_str) { - nm_locs.push_back(loc); - sorted_nms.push_back(s); - if (IsItemSel(include_list, loc)) { - UnselectItem(include_list, loc); - sel_nms.insert(s); - } - } - ++loc; - } - - sort(sorted_nms.begin(), sorted_nms.end()); - list::iterator pos = nm_locs.begin(); - BOOST_FOREACH(const wxString& s, sorted_nms) { - include_list->SetItem(*pos, 1, s); - if (sel_nms.find(s) != sel_nms.end()) - SelectItem(include_list, *pos); - ++pos; - } - - UpdateButtons(); -} - -// NOTE: this "placeholder" button is changed to "Edit" button -void VarGroupingEditorDlg::OnPlaceholderClick( wxCommandEvent& event ) -{ - wxPoint pt = GetPosition(); - std::list observers(frames_manager->getCopyObservers()); - std::list::iterator it; - for (it=observers.begin(); it != observers.end(); ++it) { - if (TimeEditorDlg* w = dynamic_cast(*it)) { - w->Show(true); - w->Maximize(false); - w->Raise(); - w->SetPosition(wxPoint(pt.x + 50, pt.y + 30)); - return; - } - } - - TimeEditorDlg* dlg = new TimeEditorDlg(0,frames_manager, table_state, table_int); - dlg->Show(true); - dlg->SetPosition(wxPoint(pt.x + 50, pt.y + 30)); - -} - -void VarGroupingEditorDlg::OnUngroupedListItemActivate( wxListEvent& event ) -{ - wxCommandEvent ce; - OnAddToListClick(ce); -} - -void VarGroupingEditorDlg::OnAddToListClick( wxCommandEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnAddToListClick"); - if (!all_init) return; - - int sel_cnt = ungrouped_list->GetSelectedItemCount(); - if (sel_cnt == 0) return; - - list typs = GetListSelStrs(ungrouped_list, 1); - set pool; - BOOST_FOREACH(const wxString& s, typs) pool.insert(s); - if (pool.size() != 1) return; - - if (!common_empty && common_type != typs.front()) return; - - int cur_tm_steps = table_int->GetTimeSteps(); - if (cur_tm_steps > 1) { - int empty_spots = cur_tm_steps - GetIncListNonPlaceholderCnt(); - //if (sel_cnt > empty_spots) return; - } - - // At this point, we know for sure operation is legal - common_empty = false; - common_type = typs.front(); - UpdateCommonType(); - - // attempt to add after last selected item, but if that won't - // fit, then add into empty spots from the beginning. If - // placeholders must be overwritten, then do so as well. - - bool overwrite_plhdr = false; - int room_with_plhdr = -1; - if (cur_tm_steps > 1) { - room_with_plhdr = cur_tm_steps - GetIncListNameCnt(); - if (room_with_plhdr < sel_cnt) - overwrite_plhdr = true; - } - - list inc_list_sel = GetListSel(include_list); - int last_inc_list_sel = 0; - if (inc_list_sel.size() > 0) - last_inc_list_sel = inc_list_sel.back(); - - bool fill_from_top = false; - if (cur_tm_steps == 1) { - fill_from_top = true; - overwrite_plhdr = true; - - } else if (cur_tm_steps - last_inc_list_sel < sel_cnt) { - fill_from_top = true; - } - - // add time periods as needed - int item_cnt = include_list->GetItemCount(); - int room = item_cnt - GetIncListNonPlaceholderCnt(); - if (sel_cnt > room) { - int diff = sel_cnt - room; - for (int i=0; iRenameTimeStep(0, t); - } else { - t = GenerateTimeLabel(); - table_int->InsertTimeStep(item_cnt+i, t); - } - include_list->InsertItem(item_cnt+i, t); - - include_list->SetItem(item_cnt+i, 1, wxEmptyString); - } - } - - list ung_sel_strs = GetListSelStrs(ungrouped_list, 0); - - int insert_pos = 0; - if (!fill_from_top) insert_pos = last_inc_list_sel; - BOOST_FOREACH(const wxString& s, ung_sel_strs) { - while (!((overwrite_plhdr && (include_list->GetItemText(insert_pos, 1) == GdaConst::placeholder_str)) || include_list->GetItemText(insert_pos, 1).IsEmpty())) - { - ++insert_pos; - } - include_list->SetItem(insert_pos, 1, s); - ++insert_pos; - } - - // Remove added items from ungrouped_list - set add_nms; - BOOST_FOREACH(const wxString& s, ung_sel_strs) add_nms.insert(s); - list inc_nms; - inc_nms = GetListAllStrs(include_list, 1); - BOOST_FOREACH(const wxString& s, inc_nms) add_nms.insert(s); - - InitUngroupedList(add_nms); - - int inc_list_cnt = GetIncListNameCnt(); - UpdateTimeStepsTxt(); - - if (new_group_name_txt_ctrl->GetValue().IsEmpty() || inc_list_cnt > 1) { - vector names(inc_list_cnt); - for (int i=0; iGetItemText(i, 1); - } - wxString grp_nm = table_int->SuggestGroupName(names); - new_group_name_txt_ctrl->SetValue(grp_nm); - } - - UpdateButtons(); -} - -void VarGroupingEditorDlg::OnIncludePopupClick(wxCommandEvent &evt) -{ - wxLogMessage("In VarGroupingEditorDlg::OnIncludePopupClick"); - int menu_id = evt.GetId(); - if (menu_id == XRCID("INCLUDE_ADD_TIME")) { - includeListAddNewTime(); - } else if (menu_id == XRCID("INCLUDE_DELETE_TIME")) { - includeListDeleteTime(); - } - evt.Skip(); -} - -void VarGroupingEditorDlg::OnIncludeListItemActivate( wxListEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnIncludeListItemActivate"); - //wxCommandEvent ce; - //OnPlaceholderClick(ce); - wxListItem item = event.GetItem(); - - include_list->EditLabel(item.GetId()); -} - -wxString VarGroupingEditorDlg::GetNewAppendTimeLabel() -{ - wxString s = GenerateTimeLabel(); - return s; -} - -wxString VarGroupingEditorDlg::GenerateTimeLabel() -{ - wxString s; - for (int i=0; i<10000; i++) { - s = "time "; - s << i; - if (include_list->FindItem(-1, s) == wxNOT_FOUND) - return s; - } - return s; -} - -void VarGroupingEditorDlg::includeListAddNewTime() -{ - int time_step = include_list->GetItemCount(); - wxString lbl = GetNewAppendTimeLabel(); - - // sync TableState - table_int->InsertTimeStep(time_step, lbl); - include_list->InsertItem(time_step, lbl); - include_list->SetItem(time_step, 1, wxEmptyString); - UpdateTimeStepsTxt(); -} - -void VarGroupingEditorDlg::includeListDeleteTime() -{ - - std::list sels = GetListSel(include_list); - sels.sort(); - sels.reverse(); - if (!sels.empty()) { - BOOST_FOREACH(int i, sels) { - include_list->DeleteItem(i); - if (table_int->GetTimeSteps()>1) - table_int->RemoveTimeStep(i); - } - } - - list inc_strs = GetListAllStrs(include_list, 1); - set excl; - BOOST_FOREACH(const wxString& s, inc_strs) if (s!="") excl.insert(s); - InitUngroupedList(excl); - - UpdateTimeStepsTxt(); -} - -void VarGroupingEditorDlg::OnIncludeListDblClicked( wxMouseEvent& event) -{ - list inc_sel_pos = GetListSel(include_list); - BOOST_FOREACH(int i, inc_sel_pos) { - include_list->EditLabel(i); - break; - } -} - -void VarGroupingEditorDlg::OnIncludeListRightDown( wxMouseEvent& event) -{ -} - -void VarGroupingEditorDlg::OnIncludeListRightUp( wxMouseEvent& event) -{ - wxLogMessage("In VarGroupingEditorDlg::OnIncludeListRightUp"); - if (!is_editing) { + // make sure no duplicated group when adding a new group + bool case_sensitive = false; + if (!table_int->IsValidGroupName(grp_nm) || + table_int->DoesNameExist(grp_nm, case_sensitive)) { + wxString m; + m << "Variable name \"" << grp_nm << "\" is either a duplicate\n"; + m << "or is invalid. Please enter an alternative,\n"; + m << "non-duplicate variable name."; + wxMessageDialog dlg (this, m, _("Error"), wxOK | wxICON_ERROR ); + dlg.ShowModal(); + return; + } + + int tot_items = include_list->GetItemCount(); + std::vector cols(tot_items); + for (int t=0; tGetItemText(t, 1); + if (nm == GdaConst::placeholder_str) { + cols[t] = -1; + } else { + cols[t] = table_int->FindColId(nm); + } + } + + if (table_int->GetTimeSteps() == 1) { + if (table_int->GetTimeSteps() == 1 && tot_items > 1) { + if (table_state->GetNumDisallowTimelineChanges() > 0) { + wxString msg = table_state->GetDisallowTimelineChangesMsg(); + wxMessageDialog dlg (this, msg, _("Warning"), + wxOK | wxICON_INFORMATION); + dlg.ShowModal(); + return; + } + } + // This is a special case since we are increasing + // the number of table time steps. + for (int t=1; tInsertTimeStep(t, s); + } + } + + table_int->GroupCols(cols, grp_nm, cols[0]); + InitAll(); + UpdateButtons(); + GdaFrame::GetGdaFrame()->UpdateToolbarAndMenus(); + event.Skip(); +} + + +void VarGroupingEditorDlg::OnUngroupClick( wxCommandEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnUngroupClick"); + + wxString grp_nm = grouped_list->GetStringSelection(); + if (grp_nm == "") return; + int col = table_int->FindColId(grp_nm); + if (col < 0) return; + + int tms = table_int->GetColTimeSteps(col); + + set col_nms_set; + vector col_nms(tms); + for (int t=0; tGetColName(col, t); + if (nm.IsEmpty()) + nm = GdaConst::placeholder_str; + col_nms[t] = nm; + col_nms_set.insert(nm); + } + + GdaConst::FieldType type = table_int->GetColType(col); + + table_int->UngroupCol(col); + InitAll(); + + new_group_name_txt_ctrl->SetValue(grp_nm); + if (type == GdaConst::double_type || type == GdaConst::long64_type) { + common_type = "num"; + } else if (type == GdaConst::date_type) { + common_type = "date"; + } else if (type == GdaConst::time_type) { + common_type = "time"; + } else if (type == GdaConst::datetime_type) { + common_type = "datetime"; + } else { + common_type = "string"; + } + common_empty = false; + UpdateCommonType(); + + include_list->DeleteAllItems(); + for (int t=0; tInsertItem(t, wxEmptyString); + include_list->SetItem(t, 1, col_nms[t]); + include_list->SetItem(t, 0, table_int->GetTimeString(t)); + } + + InitUngroupedList(col_nms_set); + UpdateTimeStepsTxt(); + + UpdateButtons(); + event.Skip(); +} + +/** Shift selected items, including selection highlighting, + backwards in time. */ +void VarGroupingEditorDlg::OnMoveUpClick( wxCommandEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnMoveUpClick"); + if (!all_init) return; + int item_cnt = include_list->GetItemCount(); + int sel_count = include_list->GetSelectedItemCount(); + if (sel_count == 0) return; + list sel_pos = GetListSel(include_list); + if (sel_pos.front() == 0) return; + set sel_pos_set; + BOOST_FOREACH(int i, sel_pos) sel_pos_set.insert(i); + list unsel_pos; + for (int i=0; i orig(item_cnt); + for (int i=0; iGetItemText(i, 1); + UnselectAll(include_list); + set new_pos_set; + BOOST_FOREACH(int i, sel_pos) { + include_list->SetItem(i-1, 1, orig[i]); + SelectItem(include_list, i-1); + new_pos_set.insert(i-1); + } + int free_pos = 0; + BOOST_FOREACH(int i, unsel_pos) { + while (new_pos_set.find(free_pos) != new_pos_set.end()) ++free_pos; + include_list->SetItem(free_pos, 1, orig[i]); + ++free_pos; + } + UpdateButtons(); +} + +/** Shift selected items, including selection highlighting, + forwards in time */ +void VarGroupingEditorDlg::OnMoveDownClick( wxCommandEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnMoveDownClick"); + if (!all_init) return; + int item_cnt = include_list->GetItemCount(); + int sel_count = include_list->GetSelectedItemCount(); + if (sel_count == 0) return; + list sel_pos = GetListSel(include_list); + if (sel_pos.back() == item_cnt-1) return; + set sel_pos_set; + BOOST_FOREACH(int i, sel_pos) sel_pos_set.insert(i); + list unsel_pos; + for (int i=0; i orig(item_cnt); + for (int i=0; iGetItemText(i, 1); + + UnselectAll(include_list); + set new_pos_set; + BOOST_FOREACH(int i, sel_pos) { + include_list->SetItem(i+1, 1, orig[i]); + SelectItem(include_list, i+1); + new_pos_set.insert(i+1); + } + int free_pos = 0; + BOOST_FOREACH(int i, unsel_pos) { + while (new_pos_set.find(free_pos) != new_pos_set.end()) ++free_pos; + include_list->SetItem(free_pos, 1, orig[i]); + ++free_pos; + } + UpdateButtons(); +} + +void VarGroupingEditorDlg::sortColumn(int col, bool asc) +{ + if (!all_init) return; + + list all_str = GetListAllStrs(include_list, col); + list nm_locs; + vector sorted_nms; + set sel_nms; + int loc=0; + BOOST_FOREACH(const wxString& s, all_str) { + if (!s.IsEmpty() && s != GdaConst::placeholder_str) { + nm_locs.push_back(loc); + sorted_nms.push_back(s); + if (IsItemSel(include_list, loc)) { + UnselectItem(include_list, loc); + sel_nms.insert(s); + } + } + ++loc; + } + + asc = sort_asc; + sort_asc = !sort_asc; + + if (asc) + sort(sorted_nms.begin(), sorted_nms.end()); + else + sort(sorted_nms.begin(), sorted_nms.end(), greater()); + + list::iterator pos = nm_locs.begin(); + BOOST_FOREACH(const wxString& s, sorted_nms) { + include_list->SetItem(*pos, col, s); + if (sel_nms.find(s) != sel_nms.end()) + SelectItem(include_list, *pos); + ++pos; + } + + UpdateButtons(); +} + +/** Sort items in place ignoring blanks and placeholders. Highlighting + moves with items. */ +void VarGroupingEditorDlg::OnSortClick( wxCommandEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnSortClick"); + if (!all_init) return; + + list all_str = GetListAllStrs(include_list, 1); + list nm_locs; + vector sorted_nms; + set sel_nms; + int loc=0; + BOOST_FOREACH(const wxString& s, all_str) { + if (!s.IsEmpty() && s != GdaConst::placeholder_str) { + nm_locs.push_back(loc); + sorted_nms.push_back(s); + if (IsItemSel(include_list, loc)) { + UnselectItem(include_list, loc); + sel_nms.insert(s); + } + } + ++loc; + } + + sort(sorted_nms.begin(), sorted_nms.end()); + list::iterator pos = nm_locs.begin(); + BOOST_FOREACH(const wxString& s, sorted_nms) { + include_list->SetItem(*pos, 1, s); + if (sel_nms.find(s) != sel_nms.end()) + SelectItem(include_list, *pos); + ++pos; + } + + UpdateButtons(); +} + +// NOTE: this "placeholder" button is changed to "Edit" button +void VarGroupingEditorDlg::OnPlaceholderClick( wxCommandEvent& event ) +{ + wxPoint pt = GetPosition(); + std::list observers(frames_manager->getCopyObservers()); + std::list::iterator it; + for (it=observers.begin(); it != observers.end(); ++it) { + if (TimeEditorDlg* w = dynamic_cast(*it)) { + w->Show(true); + w->Maximize(false); + w->Raise(); + w->SetPosition(wxPoint(pt.x + 50, pt.y + 30)); + return; + } + } + + TimeEditorDlg* dlg = new TimeEditorDlg(0,frames_manager, table_state, table_int); + dlg->Show(true); + dlg->SetPosition(wxPoint(pt.x + 50, pt.y + 30)); + +} + +void VarGroupingEditorDlg::OnUngroupedListItemActivate( wxListEvent& event ) +{ + wxCommandEvent ce; + OnAddToListClick(ce); +} + +void VarGroupingEditorDlg::OnAddToListClick( wxCommandEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnAddToListClick"); + if (!all_init) return; + + int sel_cnt = ungrouped_list->GetSelectedItemCount(); + if (sel_cnt == 0) return; + + list typs = GetListSelStrs(ungrouped_list, 1); + set pool; + BOOST_FOREACH(const wxString& s, typs) pool.insert(s); + if (pool.size() != 1) return; + + if (!common_empty && common_type != typs.front()) return; + + int cur_tm_steps = table_int->GetTimeSteps(); + if (cur_tm_steps > 1) { + int empty_spots = cur_tm_steps - GetIncListNonPlaceholderCnt(); + //if (sel_cnt > empty_spots) return; + } + + // At this point, we know for sure operation is legal + common_empty = false; + common_type = typs.front(); + UpdateCommonType(); + + // attempt to add after last selected item, but if that won't + // fit, then add into empty spots from the beginning. If + // placeholders must be overwritten, then do so as well. + + bool overwrite_plhdr = false; + int room_with_plhdr = -1; + if (cur_tm_steps > 1) { + room_with_plhdr = cur_tm_steps - GetIncListNameCnt(); + if (room_with_plhdr < sel_cnt) + overwrite_plhdr = true; + } + + list inc_list_sel = GetListSel(include_list); + int last_inc_list_sel = 0; + if (inc_list_sel.size() > 0) + last_inc_list_sel = inc_list_sel.back(); + + bool fill_from_top = false; + if (cur_tm_steps == 1) { + fill_from_top = true; + overwrite_plhdr = true; + + } else if (cur_tm_steps - last_inc_list_sel < sel_cnt) { + fill_from_top = true; + } + + // add time periods as needed + int item_cnt = include_list->GetItemCount(); + int room = item_cnt - GetIncListNonPlaceholderCnt(); + if (sel_cnt > room) { + int diff = sel_cnt - room; + for (int i=0; iRenameTimeStep(0, t); + } else { + t = GenerateTimeLabel(); + table_int->InsertTimeStep(item_cnt+i, t); + } + include_list->InsertItem(item_cnt+i, t); + + include_list->SetItem(item_cnt+i, 1, wxEmptyString); + } + } + + list ung_sel_strs = GetListSelStrs(ungrouped_list, 0); + + int insert_pos = 0; + if (!fill_from_top) insert_pos = last_inc_list_sel; + BOOST_FOREACH(const wxString& s, ung_sel_strs) { + while (!((overwrite_plhdr && (include_list->GetItemText(insert_pos, 1) == GdaConst::placeholder_str)) || include_list->GetItemText(insert_pos, 1).IsEmpty())) + { + ++insert_pos; + } + include_list->SetItem(insert_pos, 1, s); + ++insert_pos; + } + + // Remove added items from ungrouped_list + set add_nms; + BOOST_FOREACH(const wxString& s, ung_sel_strs) add_nms.insert(s); + list inc_nms; + inc_nms = GetListAllStrs(include_list, 1); + BOOST_FOREACH(const wxString& s, inc_nms) add_nms.insert(s); + + InitUngroupedList(add_nms); + + int inc_list_cnt = GetIncListNameCnt(); + UpdateTimeStepsTxt(); + + if (new_group_name_txt_ctrl->GetValue().IsEmpty() || inc_list_cnt > 1) { + vector names(inc_list_cnt); + for (int i=0; iGetItemText(i, 1); + } + wxString grp_nm = table_int->SuggestGroupName(names); + new_group_name_txt_ctrl->SetValue(grp_nm); + } + + UpdateButtons(); +} + +void VarGroupingEditorDlg::OnIncludePopupClick(wxCommandEvent &evt) +{ + wxLogMessage("In VarGroupingEditorDlg::OnIncludePopupClick"); + int menu_id = evt.GetId(); + if (menu_id == XRCID("INCLUDE_ADD_TIME")) { + includeListAddNewTime(); + } else if (menu_id == XRCID("INCLUDE_DELETE_TIME")) { + includeListDeleteTime(); + } + evt.Skip(); +} + +void VarGroupingEditorDlg::OnIncludeListItemActivate( wxListEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnIncludeListItemActivate"); + //wxCommandEvent ce; + //OnPlaceholderClick(ce); + wxListItem item = event.GetItem(); + + include_list->EditLabel(item.GetId()); +} + +wxString VarGroupingEditorDlg::GetNewAppendTimeLabel() +{ + wxString s = GenerateTimeLabel(); + return s; +} + +wxString VarGroupingEditorDlg::GenerateTimeLabel() +{ + wxString s; + for (int i=0; i<10000; i++) { + s = "time "; + s << i; + if (include_list->FindItem(-1, s) == wxNOT_FOUND) + return s; + } + return s; +} + +void VarGroupingEditorDlg::includeListAddNewTime() +{ + int time_step = include_list->GetItemCount(); + wxString lbl = GetNewAppendTimeLabel(); + + // sync TableState + table_int->InsertTimeStep(time_step, lbl); + include_list->InsertItem(time_step, lbl); + include_list->SetItem(time_step, 1, wxEmptyString); + UpdateTimeStepsTxt(); +} + +void VarGroupingEditorDlg::includeListDeleteTime() +{ + + std::list sels = GetListSel(include_list); + sels.sort(); + sels.reverse(); + if (!sels.empty()) { + BOOST_FOREACH(int i, sels) { + include_list->DeleteItem(i); + if (table_int->GetTimeSteps()>1) + table_int->RemoveTimeStep(i); + } + } + + list inc_strs = GetListAllStrs(include_list, 1); + set excl; + BOOST_FOREACH(const wxString& s, inc_strs) if (s!="") excl.insert(s); + InitUngroupedList(excl); + + UpdateTimeStepsTxt(); +} + +void VarGroupingEditorDlg::OnIncludeListDblClicked( wxMouseEvent& event) +{ + list inc_sel_pos = GetListSel(include_list); + BOOST_FOREACH(int i, inc_sel_pos) { + include_list->EditLabel(i); + break; + } +} + +void VarGroupingEditorDlg::OnIncludeListRightDown( wxMouseEvent& event) +{ +} + +void VarGroupingEditorDlg::OnIncludeListRightUp( wxMouseEvent& event) +{ + wxLogMessage("In VarGroupingEditorDlg::OnIncludeListRightUp"); + if (!is_editing) { wxMenu mnu; int id1 = XRCID("INCLUDE_ADD_TIME"); mnu.Append(id1, _("Add Time")); @@ -981,438 +977,438 @@ void VarGroupingEditorDlg::OnIncludeListRightUp( wxMouseEvent& event) if (GetListSel(include_list).size() == 0) { mnu.Enable(XRCID("INCLUDE_DELETE_TIME"), false); } - PopupMenu(&mnu); - } - - event.Skip(); -} - -void VarGroupingEditorDlg::OnRemoveFrListClick( wxCommandEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnRemoveFrListClick"); - if (!all_init) return; - - list inc_sel_pos = GetListSel(include_list); - BOOST_FOREACH(int i, inc_sel_pos) { - include_list->SetItem(i, 1, ""); - include_list->SetItemState(i, 1, wxLIST_STATE_SELECTED); - } - - if (table_int->GetTimeSteps() == 1) { - // remove any unused time periods at the end - int inc_cnt = include_list->GetItemCount(); - bool done = false; - for (int i=inc_cnt-1; i>=0 && !done; --i) { - if (!include_list->GetItemText(i, 1).IsEmpty()) { - done = true; - } else { - include_list->DeleteItem(i); - } - } - } - - list inc_strs = GetListAllStrs(include_list, 1); - set excl; - BOOST_FOREACH(const wxString& s, inc_strs) if (s!="") excl.insert(s); - InitUngroupedList(excl); - - UpdateTimeStepsTxt(); - - if (GetIncListNonPlaceholderCnt() == 0) { - common_empty = true; - UpdateCommonType(); - } - - UpdateButtons(); -} - -void VarGroupingEditorDlg::OnUngroupedListSelection( wxListEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnUngroupedListSelection"); - if (!all_init) return; - - long item = -1; - item = ungrouped_list->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); - pos_ungrouped_list = item > -1 ? item : 0; - - UpdateButtons(); -} - -void VarGroupingEditorDlg::OnIncludeListSelection( wxListEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnIncludeListSelection"); - if (!all_init) return; - UpdateButtons(); -} - -void VarGroupingEditorDlg::OnIncludeListColClick( wxListEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnIncludeListColClick"); - long col = event.GetColumn(); - if (col > -1) - sortColumn(col); -} - -void VarGroupingEditorDlg::OnIncludeListEdit( wxListEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnIncludeListEdit"); - wxListItem item = event.GetItem(); - wxString val = item.GetText(); - is_editing = true; -} - - -void VarGroupingEditorDlg::OnIncludeListEditEnd( wxListEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnIncludeListEditEnd"); - - is_editing = false; - if (event.IsEditCancelled()) - return; - - int id = event.GetItem().GetId(); - wxString item_new = event.GetLabel(); - item_new.Trim(true); - item_new.Trim(false); - - // ensure that new time label is unique and not empty - bool is_dup = false; - for (int t=0, tms=table_int->GetTimeSteps(); tGetTimeString(t) == item_new) - is_dup = true; - } - - bool is_disallow = table_state->GetNumDisallowTimelineChanges() > 0; - - if (item_new.IsEmpty() || is_dup || is_disallow) { - if (is_disallow && !(item_new.IsEmpty() || is_dup)) { - wxString msg = table_state->GetDisallowTimelineChangesMsg(); - wxMessageDialog dlg(this, msg, _("Warning"), - wxOK | wxICON_INFORMATION); - dlg.ShowModal(); - } - - event.Veto(); - return; - } - - // item_new is valid, proceed with rename - table_int->RenameTimeStep(id, item_new); -} - - - -void VarGroupingEditorDlg::OnGroupedListSelection( wxCommandEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnGroupedListSelection"); - if (!all_init) return; - UpdateButtons(); -} - -void VarGroupingEditorDlg::OnNewGroupNameChange( wxCommandEvent& event ) -{ - wxLogMessage("In VarGroupingEditorDlg::OnNewGroupNameChange"); - if (!all_init) return; - UpdateGroupButton(); -} - - -void VarGroupingEditorDlg::UpdateGroupButton() -{ - group_button->Enable(!new_group_name_txt_ctrl->GetValue().IsEmpty() && - (GetIncListNameCnt() == table_int->GetTimeSteps() || - table_int->GetTimeSteps() == 1) ); -} - -void VarGroupingEditorDlg::UpdateAddToListButton() -{ - // Enable add to list button when following conditions are met: - - // 1) Non-empty selection - - //int sel_cnt = ungrouped_list->GetSelectedItemCount(); - int sel_cnt = GetListSel(ungrouped_list).size(); - if (sel_cnt == 0) { - add_to_list_button->Enable(false); - return; - } - - // 2) Currently selected items are type compatible with each other - std::list typs = GetListSelStrs(ungrouped_list, 1); - std::set pool; - BOOST_FOREACH(const wxString& s, typs) pool.insert(s); - if (pool.size() != 1) { - add_to_list_button->Enable(false); - return; - } - - // 3) Currently selected items are type compatible with items in - // include list currently - if (!common_empty && common_type != typs.front()) { - add_to_list_button->Enable(false); - return; - } - - // 4) Number of selected items is <= number of empty or placeholder items - // but current number of time steps is > 1 - /* - int cur_tm_steps = table_int->GetTimeSteps(); - if (cur_tm_steps > 1) { - int empty_spots = cur_tm_steps - GetIncListNonPlaceholderCnt(); - if (sel_cnt > empty_spots) { - add_to_list_button->Enable(false); - return; - } - } - */ - - add_to_list_button->Enable(true); -} - -void VarGroupingEditorDlg::UpdateButtons() -{ - using namespace std; - list sel_strs = GetListSelStrs(include_list, 1); - int non_empty_cnt = 0; - BOOST_FOREACH(const wxString& s, sel_strs) if (s != "") ++non_empty_cnt; - list sel_pos = GetListSel(include_list); - int sel_first = -1; - int sel_last = -1; - if (sel_pos.size() > 0) { - sel_first = sel_pos.front(); - sel_last = sel_pos.back(); - } - - int cnt = GetIncListNameCnt(); - int inc_item_cnt = include_list->GetItemCount(); - int inc_sel_cnt = include_list->GetSelectedItemCount(); - - move_up_button->Enable(inc_sel_cnt > 0 && sel_first != 0); - move_down_button->Enable(inc_sel_cnt > 0 && sel_last != inc_item_cnt-1); - sort_button->Enable(cnt > 1); - //placeholder_button->Enable((table_int->GetTimeSteps() == 1 && - // inc_item_cnt > 0) || - // (sel_strs.size()-non_empty_cnt > 0)); - placeholder_button->Enable(true); - placeholder_button->Hide(); - sort_button->Hide(); - - UpdateAddToListButton(); - remove_fr_list_button->Enable(non_empty_cnt > 0); - - ungroup_button->Enable(grouped_list->GetSelection() != wxNOT_FOUND); - - save_spacetime_button->Enable(grouped_list->GetCount() > 0); - - - UpdateGroupButton(); -} - -void VarGroupingEditorDlg::ResetAllButtons() -{ - group_button->Disable(); - ungroup_button->Disable(); - move_up_button->Disable(); - move_down_button->Disable(); - sort_button->Disable(); - placeholder_button->Disable(); - add_to_list_button->Disable(); - remove_fr_list_button->Disable(); - save_spacetime_button->Disable(); -} - -void VarGroupingEditorDlg::UpdateCommonType() -{ - if (common_empty) { - new_field_type_stat_txt->SetLabelText(""); - } else if (common_type == "str") { - new_field_type_stat_txt->SetLabelText("string"); - } else if (common_type == "date") { - new_field_type_stat_txt->SetLabelText("date"); - } else if (common_type == "time") { - new_field_type_stat_txt->SetLabelText("time"); - } else if (common_type == "datetime") { - new_field_type_stat_txt->SetLabelText("datetime"); - } else if (common_type == "num") { - new_field_type_stat_txt->SetLabelText("numeric"); - } -} - -void VarGroupingEditorDlg::UpdateTimeStepsTxt() -{ - wxString s; - int cur_tm_steps = table_int->GetTimeSteps(); + PopupMenu(&mnu); + } + + event.Skip(); +} + +void VarGroupingEditorDlg::OnRemoveFrListClick( wxCommandEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnRemoveFrListClick"); + if (!all_init) return; + + list inc_sel_pos = GetListSel(include_list); + BOOST_FOREACH(int i, inc_sel_pos) { + include_list->SetItem(i, 1, ""); + include_list->SetItemState(i, 1, wxLIST_STATE_SELECTED); + } + + if (table_int->GetTimeSteps() == 1) { + // remove any unused time periods at the end + int inc_cnt = include_list->GetItemCount(); + bool done = false; + for (int i=inc_cnt-1; i>=0 && !done; --i) { + if (!include_list->GetItemText(i, 1).IsEmpty()) { + done = true; + } else { + include_list->DeleteItem(i); + } + } + } + + list inc_strs = GetListAllStrs(include_list, 1); + set excl; + BOOST_FOREACH(const wxString& s, inc_strs) if (s!="") excl.insert(s); + InitUngroupedList(excl); + + UpdateTimeStepsTxt(); + + if (GetIncListNonPlaceholderCnt() == 0) { + common_empty = true; + UpdateCommonType(); + } + + UpdateButtons(); +} + +void VarGroupingEditorDlg::OnUngroupedListSelection( wxListEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnUngroupedListSelection"); + if (!all_init) return; + + long item = -1; + item = ungrouped_list->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + pos_ungrouped_list = item > -1 ? item : 0; + + UpdateButtons(); +} + +void VarGroupingEditorDlg::OnIncludeListSelection( wxListEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnIncludeListSelection"); + if (!all_init) return; + UpdateButtons(); +} + +void VarGroupingEditorDlg::OnIncludeListColClick( wxListEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnIncludeListColClick"); + long col = event.GetColumn(); + if (col > -1) + sortColumn(col); +} + +void VarGroupingEditorDlg::OnIncludeListEdit( wxListEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnIncludeListEdit"); + wxListItem item = event.GetItem(); + wxString val = item.GetText(); + is_editing = true; +} + + +void VarGroupingEditorDlg::OnIncludeListEditEnd( wxListEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnIncludeListEditEnd"); + + is_editing = false; + if (event.IsEditCancelled()) + return; + + int id = event.GetItem().GetId(); + wxString item_new = event.GetLabel(); + item_new.Trim(true); + item_new.Trim(false); + + // ensure that new time label is unique and not empty + bool is_dup = false; + for (int t=0, tms=table_int->GetTimeSteps(); tGetTimeString(t) == item_new) + is_dup = true; + } + + bool is_disallow = table_state->GetNumDisallowTimelineChanges() > 0; + + if (item_new.IsEmpty() || is_dup || is_disallow) { + if (is_disallow && !(item_new.IsEmpty() || is_dup)) { + wxString msg = table_state->GetDisallowTimelineChangesMsg(); + wxMessageDialog dlg(this, msg, _("Warning"), + wxOK | wxICON_INFORMATION); + dlg.ShowModal(); + } + + event.Veto(); + return; + } + + // item_new is valid, proceed with rename + table_int->RenameTimeStep(id, item_new); +} + + + +void VarGroupingEditorDlg::OnGroupedListSelection( wxCommandEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnGroupedListSelection"); + if (!all_init) return; + UpdateButtons(); +} + +void VarGroupingEditorDlg::OnNewGroupNameChange( wxCommandEvent& event ) +{ + wxLogMessage("In VarGroupingEditorDlg::OnNewGroupNameChange"); + if (!all_init) return; + UpdateGroupButton(); +} + + +void VarGroupingEditorDlg::UpdateGroupButton() +{ + group_button->Enable(!new_group_name_txt_ctrl->GetValue().IsEmpty() && + (GetIncListNameCnt() == table_int->GetTimeSteps() || + table_int->GetTimeSteps() == 1) ); +} + +void VarGroupingEditorDlg::UpdateAddToListButton() +{ + // Enable add to list button when following conditions are met: + + // 1) Non-empty selection + + //int sel_cnt = ungrouped_list->GetSelectedItemCount(); + int sel_cnt = GetListSel(ungrouped_list).size(); + if (sel_cnt == 0) { + add_to_list_button->Enable(false); + return; + } + + // 2) Currently selected items are type compatible with each other + std::list typs = GetListSelStrs(ungrouped_list, 1); + std::set pool; + BOOST_FOREACH(const wxString& s, typs) pool.insert(s); + if (pool.size() != 1) { + add_to_list_button->Enable(false); + return; + } + + // 3) Currently selected items are type compatible with items in + // include list currently + if (!common_empty && common_type != typs.front()) { + add_to_list_button->Enable(false); + return; + } + + // 4) Number of selected items is <= number of empty or placeholder items + // but current number of time steps is > 1 + /* + int cur_tm_steps = table_int->GetTimeSteps(); + if (cur_tm_steps > 1) { + int empty_spots = cur_tm_steps - GetIncListNonPlaceholderCnt(); + if (sel_cnt > empty_spots) { + add_to_list_button->Enable(false); + return; + } + } + */ + + add_to_list_button->Enable(true); +} + +void VarGroupingEditorDlg::UpdateButtons() +{ + using namespace std; + list sel_strs = GetListSelStrs(include_list, 1); + int non_empty_cnt = 0; + BOOST_FOREACH(const wxString& s, sel_strs) if (s != "") ++non_empty_cnt; + list sel_pos = GetListSel(include_list); + int sel_first = -1; + int sel_last = -1; + if (sel_pos.size() > 0) { + sel_first = sel_pos.front(); + sel_last = sel_pos.back(); + } + + int cnt = GetIncListNameCnt(); + int inc_item_cnt = include_list->GetItemCount(); + int inc_sel_cnt = include_list->GetSelectedItemCount(); + + move_up_button->Enable(inc_sel_cnt > 0 && sel_first != 0); + move_down_button->Enable(inc_sel_cnt > 0 && sel_last != inc_item_cnt-1); + sort_button->Enable(cnt > 1); + //placeholder_button->Enable((table_int->GetTimeSteps() == 1 && + // inc_item_cnt > 0) || + // (sel_strs.size()-non_empty_cnt > 0)); + placeholder_button->Enable(true); + placeholder_button->Hide(); + sort_button->Hide(); + + UpdateAddToListButton(); + remove_fr_list_button->Enable(non_empty_cnt > 0); + + ungroup_button->Enable(grouped_list->GetSelection() != wxNOT_FOUND); + + save_spacetime_button->Enable(grouped_list->GetCount() > 0); + + + UpdateGroupButton(); +} + +void VarGroupingEditorDlg::ResetAllButtons() +{ + group_button->Disable(); + ungroup_button->Disable(); + move_up_button->Disable(); + move_down_button->Disable(); + sort_button->Disable(); + placeholder_button->Disable(); + add_to_list_button->Disable(); + remove_fr_list_button->Disable(); + save_spacetime_button->Disable(); +} + +void VarGroupingEditorDlg::UpdateCommonType() +{ + if (common_empty) { + new_field_type_stat_txt->SetLabelText(""); + } else if (common_type == "str") { + new_field_type_stat_txt->SetLabelText("string"); + } else if (common_type == "date") { + new_field_type_stat_txt->SetLabelText("date"); + } else if (common_type == "time") { + new_field_type_stat_txt->SetLabelText("time"); + } else if (common_type == "datetime") { + new_field_type_stat_txt->SetLabelText("datetime"); + } else if (common_type == "num") { + new_field_type_stat_txt->SetLabelText("numeric"); + } +} + +void VarGroupingEditorDlg::UpdateTimeStepsTxt() +{ + wxString s; + int cur_tm_steps = table_int->GetTimeSteps(); if (cur_tm_steps > 1) { - s = wxString::Format(_("%d of %d variables to include"), GetIncListNameCnt(), cur_tm_steps); + s = wxString::Format(_("%d of %d variables to include"), GetIncListNameCnt(), cur_tm_steps); } else { - s = wxString::Format(_("%d variables to include"), GetIncListNameCnt()); - } - include_list_stat_txt->SetLabelText(s); - //wxSizer* szr = include_list_stat_txt->GetContainingSizer(); - //if (szr) szr->Layout(); - //Fit(); - Refresh(); -} - -void VarGroupingEditorDlg::OnUngroupedVarsHelp( wxCommandEvent& event ) -{ - wxString msg; - msg << _("List of existing ungrouped variables. To group variables by time, move them to the list on the right.\n\nFor example, to group Pop80 and Pop90, select them on the left and move them to the right."); - - wxMessageDialog dlg (this, msg, "Help", wxOK | wxICON_INFORMATION ); - dlg.ShowModal(); -} - -void VarGroupingEditorDlg::OnNewGroupHelp( wxCommandEvent& event ) -{ - wxString msg; - msg << _("Add a name for your group of variables. \n\nYou can edit the time period labels for easier interpretation of results."); - - wxMessageDialog dlg (this, msg, "Help", wxOK | wxICON_INFORMATION ); - dlg.ShowModal(); -} - -void VarGroupingEditorDlg::OnSaveSTHelp( wxCommandEvent& event ) -{ - wxString msg; - msg << _("Once you have grouped variables, you can save a new space-time table and weights: To add a spatial ID to your space-time table and create space-time weights, you need to have an active weights file (Tools-Weights Manager)."); - - wxMessageDialog dlg (this, msg, "Help", wxOK | wxICON_INFORMATION ); - dlg.ShowModal(); -} - -void VarGroupingEditorDlg::OnCurGroupedHelp( wxCommandEvent& event ) -{ - wxString msg; - msg << _("This is the list of existing grouped variables. As new groups are created, they will appear on this list. You can open an existing .gda file and edit it here."); - - wxMessageDialog dlg (this, msg, "Help", wxOK | wxICON_INFORMATION ); - dlg.ShowModal(); -} - -void VarGroupingEditorDlg::OnLoadFromGda( wxCommandEvent& event ) -{ - wxString wildcard = "GeoDa Project (*.gda)|*.gda"; - wxFileDialog dlg(this, _("GeoDa Project File to Open"), "", "", wildcard); - if (dlg.ShowModal() != wxID_OK) return; - - wxString full_proj_path = dlg.GetPath(); - - try { - ProjectConfiguration* project_conf = new ProjectConfiguration(full_proj_path); - project->UpdateProjectConf(project_conf); - } catch( GdaException& ex) { - wxMessageDialog dlg (this, ex.what(), _("Error"), wxOK | wxICON_ERROR ); - dlg.ShowModal(); - } - -} - -void VarGroupingEditorDlg::update(FramesManager* o) -{ -} - -void VarGroupingEditorDlg::update(TableState* o) -{ - TableState::EventType ev_type = o->GetEventType(); - if (ev_type == TableState::refresh || ev_type == TableState::col_rename) - { - common_empty = true; - InitAll(); - ResetAllButtons(); - UpdateCommonType(); - } -} - -std::list VarGroupingEditorDlg::GetListSel(wxListCtrl* lc) -{ - std::list l; - if (!lc) return l; - long item = -1; - for ( ;; ) { - item = lc->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); - if ( item == -1 ) break; - l.push_back(item); - } - return l; -} - -std::list VarGroupingEditorDlg::GetListSelStrs(wxListCtrl* lc, - int col) -{ - std::list l; - if (!lc) return l; - long item = -1; - for ( ;; ) { - item = lc->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); - if ( item == -1 ) break; - l.push_back(lc->GetItemText(item, col)); - } - return l; -} - -std::list VarGroupingEditorDlg::GetListAllStrs(wxListCtrl* lc, - int col) -{ - std::list l; - if (!lc) return l; - long item = -1; - for ( ;; ) { - item = lc->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_DONTCARE); - if ( item == -1 ) break; - l.push_back(lc->GetItemText(item, col)); - } - return l; -} - -void VarGroupingEditorDlg::UnselectAll(wxListCtrl* lc) -{ - if (!lc) return; - int cnt = lc->GetItemCount(); - for (int i=0; iSetItemState(i, 0, wxLIST_STATE_SELECTED); - } -} - -void VarGroupingEditorDlg::SelectItem(wxListCtrl* lc, int i) -{ - if (!lc || i<0 || i>=lc->GetItemCount()) return; - lc->SetItemState(i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); -} - -void VarGroupingEditorDlg::UnselectItem(wxListCtrl* lc, int i) -{ - if (!lc || i<0 || i>=lc->GetItemCount()) return; - lc->SetItemState(i, 0, wxLIST_STATE_SELECTED); -} - -bool VarGroupingEditorDlg::IsItemSel(wxListCtrl* lc, int i) -{ - if (!lc || i<0 || i>=lc->GetItemCount()) return false; - return lc->GetItemState(i, wxLIST_STATE_SELECTED) != 0; -} - -int VarGroupingEditorDlg::GetIncListNameCnt() -{ - if (!all_init || !include_list) return 0; - int nm_cnt = 0; - for (int i=0, il_sz=include_list->GetItemCount(); iGetItemText(i, 1).IsEmpty()) ++nm_cnt; - } - return nm_cnt; -} - -int VarGroupingEditorDlg::GetIncListNonPlaceholderCnt() -{ - if (!all_init || !include_list) return 0; - int nm_cnt = 0; - for (int i=0, il_sz=include_list->GetItemCount(); iGetItemText(i, 1).IsEmpty() && - include_list->GetItemText(i, 1) != GdaConst::placeholder_str ) - { - ++nm_cnt; - } - } - return nm_cnt; -} - + s = wxString::Format(_("%d variables to include"), GetIncListNameCnt()); + } + include_list_stat_txt->SetLabelText(s); + //wxSizer* szr = include_list_stat_txt->GetContainingSizer(); + //if (szr) szr->Layout(); + //Fit(); + Refresh(); +} + +void VarGroupingEditorDlg::OnUngroupedVarsHelp( wxCommandEvent& event ) +{ + wxString msg; + msg << _("List of existing ungrouped variables. To group variables by time, move them to the list on the right.\n\nFor example, to group Pop80 and Pop90, select them on the left and move them to the right."); + + wxMessageDialog dlg (this, msg, "Help", wxOK | wxICON_INFORMATION ); + dlg.ShowModal(); +} + +void VarGroupingEditorDlg::OnNewGroupHelp( wxCommandEvent& event ) +{ + wxString msg; + msg << _("Add a name for your group of variables. \n\nYou can edit the time period labels for easier interpretation of results."); + + wxMessageDialog dlg (this, msg, "Help", wxOK | wxICON_INFORMATION ); + dlg.ShowModal(); +} + +void VarGroupingEditorDlg::OnSaveSTHelp( wxCommandEvent& event ) +{ + wxString msg; + msg << _("Once you have grouped variables, you can save a new space-time table and weights: To add a spatial ID to your space-time table and create space-time weights, you need to have an active weights file (Tools-Weights Manager)."); + + wxMessageDialog dlg (this, msg, "Help", wxOK | wxICON_INFORMATION ); + dlg.ShowModal(); +} + +void VarGroupingEditorDlg::OnCurGroupedHelp( wxCommandEvent& event ) +{ + wxString msg; + msg << _("This is the list of existing grouped variables. As new groups are created, they will appear on this list. You can open an existing .gda file and edit it here."); + + wxMessageDialog dlg (this, msg, "Help", wxOK | wxICON_INFORMATION ); + dlg.ShowModal(); +} + +void VarGroupingEditorDlg::OnLoadFromGda( wxCommandEvent& event ) +{ + wxString wildcard = "GeoDa Project (*.gda)|*.gda"; + wxFileDialog dlg(this, _("GeoDa Project File to Open"), "", "", wildcard); + if (dlg.ShowModal() != wxID_OK) return; + + wxString full_proj_path = dlg.GetPath(); + + try { + ProjectConfiguration* project_conf = new ProjectConfiguration(full_proj_path); + project->UpdateProjectConf(project_conf); + } catch( GdaException& ex) { + wxMessageDialog dlg (this, ex.what(), _("Error"), wxOK | wxICON_ERROR ); + dlg.ShowModal(); + } + +} + +void VarGroupingEditorDlg::update(FramesManager* o) +{ +} + +void VarGroupingEditorDlg::update(TableState* o) +{ + TableState::EventType ev_type = o->GetEventType(); + if (ev_type == TableState::refresh || ev_type == TableState::col_rename) + { + common_empty = true; + InitAll(); + ResetAllButtons(); + UpdateCommonType(); + } +} + +std::list VarGroupingEditorDlg::GetListSel(wxListCtrl* lc) +{ + std::list l; + if (!lc) return l; + long item = -1; + for ( ;; ) { + item = lc->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + if ( item == -1 ) break; + l.push_back(item); + } + return l; +} + +std::list VarGroupingEditorDlg::GetListSelStrs(wxListCtrl* lc, + int col) +{ + std::list l; + if (!lc) return l; + long item = -1; + for ( ;; ) { + item = lc->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + if ( item == -1 ) break; + l.push_back(lc->GetItemText(item, col)); + } + return l; +} + +std::list VarGroupingEditorDlg::GetListAllStrs(wxListCtrl* lc, + int col) +{ + std::list l; + if (!lc) return l; + long item = -1; + for ( ;; ) { + item = lc->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_DONTCARE); + if ( item == -1 ) break; + l.push_back(lc->GetItemText(item, col)); + } + return l; +} + +void VarGroupingEditorDlg::UnselectAll(wxListCtrl* lc) +{ + if (!lc) return; + int cnt = lc->GetItemCount(); + for (int i=0; iSetItemState(i, 0, wxLIST_STATE_SELECTED); + } +} + +void VarGroupingEditorDlg::SelectItem(wxListCtrl* lc, int i) +{ + if (!lc || i<0 || i>=lc->GetItemCount()) return; + lc->SetItemState(i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); +} + +void VarGroupingEditorDlg::UnselectItem(wxListCtrl* lc, int i) +{ + if (!lc || i<0 || i>=lc->GetItemCount()) return; + lc->SetItemState(i, 0, wxLIST_STATE_SELECTED); +} + +bool VarGroupingEditorDlg::IsItemSel(wxListCtrl* lc, int i) +{ + if (!lc || i<0 || i>=lc->GetItemCount()) return false; + return lc->GetItemState(i, wxLIST_STATE_SELECTED) != 0; +} + +int VarGroupingEditorDlg::GetIncListNameCnt() +{ + if (!all_init || !include_list) return 0; + int nm_cnt = 0; + for (int i=0, il_sz=include_list->GetItemCount(); iGetItemText(i, 1).IsEmpty()) ++nm_cnt; + } + return nm_cnt; +} + +int VarGroupingEditorDlg::GetIncListNonPlaceholderCnt() +{ + if (!all_init || !include_list) return 0; + int nm_cnt = 0; + for (int i=0, il_sz=include_list->GetItemCount(); iGetItemText(i, 1).IsEmpty() && + include_list->GetItemText(i, 1) != GdaConst::placeholder_str ) + { + ++nm_cnt; + } + } + return nm_cnt; +} + From 30128bb81ec67c27aa133fcd876c336acdf5b116 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Wed, 21 Aug 2019 11:57:38 -0700 Subject: [PATCH 44/60] Update MapNewView.cpp (ubuntu only) switch from gtk 2.0 to gtk-3.0 --- Explore/MapNewView.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Explore/MapNewView.cpp b/Explore/MapNewView.cpp index 84ad1a8af..7c74802b8 100644 --- a/Explore/MapNewView.cpp +++ b/Explore/MapNewView.cpp @@ -1415,7 +1415,7 @@ void MapCanvas::RenderToDC(wxDC &dc, int w, int h) layer1_dc.Clear(); if (isDrawBasemap) { wxImage im = basemap_bm->ConvertToImage(); -#if defined(__WIN32__) || defined(__linux__) +#if defined(__WIN32__) im.Rescale(w*basemap_scale, h*basemap_scale, wxIMAGE_QUALITY_HIGH); #endif layer1_dc.DrawBitmap(im, 0, 0); From 542059b4de12b9294dc964631b6a575e10429d46 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Wed, 21 Aug 2019 15:58:44 -0700 Subject: [PATCH 45/60] retouch colocation/custom editor color button after swithing to gtk 3.0 --- DialogTools/CatClassifDlg.cpp | 33 +++++++-------------------------- Explore/ColocationMapView.cpp | 28 ++++------------------------ 2 files changed, 11 insertions(+), 50 deletions(-) diff --git a/DialogTools/CatClassifDlg.cpp b/DialogTools/CatClassifDlg.cpp index c4a1b5095..65aca5718 100644 --- a/DialogTools/CatClassifDlg.cpp +++ b/DialogTools/CatClassifDlg.cpp @@ -1059,18 +1059,6 @@ void CatClassifPanel::OnBreaksChoice(wxCommandEvent& event) } } -void CatClassifPanel::ChangeColorButton(wxStaticBitmap* ctrl, wxColour& sel_clr) -{ - wxBitmap clr(16, 16); - wxMemoryDC dc; - dc.SelectObject(clr); - dc.SetBackground(sel_clr); - dc.Clear(); - dc.SelectObject(wxNullBitmap); - ctrl->SetBitmap(clr); - ctrl->Refresh(); -} - void CatClassifPanel::OnColorSchemeChoice(wxCommandEvent& event) { wxLogMessage("CatClassifPanel::OnColorSchemeChoice"); @@ -1082,16 +1070,14 @@ void CatClassifPanel::OnColorSchemeChoice(wxCommandEvent& event) cc_data.color_scheme, cc_data.num_cats, false); for (size_t i=0; iSetBackgroundColour(cc_data.colors[i]); - ChangeColorButton(cat_color_button[i], cc_data.colors[i]); + cat_color_button[i]->SetBackgroundColour(cc_data.colors[i]); } } else { CatClassification::PickColorSet(cc_data.colors, cc_data.color_scheme, cc_data.num_cats, false); for (size_t i=0; iSetBackgroundColour(cc_data.colors[0]); - ChangeColorButton(cat_color_button[i], cc_data.colors[0]); + cat_color_button[i]->SetBackgroundColour(cc_data.colors[0]); } } cc_data.cat_classif_type = CatClassification::custom; @@ -1151,8 +1137,7 @@ void CatClassifPanel::OnNumCatsChoice(wxCommandEvent& event) } if (cc_data.num_cats > 1) { for (size_t i=0; iSetBackgroundColour(cc_data.colors[i]); - ChangeColorButton(cat_color_button[i], cc_data.colors[i]); + cat_color_button[i]->SetBackgroundColour(cc_data.colors[i]); } } else if (event.GetSelection() > 0 && color_scheme->GetSelection()==3){ // if create more than one breaks from themeless map, @@ -1527,8 +1512,7 @@ void CatClassifPanel::OnBrkSlider(wxCommandEvent& event) &cc_data.breaks, &cc_data.colors); for (int i=0; iSetBackgroundColour(cc_data.colors[i]); - ChangeColorButton(cat_color_button[i], cc_data.colors[i]); + cat_color_button[i]->SetBackgroundColour(cc_data.colors[i]); cat_title_txt[i]->ChangeValue(cc_data.names[i]); } @@ -1617,8 +1601,7 @@ void CatClassifPanel::OnCategoryColorButton(wxMouseEvent& event) SetColorSchemeChoice(CatClassification::custom_color_scheme); cc_data.color_scheme = CatClassification::custom_color_scheme; cc_data.colors[obj_id] = retData.GetColour(); - //cat_color_button[obj_id]->SetBackgroundColour(retData.GetColour()); - ChangeColorButton(cat_color_button[obj_id], retData.GetColour()); + cat_color_button[obj_id]->SetBackgroundColour(retData.GetColour()); UpdateCCState(); hist_canvas->ChangeAll(&preview_data, cc_data.break_vals_type, &cc_data.breaks, &cc_data.colors); @@ -1914,8 +1897,7 @@ void CatClassifPanel::ResetValuesToDefault() CatClassification::diverging_color_scheme, default_intervals, false); for (int i=0; iSetBackgroundColour(cc_data.colors[i]); - ChangeColorButton(cat_color_button[i], cc_data.colors[i]); + cat_color_button[i]->SetBackgroundColour(cc_data.colors[i]); } Refresh(); @@ -1979,8 +1961,7 @@ void CatClassifPanel::InitFromCCData() SetUnifDistMode(cc_data.assoc_db_fld_name.IsEmpty()); SetNumCats(cc_data.num_cats); for (int i=0; iSetBackgroundColour(cc_data.colors[i]); - ChangeColorButton(cat_color_button[i], cc_data.colors[i]); + cat_color_button[i]->SetBackgroundColour(cc_data.colors[i]); cat_title_txt[i]->ChangeValue(cc_data.names[i]); cat_title_txt[i]->SetEditable(!cc_data.automatic_labels); } diff --git a/Explore/ColocationMapView.cpp b/Explore/ColocationMapView.cpp index 6bf6a794a..921ce6d78 100644 --- a/Explore/ColocationMapView.cpp +++ b/Explore/ColocationMapView.cpp @@ -289,16 +289,8 @@ void ColocationSelectDlg::OnSchemeSelect( wxCommandEvent& event) if (co_bitmaps[i]) { wxString sel_val = co_boxes[i]->GetLabel(); wxColour sel_clr = get_a_color(sel_val); - - wxBitmap clr(16,16); - wxMemoryDC dc; - dc.SelectObject(clr); - dc.SetBackground(sel_clr); - dc.Clear(); - dc.SelectObject(wxNullBitmap); - m_colors.push_back(sel_clr); - co_bitmaps[i]->SetBitmap(clr); + co_bitmaps[i]->SetBackgroundColour(sel_clr); co_bitmaps[i]->Refresh(); } } @@ -424,14 +416,10 @@ void ColocationSelectDlg::add_colo_control(bool is_new) wxCheckBox* chk = new wxCheckBox(scrl, base_choice_id+cnt, tmp); chk->SetValue(true); + wxBitmap clr; wxColour sel_clr = get_a_color(cnt); - wxBitmap clr(16,16); - wxMemoryDC dc; - dc.SelectObject(clr); - dc.SetBackground(sel_clr); - dc.Clear(); - dc.SelectObject(wxNullBitmap); wxStaticBitmap* color_btn = new wxStaticBitmap(scrl, base_color_id+cnt, clr, wxDefaultPosition, wxSize(16,16)); + color_btn->SetBackgroundColour(sel_clr); color_btn->Bind(wxEVT_LEFT_UP, &ColocationSelectDlg::OnClickColor, this); @@ -480,15 +468,7 @@ void ColocationSelectDlg::OnClickColor( wxMouseEvent& event) wxColourData retData = dialog.GetColourData(); wxColour sel_clr = retData.GetColour(); - - wxBitmap clr(16,16); - wxMemoryDC dc; - dc.SelectObject(clr); - dc.SetBackground(sel_clr); - dc.Clear(); - dc.SelectObject(wxNullBitmap); - - co_bitmaps[obj_id]->SetBitmap(clr); + co_bitmaps[obj_id]->SetBackgroundColour(sel_clr); co_bitmaps[obj_id]->Refresh(); m_colors[obj_id] = sel_clr; } From 11c98d8c4a44a797c400e73c8ccf2c68c53c85ae Mon Sep 17 00:00:00 2001 From: lixun910 Date: Wed, 21 Aug 2019 17:17:11 -0700 Subject: [PATCH 46/60] on Ubuntu: save thumbnails to users home directory instead of installation directory --- DialogTools/ConnectDatasourceDlg.cpp | 10 ++++++++-- Explore/MapNewView.cpp | 11 ++++++++--- GenUtils.cpp | 16 ++++++++++++++++ GenUtils.h | 1 + GeoDamake.opt | 6 +++--- 5 files changed, 36 insertions(+), 8 deletions(-) diff --git a/DialogTools/ConnectDatasourceDlg.cpp b/DialogTools/ConnectDatasourceDlg.cpp index c250eccae..de12c0d9c 100644 --- a/DialogTools/ConnectDatasourceDlg.cpp +++ b/DialogTools/ConnectDatasourceDlg.cpp @@ -31,7 +31,6 @@ #include #include #include - #include #include #include @@ -472,9 +471,16 @@ void ConnectDatasourceDlg::AddRecentItem(wxBoxSizer* sizer, wxScrolledWindow* sc wxImage img; if (!wxFileExists(file_path_str)) { +#ifdef __linux__ + file_path_str = GenUtils::GetUserSamplesDir() + ds_thumb; + if (!wxFileExists(file_path_str)) { + ds_thumb = "no_map.png"; + file_path_str = GenUtils::GetSamplesDir() + ds_thumb; + } +#else ds_thumb = "no_map.png"; file_path_str = GenUtils::GetSamplesDir() + ds_thumb; - +#endif } img.LoadFile(file_path_str); if (!img.IsOk()) { diff --git a/Explore/MapNewView.cpp b/Explore/MapNewView.cpp index 7c74802b8..129fae468 100644 --- a/Explore/MapNewView.cpp +++ b/Explore/MapNewView.cpp @@ -1002,9 +1002,10 @@ void MapCanvas::DrawLayer2() layer2_valid = true; if ( MapCanvas::has_thumbnail_saved == false) { if (isDrawBasemap && layerbase_valid == false) { - return; + //return; + } else { + CallAfter(&MapCanvas::SaveThumbnail); } - CallAfter(&MapCanvas::SaveThumbnail); } dc.SelectObject(wxNullBitmap); } @@ -1206,14 +1207,18 @@ void MapCanvas::SaveThumbnail() if (MapCanvas::has_thumbnail_saved == false) { RecentDatasource recent_ds; if (layer_name == recent_ds.GetLastLayerName() && - !ds_name.EndsWith("samples.sqlite") && + //!ds_name.EndsWith("samples.sqlite") && !ds_name.Contains("geodacenter.github.io")) { wxImage image = layer2_bm->ConvertToImage(); long current_time_sec = wxGetUTCTime(); wxString file_name; file_name << current_time_sec << ".png"; wxString file_path; +#ifdef __linux__ + file_path << GenUtils::GetUserSamplesDir() << file_name; +#else file_path << GenUtils::GetSamplesDir() << file_name; +#endif bool su = image.SaveFile(file_path, wxBITMAP_TYPE_PNG ); if (su) { recent_ds.UpdateLastThumb(file_name); diff --git a/GenUtils.cpp b/GenUtils.cpp index d4bd160d1..648881e25 100644 --- a/GenUtils.cpp +++ b/GenUtils.cpp @@ -2129,6 +2129,22 @@ wxString GenUtils::GetSamplesDir() #endif } +wxString GenUtils::GetUserSamplesDir() +{ + // this function will be only called in linux env + wxString confDir = wxStandardPaths::Get().GetUserConfigDir(); + // Unix: ~ (the home directory) + wxString geodaUserDir = confDir + wxFileName::GetPathSeparator() + ".geoda"; + if (wxDirExists(geodaUserDir) == false) { + wxFileName::Mkdir(geodaUserDir); + } + wxString webDir = geodaUserDir + wxFileName::GetPathSeparator() + "web_plugins"; + if (wxDirExists(webDir) == false) { + wxFileName::Mkdir(webDir); + } + return webDir; +} + wxString GenUtils::GetBasemapDir() { #ifdef __linux__ diff --git a/GenUtils.h b/GenUtils.h index 11e51f285..ffae4b55d 100644 --- a/GenUtils.h +++ b/GenUtils.h @@ -438,6 +438,7 @@ namespace GenUtils { wxString GetWebPluginsDir(); wxString GetResourceDir(); wxString GetSamplesDir(); + wxString GetUserSamplesDir(); wxString GetBasemapDir(); wxString GetCachePath(); bool less_vectors(const vector& a,const vector& b); diff --git a/GeoDamake.opt b/GeoDamake.opt index 74703d954..f407f4889 100644 --- a/GeoDamake.opt +++ b/GeoDamake.opt @@ -19,7 +19,7 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_thread.a \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ - -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkitgtk-1.0 -lEGL + -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl -L/usr/lib/x86_64-linux-gnu -lz -lwebkitgtk-3.0 -lEGL # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. @@ -30,8 +30,8 @@ EIGEN_HEADER = -I$(GEODA_HOME)/libraries/include/eigen3 GDAL_HEADER = -I$(GEODA_HOME)/libraries/include CPPFLAGS = -I$(GeoDa_ROOT) -std=c++98 -CFLAGS = -O2 -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) -CXXFLAGS = -O2 $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) +CFLAGS = -O0 -g -DDEBUG -Wdeclaration-after-statement $(USER_DEFS) $(GDAL_HEADER) $(EIGEN_HEADER) +CXXFLAGS = -O0 -g -DDEBUG $(USER_DEFS) $(WX_HEADER) $(BOOST_HEADER) $(GDAL_HEADER) $(EIGEN_HEADER) LDFLAGS = OBJ_EXT = o From 5d8e6b958ae70527420ad3188b3fda933b56519b Mon Sep 17 00:00:00 2001 From: lixun910 Date: Thu, 22 Aug 2019 00:03:57 -0700 Subject: [PATCH 47/60] update build scripts for bionic ubuntu --- BuildTools/ubuntu/build_bionic.sh | 4 ++-- BuildTools/ubuntu/package/DEBIAN/control1804 | 2 +- BuildTools/ubuntu/package/DEBIAN/control64 | 2 +- GeoDamake.xenial.opt | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/BuildTools/ubuntu/build_bionic.sh b/BuildTools/ubuntu/build_bionic.sh index d1b7ae1d7..00b775890 100755 --- a/BuildTools/ubuntu/build_bionic.sh +++ b/BuildTools/ubuntu/build_bionic.sh @@ -15,7 +15,7 @@ echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" read -p "Install pre-requisites for development: cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlibg-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkitgtk-dev libssl-dev? [y/n]" -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then - sudo apt install cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlib1g-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkitgtk-dev libssl-dev + sudo apt install cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlib1g-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkitgtk-3.0-dev libssl-dev fi @@ -660,7 +660,7 @@ echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" cp -rf $GEODA_HOME/dep/$LIB_NAME/* . chmod +x configure chmod +x src/stc/gen_iface.py - ./configure --with-gtk=3 --disable-optimise --disable-shared --disable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX + ./configure --with-gtk=3 --disable-shared --disable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX $MAKER make install cd .. diff --git a/BuildTools/ubuntu/package/DEBIAN/control1804 b/BuildTools/ubuntu/package/DEBIAN/control1804 index 4b9e2f861..285e53c50 100644 --- a/BuildTools/ubuntu/package/DEBIAN/control1804 +++ b/BuildTools/ubuntu/package/DEBIAN/control1804 @@ -4,7 +4,7 @@ Architecture: amd64 Priority: optional Section: graphics Installed-Size: 121795 -Depends: zlib1g, libexpat1, freeglut3, libreadline7, libgtk-3-0, libssl1.0.0, libwebkitgtk-1.0-0 +Depends: zlib1g, libexpat1, freeglut3, libreadline7, libgtk-3-0, libssl1.0.0, libwebkitgtk-3.0-0 Maintainer: Luc Anselin < anselin@uchicago.edu > Provides: geoda Homepage: http://spatial.uchicago.edu diff --git a/BuildTools/ubuntu/package/DEBIAN/control64 b/BuildTools/ubuntu/package/DEBIAN/control64 index b07211075..6c1d5d9ea 100644 --- a/BuildTools/ubuntu/package/DEBIAN/control64 +++ b/BuildTools/ubuntu/package/DEBIAN/control64 @@ -4,7 +4,7 @@ Architecture: amd64 Priority: optional Section: graphics Installed-Size: 208574 -Depends: zlib1g, libexpat1, freeglut3, libreadline6, libgtk-3-0, libssl1.0.0, libwebkitgtk-1.0-0 +Depends: zlib1g, libexpat1, freeglut3, libreadline6, libgtk-3-0, libssl1.0.0, libwebkitgtk-3.0-0 Maintainer: Luc Anselin < anselin@uchicago.edu > Provides: geoda Homepage: http://spatial.uchicago.edu diff --git a/GeoDamake.xenial.opt b/GeoDamake.xenial.opt index ed96cc914..c5095677b 100644 --- a/GeoDamake.xenial.opt +++ b/GeoDamake.xenial.opt @@ -20,7 +20,7 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl \ - -L/usr/lib/x86_64-linux-gnu -lwebkitgtk-1.0 -lGL -lz -lGLU -lEGL -lexpat + -L/usr/lib/x86_64-linux-gnu -lwebkitgtk-3.0 -lGL -lz -lGLU -lEGL -lexpat # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. From 2b6ede91157b2351cc4d078a3f21e09102d3f11e Mon Sep 17 00:00:00 2001 From: lixun910 Date: Thu, 22 Aug 2019 00:05:14 -0700 Subject: [PATCH 48/60] update build script xenial ubuntu --- BuildTools/ubuntu/build_xenial.sh | 4 ++-- GeoDamake.xenial.opt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/BuildTools/ubuntu/build_xenial.sh b/BuildTools/ubuntu/build_xenial.sh index 239b44c5c..c177bf68d 100755 --- a/BuildTools/ubuntu/build_xenial.sh +++ b/BuildTools/ubuntu/build_xenial.sh @@ -15,7 +15,7 @@ echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" read -p "Install pre-requisites for development: cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlib1g-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkit-dev libssl-dev? [y/n]" -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then - sudo apt install cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlib1g-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkit-dev libssl-dev + sudo apt install cmake curl dh-autoreconf libexpat1-dev libreadline-dev zlib1g-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev libwebkit-dev libssl-dev libwebkit-gtk-3.0-dev fi @@ -633,7 +633,7 @@ echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" cp -rf $GEODA_HOME/dep/$LIB_NAME/* . chmod +x configure chmod +x src/stc/gen_iface.py - ./configure --with-gtk=2 --disable-shared --enable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX + ./configure --with-gtk=3 --disable-shared --enable-monolithic --with-opengl --enable-postscript --without-libtiff --disable-debug --enable-webview --prefix=$PREFIX $MAKER make install cd .. diff --git a/GeoDamake.xenial.opt b/GeoDamake.xenial.opt index ed96cc914..c5095677b 100644 --- a/GeoDamake.xenial.opt +++ b/GeoDamake.xenial.opt @@ -20,7 +20,7 @@ LIBS = $(WXLIBS) \ $(GEODA_HOME)/libraries/include/boost/stage/lib/libboost_system.a \ $(GEODA_HOME)/libraries/lib/libjson_spirit.a \ -L$(GEODA_HOME)/libraries/lib -lgdal -lcurl \ - -L/usr/lib/x86_64-linux-gnu -lwebkitgtk-1.0 -lGL -lz -lGLU -lEGL -lexpat + -L/usr/lib/x86_64-linux-gnu -lwebkitgtk-3.0 -lGL -lz -lGLU -lEGL -lexpat # Note: Library -lrtmp causes a missing library problem at runtime on # Ubuntu 14.10 and later. From db21108974717e96c399455e95ae13ce7552da8b Mon Sep 17 00:00:00 2001 From: lixun910 Date: Thu, 22 Aug 2019 00:09:33 -0700 Subject: [PATCH 49/60] update ui after swithing to GTK3.0 on ubuntu --- DataViewer/DataViewerAddColDlg.cpp | 2 + DialogTools/SaveToTableDlg.cpp | 964 ++++++++++++++--------------- Explore/CorrelParamsDlg.cpp | 2 +- GenUtils.cpp | 2 +- 4 files changed, 486 insertions(+), 484 deletions(-) diff --git a/DataViewer/DataViewerAddColDlg.cpp b/DataViewer/DataViewerAddColDlg.cpp index 3020b9b8e..5bd8358d6 100644 --- a/DataViewer/DataViewerAddColDlg.cpp +++ b/DataViewer/DataViewerAddColDlg.cpp @@ -182,6 +182,8 @@ void DataViewerAddColDlg::CreateControls() CheckName(); SetDefaultsByType(default_field_type); + FitInside(); + Fit(); } void DataViewerAddColDlg::OnChoiceType( wxCommandEvent& ev ) diff --git a/DialogTools/SaveToTableDlg.cpp b/DialogTools/SaveToTableDlg.cpp index 29972f855..45b504589 100644 --- a/DialogTools/SaveToTableDlg.cpp +++ b/DialogTools/SaveToTableDlg.cpp @@ -1,489 +1,489 @@ -/** - * GeoDa TM, Copyright (C) 2011-2015 by Luc Anselin - all rights reserved - * - * This file is part of GeoDa. - * - * GeoDa 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. - * - * GeoDa 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 . - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "../DataViewer/DataViewerAddColDlg.h" -#include "../DataViewer/TableInterface.h" -#include "../DataViewer/TimeState.h" -#include "../GeneralWxUtils.h" -#include "../GeoDa.h" -#include "../logger.h" -#include "../Project.h" -#include "SaveToTableDlg.h" - -const int ID_ADD_BUTTON = XRCID("SAVETOTABLEDLG_ADD_BUTTON"); -const int ID_FIELD_CHOICE = XRCID("SAVETOTABLEDLG_FIELD_CHOICE"); -const int ID_TIME_CHOICE = XRCID("SAVETOTABLEDLG_TIME_CHOICE"); -const int ID_CHECK = XRCID("SAVETOTABLEDLG_CHECK"); -const int ID_FIELD_TEXT = XRCID("SAVETOTABLEDLG_FIELD_TEXT"); - -BEGIN_EVENT_TABLE( SaveToTableDlg, wxDialog ) - EVT_CHECKBOX( ID_CHECK, SaveToTableDlg::OnCheck ) - EVT_BUTTON( ID_ADD_BUTTON, SaveToTableDlg::OnAddFieldButton ) - EVT_CHOICE( ID_FIELD_CHOICE, SaveToTableDlg::OnFieldChoice ) - EVT_CHOICE( ID_TIME_CHOICE, SaveToTableDlg::OnTimeChoice ) - EVT_BUTTON( XRCID("wxID_OK"), SaveToTableDlg::OnOkClick ) - EVT_BUTTON( XRCID("wxID_CLOSE"), SaveToTableDlg::OnCloseClick ) -END_EVENT_TABLE() - -SaveToTableDlg::SaveToTableDlg(Project* project_s, wxWindow* parent, - const std::vector& data_s, - const wxString& title, const wxPoint& pos, - const wxSize& size, long style) -: wxDialog(parent, wxID_ANY, title, pos, size, style), -data(data_s), -project(project_s), -table_int(project_s->GetTableInt()), -m_check(data_s.size()), -m_add_button(data_s.size()), -m_field(data_s.size()), -m_txt_field(data_s.size()), -m_time(data_s.size()), -col_id_maps(data_s.size()), -is_space_time(project_s->GetTableInt()->IsTimeVariant()), -all_init(false) -{ - for (int i=0, iend=data.size(); i. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "../DataViewer/DataViewerAddColDlg.h" +#include "../DataViewer/TableInterface.h" +#include "../DataViewer/TimeState.h" +#include "../GeneralWxUtils.h" +#include "../GeoDa.h" +#include "../logger.h" +#include "../Project.h" +#include "SaveToTableDlg.h" + +const int ID_ADD_BUTTON = XRCID("SAVETOTABLEDLG_ADD_BUTTON"); +const int ID_FIELD_CHOICE = XRCID("SAVETOTABLEDLG_FIELD_CHOICE"); +const int ID_TIME_CHOICE = XRCID("SAVETOTABLEDLG_TIME_CHOICE"); +const int ID_CHECK = XRCID("SAVETOTABLEDLG_CHECK"); +const int ID_FIELD_TEXT = XRCID("SAVETOTABLEDLG_FIELD_TEXT"); + +BEGIN_EVENT_TABLE( SaveToTableDlg, wxDialog ) + EVT_CHECKBOX( ID_CHECK, SaveToTableDlg::OnCheck ) + EVT_BUTTON( ID_ADD_BUTTON, SaveToTableDlg::OnAddFieldButton ) + EVT_CHOICE( ID_FIELD_CHOICE, SaveToTableDlg::OnFieldChoice ) + EVT_CHOICE( ID_TIME_CHOICE, SaveToTableDlg::OnTimeChoice ) + EVT_BUTTON( XRCID("wxID_OK"), SaveToTableDlg::OnOkClick ) + EVT_BUTTON( XRCID("wxID_CLOSE"), SaveToTableDlg::OnCloseClick ) +END_EVENT_TABLE() + +SaveToTableDlg::SaveToTableDlg(Project* project_s, wxWindow* parent, + const std::vector& data_s, + const wxString& title, const wxPoint& pos, + const wxSize& size, long style) +: wxDialog(parent, wxID_ANY, title, pos, size, style), +data(data_s), +project(project_s), +table_int(project_s->GetTableInt()), +m_check(data_s.size()), +m_add_button(data_s.size()), +m_field(data_s.size()), +m_txt_field(data_s.size()), +m_time(data_s.size()), +col_id_maps(data_s.size()), +is_space_time(project_s->GetTableInt()->IsTimeVariant()), +all_init(false) +{ + for (int i=0, iend=data.size(); iSetValue(true); - m_add_button[i] = new wxButton(this, ID_ADD_BUTTON, "Add Variable"); + wxDefaultPosition, wxSize(-1, 30)); + m_check[i]->SetValue(true); + m_add_button[i] = new wxButton(this, ID_ADD_BUTTON, "Add Variable"); m_field[i] = new wxChoice(this, ID_FIELD_CHOICE, wxDefaultPosition, - wxSize(180, 20)); + wxSize(180, -1)); m_txt_field[i] = new wxTextCtrl(this, ID_FIELD_TEXT, data[i].field_default, - wxDefaultPosition, wxSize(180, 20), - wxTE_PROCESS_ENTER); - - m_txt_field[i]->Connect(wxEVT_COMMAND_TEXT_ENTER, - wxCommandEventHandler(SaveToTableDlg::OnOkClick), - NULL, this); - - if (is_space_time) { + wxDefaultPosition, wxSize(180, -1), + wxTE_PROCESS_ENTER); + + m_txt_field[i]->Connect(wxEVT_COMMAND_TEXT_ENTER, + wxCommandEventHandler(SaveToTableDlg::OnOkClick), + NULL, this); + + if (is_space_time) { m_time[i] = new wxChoice(this, ID_TIME_CHOICE, wxDefaultPosition, - wxSize(180, 20)); - m_time[i]->Hide(); - } else { - m_time[i] = 0; - } - - m_add_button[i]->Hide(); - m_field[i]->Hide(); - } - - - m_field_label = new wxStaticText(this, wxID_ANY, _("Variable Name")); - if (data.size() == 1) - m_check[0]->SetValue(1); - - InitTime(); - FillColIdMaps(); - InitFields(); - - for (int i=0; iSetSelection(m_field[i]->FindString(data[i].field_default)); - } - - CreateControls(); - - for (int i=0; iAddSpacer(400); - //top_sizer->Add(space_sizer, 0, wxALL, 1); - - int fg_cols = is_space_time ? 4 : 3; - // data.size() rows, fg_cols columns, vgap=3, hgap=3 - wxFlexGridSizer *fg_sizer = new wxFlexGridSizer((int) data.size() + 1, 2, 3, 3); - - fg_sizer->AddSpacer(10); - fg_sizer->Add(m_field_label, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - //wxBoxSizer* fg_sizer = new wxBoxSizer(wxVERTICAL); - for (int i=0, iend=data.size(); iAdd(m_check[i], 0, wxALIGN_CENTRE_VERTICAL | wxALL, 5); - //fg_sizer->Add(m_add_button[i], 0, wxALIGN_CENTRE_VERTICAL | wxALL, 5); - //fg_sizer->Add(m_field[i], 0, wxALIGN_CENTRE_VERTICAL | wxALL, 5); - //if (is_space_time) { - // fg_sizer->Add(m_time[i], 0, wxALIGN_CENTRE_VERTICAL | wxALL, 5); - //} - fg_sizer->Add(m_check[i], 0, wxALL|wxALIGN_LEFT, 2); - fg_sizer->Add(m_txt_field[i], 0, wxALL|wxALIGN_CENTER, 5); - } - - //top_sizer->Add(fg_sizer, 0, wxALL, 8); // border of 8 around fg_sizer - top_sizer->Add(fg_sizer, 0, wxALL|wxALIGN_CENTER, 5); - wxBoxSizer *button_sizer = new wxBoxSizer(wxHORIZONTAL); - m_ok_button = new wxButton(this, wxID_OK, _("OK")); - //m_ok_button->Disable(); - button_sizer->Add(m_ok_button, 0, wxALL, 5); - button_sizer->Add(new wxButton(this, wxID_CLOSE, _("Close")), 0, wxALL, 5); - top_sizer->Add(button_sizer, 0, wxALL|wxALIGN_CENTER, 5); - - - SetSizerAndFit(top_sizer); -} - -void SaveToTableDlg::OnAddFieldButton( wxCommandEvent& event ) -{ - LOG_MSG("Entering SaveToTableDlg::OnAddFieldButton"); - if (!all_init) return; - wxButton* obj = (wxButton*) event.GetEventObject(); - bool found = false; - int obj_id = -1; - for (int i=0; i prev_col_nm(data.size()); - for (int i=0; iGetStringSelection(); - } - - + wxSize(180, -1)); + m_time[i]->Hide(); + } else { + m_time[i] = 0; + } + + m_add_button[i]->Hide(); + m_field[i]->Hide(); + } + + + m_field_label = new wxStaticText(this, wxID_ANY, _("Variable Name")); + if (data.size() == 1) + m_check[0]->SetValue(1); + + InitTime(); + FillColIdMaps(); + InitFields(); + + for (int i=0; iSetSelection(m_field[i]->FindString(data[i].field_default)); + } + + CreateControls(); + + for (int i=0; iAddSpacer(400); + //top_sizer->Add(space_sizer, 0, wxALL, 1); + + int fg_cols = is_space_time ? 4 : 3; + // data.size() rows, fg_cols columns, vgap=3, hgap=3 + wxFlexGridSizer *fg_sizer = new wxFlexGridSizer((int) data.size() + 1, 2, 3, 3); + + fg_sizer->AddSpacer(10); + fg_sizer->Add(m_field_label, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + //wxBoxSizer* fg_sizer = new wxBoxSizer(wxVERTICAL); + for (int i=0, iend=data.size(); iAdd(m_check[i], 0, wxALIGN_CENTRE_VERTICAL | wxALL, 5); + //fg_sizer->Add(m_add_button[i], 0, wxALIGN_CENTRE_VERTICAL | wxALL, 5); + //fg_sizer->Add(m_field[i], 0, wxALIGN_CENTRE_VERTICAL | wxALL, 5); + //if (is_space_time) { + // fg_sizer->Add(m_time[i], 0, wxALIGN_CENTRE_VERTICAL | wxALL, 5); + //} + fg_sizer->Add(m_check[i], 0, wxALL|wxALIGN_LEFT, 2); + fg_sizer->Add(m_txt_field[i], 0, wxALL|wxALIGN_CENTER, 5); + } + + //top_sizer->Add(fg_sizer, 0, wxALL, 8); // border of 8 around fg_sizer + top_sizer->Add(fg_sizer, 0, wxALL|wxALIGN_CENTER, 5); + wxBoxSizer *button_sizer = new wxBoxSizer(wxHORIZONTAL); + m_ok_button = new wxButton(this, wxID_OK, _("OK")); + //m_ok_button->Disable(); + button_sizer->Add(m_ok_button, 0, wxALL, 5); + button_sizer->Add(new wxButton(this, wxID_CLOSE, _("Close")), 0, wxALL, 5); + top_sizer->Add(button_sizer, 0, wxALL|wxALIGN_CENTER, 5); + + + SetSizerAndFit(top_sizer); +} + +void SaveToTableDlg::OnAddFieldButton( wxCommandEvent& event ) +{ + LOG_MSG("Entering SaveToTableDlg::OnAddFieldButton"); + if (!all_init) return; + wxButton* obj = (wxButton*) event.GetEventObject(); + bool found = false; + int obj_id = -1; + for (int i=0; i prev_col_nm(data.size()); + for (int i=0; iGetStringSelection(); + } + + // Multiple time periods seems complex to user, // we don't set "multiple time periods" by default, - // even there is time defined. - DataViewerAddColDlg dlg(project, this, true, true, - data[obj_id].field_default, - data[obj_id].type); - if (dlg.ShowModal() != wxID_OK) return; - int col = dlg.GetColId(); - - GdaConst::FieldType type = table_int->GetColType(col); - if (type != data[obj_id].type && - data[obj_id].type == GdaConst::long64_type && - type != GdaConst::double_type) - return; - // reinitialize all field lists, but set list corresponding to button - // to newly created field - FillColIdMaps(); - InitFields(); - - for (int i=0; iFindString(prev_col_nm[i]); - if (sel != wxNOT_FOUND) { - m_field[i]->SetSelection(sel); - } else { - m_field[i]->SetSelection(-1); - } - } - - m_field[obj_id]->SetSelection(m_field[obj_id]->FindString(dlg.GetColName())); - - EnableTimeField(obj_id); - m_check[obj_id]->SetValue(1); - UpdateOkButton(); - LOG_MSG("Exiting SaveToTableDlg::OnAddFieldButton"); -} - -void SaveToTableDlg::OnFieldChoice( wxCommandEvent& event ) -{ - if (!all_init) return; - wxChoice* obj = (wxChoice*) event.GetEventObject(); - bool found = false; - int obj_id = -1; - for (int i=0; i is_check(data.size()); - for (int i=0, e=data.size(); iGetValue()==1; - } - bool any_checked = false; - for (int i=0, e=data.size(); iDisable(); - return; - } - for (int i=0, e=data.size(); iGetSelection()) { - m_ok_button->Disable(); - return; - } - } - m_ok_button->Enable(); -} - -void SaveToTableDlg::EnableTimeField(int button) -{ - if (!is_space_time) return; - if (m_field[button]->GetSelection() == wxNOT_FOUND) { - m_time[button]->Disable(); - return; - } - int col = col_id_maps[button][m_field[button]->GetSelection()]; - m_time[button]->Enable(table_int->IsColTimeVariant(col)); -} - -void SaveToTableDlg::UpdateFieldTms(int button) -{ - if (!is_space_time) - return; - - int prev_col = -1; - if (m_field[button]->GetSelection() != wxNOT_FOUND) { - prev_col = col_id_maps[button][m_field[button]->GetSelection()]; - } - - InitField(button); - - if (prev_col != -1) { - for (int i=0; iSetSelection(i); - } - } - } -} - -void SaveToTableDlg::OnOkClick( wxCommandEvent& event ) -{ - - std::vector is_check(data.size()); - for (int i=0, e=data.size(); iGetValue()==1; - } - - bool any_checked = false; - for (int i=0, e=data.size(); i fname; - for (int i=0, iend=data.size(); iGetValue(); - if (name.empty()) { - wxMessageDialog dlg(this, _("Variable name can't be empty."), - _("Error"), wxOK | wxICON_ERROR ); - dlg.ShowModal(); - return; - } - fname.push_back(name); - } - } - - // Throw all fname[i] into a set container and check for duplicates while - // adding them in. - std::set names; - std::set::iterator it; - for (int i=0, iend=fname.size(); iGetValue(); - int time=0; - int col = table_int->FindColId(field_name); - if ( col == wxNOT_FOUND) { - int col_insert_pos = table_int->GetNumberCols(); - int time_steps = 1; - int m_length_val = GdaConst::default_dbf_long_len; - int m_decimals_val = 0; - - if (data[i].type == GdaConst::double_type) { - m_length_val = GdaConst::default_dbf_double_len; - m_decimals_val = GdaConst::default_dbf_double_decimals; - } else if (data[i].type == GdaConst::long64_type) { - m_length_val = GdaConst::default_dbf_long_len; - m_decimals_val = 0; - } else if (data[i].type == GdaConst::string_type) { - m_length_val = GdaConst::default_dbf_string_len; - m_decimals_val = 0; - } - col = table_int->InsertCol(data[i].type, field_name, col_insert_pos, time_steps, m_length_val, m_decimals_val); - } - if (col > 0) { - if (data[i].d_val) { - table_int->SetColData(col, time, *data[i].d_val); - } else if (data[i].l_val) { - table_int->SetColData(col, time, *data[i].l_val); - } - if (data[i].undefined) { - table_int->SetColUndefined(col, time, *data[i].undefined); - } - } - new_col_ids.push_back(col); - new_col_names.push_back(field_name); - } - } - - event.Skip(); - EndDialog(wxID_OK); -} - -void SaveToTableDlg::OnCloseClick( wxCommandEvent& event ) -{ - event.Skip(); - EndDialog(wxID_CLOSE); -} - -void SaveToTableDlg::InitTime() -{ - if (!is_space_time) - return; - for (int j=0, jend=data.size(); jGetTableInt()->GetTimeSteps(); t++) { - wxString tm; - tm << project->GetTableInt()->GetTimeString(t); - m_time[j]->Append(tm); - } - m_time[j]->SetSelection(0); - m_time[j]->Disable(); - } -} - -void SaveToTableDlg::FillColIdMaps() -{ - std::vector tmp_col_id_map; - table_int->FillColIdMap(tmp_col_id_map); - for (int i=0; iGetNumberCols(); i++) { - int col = tmp_col_id_map[i]; - if (table_int->GetColType(col) == GdaConst::double_type) { - for (int j=0, jend=data.size(); jGetColType(col) == GdaConst::double_type || - table_int->GetColType(col) == GdaConst::long64_type) { - for (int j=0, jend=data.size(); jClear(); - - for (int i=0, iend=col_id_maps[button].size(); iIsColTimeVariant(col)) { - // wxString t; - // int t_sel = m_time[button]->GetSelection(); - // t << " (" << project->GetTableInt()->GetTimeString(t_sel) << ")"; - // m_field[button]->Append(table_int->GetColName(col) + t); - //} else { - m_field[button]->Append(table_int->GetColName(col)); - //} - } -} - -void SaveToTableDlg::InitFields() -{ - // assumes that FillColIdMaps and InitTime has been called previously - for (int i=0; iGetColType(col); + if (type != data[obj_id].type && + data[obj_id].type == GdaConst::long64_type && + type != GdaConst::double_type) + return; + // reinitialize all field lists, but set list corresponding to button + // to newly created field + FillColIdMaps(); + InitFields(); + + for (int i=0; iFindString(prev_col_nm[i]); + if (sel != wxNOT_FOUND) { + m_field[i]->SetSelection(sel); + } else { + m_field[i]->SetSelection(-1); + } + } + + m_field[obj_id]->SetSelection(m_field[obj_id]->FindString(dlg.GetColName())); + + EnableTimeField(obj_id); + m_check[obj_id]->SetValue(1); + UpdateOkButton(); + LOG_MSG("Exiting SaveToTableDlg::OnAddFieldButton"); +} + +void SaveToTableDlg::OnFieldChoice( wxCommandEvent& event ) +{ + if (!all_init) return; + wxChoice* obj = (wxChoice*) event.GetEventObject(); + bool found = false; + int obj_id = -1; + for (int i=0; i is_check(data.size()); + for (int i=0, e=data.size(); iGetValue()==1; + } + bool any_checked = false; + for (int i=0, e=data.size(); iDisable(); + return; + } + for (int i=0, e=data.size(); iGetSelection()) { + m_ok_button->Disable(); + return; + } + } + m_ok_button->Enable(); +} + +void SaveToTableDlg::EnableTimeField(int button) +{ + if (!is_space_time) return; + if (m_field[button]->GetSelection() == wxNOT_FOUND) { + m_time[button]->Disable(); + return; + } + int col = col_id_maps[button][m_field[button]->GetSelection()]; + m_time[button]->Enable(table_int->IsColTimeVariant(col)); +} + +void SaveToTableDlg::UpdateFieldTms(int button) +{ + if (!is_space_time) + return; + + int prev_col = -1; + if (m_field[button]->GetSelection() != wxNOT_FOUND) { + prev_col = col_id_maps[button][m_field[button]->GetSelection()]; + } + + InitField(button); + + if (prev_col != -1) { + for (int i=0; iSetSelection(i); + } + } + } +} + +void SaveToTableDlg::OnOkClick( wxCommandEvent& event ) +{ + + std::vector is_check(data.size()); + for (int i=0, e=data.size(); iGetValue()==1; + } + + bool any_checked = false; + for (int i=0, e=data.size(); i fname; + for (int i=0, iend=data.size(); iGetValue(); + if (name.empty()) { + wxMessageDialog dlg(this, _("Variable name can't be empty."), + _("Error"), wxOK | wxICON_ERROR ); + dlg.ShowModal(); + return; + } + fname.push_back(name); + } + } + + // Throw all fname[i] into a set container and check for duplicates while + // adding them in. + std::set names; + std::set::iterator it; + for (int i=0, iend=fname.size(); iGetValue(); + int time=0; + int col = table_int->FindColId(field_name); + if ( col == wxNOT_FOUND) { + int col_insert_pos = table_int->GetNumberCols(); + int time_steps = 1; + int m_length_val = GdaConst::default_dbf_long_len; + int m_decimals_val = 0; + + if (data[i].type == GdaConst::double_type) { + m_length_val = GdaConst::default_dbf_double_len; + m_decimals_val = GdaConst::default_dbf_double_decimals; + } else if (data[i].type == GdaConst::long64_type) { + m_length_val = GdaConst::default_dbf_long_len; + m_decimals_val = 0; + } else if (data[i].type == GdaConst::string_type) { + m_length_val = GdaConst::default_dbf_string_len; + m_decimals_val = 0; + } + col = table_int->InsertCol(data[i].type, field_name, col_insert_pos, time_steps, m_length_val, m_decimals_val); + } + if (col > 0) { + if (data[i].d_val) { + table_int->SetColData(col, time, *data[i].d_val); + } else if (data[i].l_val) { + table_int->SetColData(col, time, *data[i].l_val); + } + if (data[i].undefined) { + table_int->SetColUndefined(col, time, *data[i].undefined); + } + } + new_col_ids.push_back(col); + new_col_names.push_back(field_name); + } + } + + event.Skip(); + EndDialog(wxID_OK); +} + +void SaveToTableDlg::OnCloseClick( wxCommandEvent& event ) +{ + event.Skip(); + EndDialog(wxID_CLOSE); +} + +void SaveToTableDlg::InitTime() +{ + if (!is_space_time) + return; + for (int j=0, jend=data.size(); jGetTableInt()->GetTimeSteps(); t++) { + wxString tm; + tm << project->GetTableInt()->GetTimeString(t); + m_time[j]->Append(tm); + } + m_time[j]->SetSelection(0); + m_time[j]->Disable(); + } +} + +void SaveToTableDlg::FillColIdMaps() +{ + std::vector tmp_col_id_map; + table_int->FillColIdMap(tmp_col_id_map); + for (int i=0; iGetNumberCols(); i++) { + int col = tmp_col_id_map[i]; + if (table_int->GetColType(col) == GdaConst::double_type) { + for (int j=0, jend=data.size(); jGetColType(col) == GdaConst::double_type || + table_int->GetColType(col) == GdaConst::long64_type) { + for (int j=0, jend=data.size(); jClear(); + + for (int i=0, iend=col_id_maps[button].size(); iIsColTimeVariant(col)) { + // wxString t; + // int t_sel = m_time[button]->GetSelection(); + // t << " (" << project->GetTableInt()->GetTimeString(t_sel) << ")"; + // m_field[button]->Append(table_int->GetColName(col) + t); + //} else { + m_field[button]->Append(table_int->GetColName(col)); + //} + } +} + +void SaveToTableDlg::InitFields() +{ + // assumes that FillColIdMaps and InitTime has been called previously + for (int i=0; i 0) var_nm = var_man.GetName(0); diff --git a/GenUtils.cpp b/GenUtils.cpp index 648881e25..95386e28d 100644 --- a/GenUtils.cpp +++ b/GenUtils.cpp @@ -2142,7 +2142,7 @@ wxString GenUtils::GetUserSamplesDir() if (wxDirExists(webDir) == false) { wxFileName::Mkdir(webDir); } - return webDir; + return webDir + wxFileName::GetPathSeparator(); } wxString GenUtils::GetBasemapDir() From 034d062f41172e1f6d31ea04a3a709e1bb923137 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Thu, 22 Aug 2019 19:41:45 -0700 Subject: [PATCH 50/60] Windows issue: save data with field name with chinese characters --- DialogTools/CsvFieldConfDlg.cpp | 2 +- DialogTools/FieldNameCorrectionDlg.cpp | 2 +- ShapeOperations/OGRDatasourceProxy.cpp | 4 ++-- ShapeOperations/OGRLayerProxy.cpp | 7 +++++++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/DialogTools/CsvFieldConfDlg.cpp b/DialogTools/CsvFieldConfDlg.cpp index 40380ebe1..5d5ecd3de 100644 --- a/DialogTools/CsvFieldConfDlg.cpp +++ b/DialogTools/CsvFieldConfDlg.cpp @@ -268,7 +268,7 @@ void CsvFieldConfDlg::PrereadCSV(int HEADERS) for(int iField = 0; iField < nFields; iField++) { OGRFieldDefn *poFieldDefn = poFDefn->GetFieldDefn( iField ); - wxString fieldName = poFieldDefn->GetNameRef(); + wxString fieldName = wxString(poFieldDefn->GetNameRef(), wxConvUTF8); col_names.push_back(fieldName); if( poFieldDefn->GetType() == OFTInteger ) { diff --git a/DialogTools/FieldNameCorrectionDlg.cpp b/DialogTools/FieldNameCorrectionDlg.cpp index 15b7057a2..918ac907f 100644 --- a/DialogTools/FieldNameCorrectionDlg.cpp +++ b/DialogTools/FieldNameCorrectionDlg.cpp @@ -513,7 +513,7 @@ wxString ScrolledWidgetsPane::RenameDupFieldName(const wxString& old_name) bool ScrolledWidgetsPane::IsFieldNameValid(const wxString& col_name) { wxLogMessage("ScrolledWidgetsPane::IsFieldNameValid"); - wxLogMessage(col_name); + //wxLogMessage(col_name); if ( GdaConst::datasrc_field_lens.find(ds_type) == GdaConst::datasrc_field_lens.end() ) diff --git a/ShapeOperations/OGRDatasourceProxy.cpp b/ShapeOperations/OGRDatasourceProxy.cpp index 01547d70d..4a99415a4 100644 --- a/ShapeOperations/OGRDatasourceProxy.cpp +++ b/ShapeOperations/OGRDatasourceProxy.cpp @@ -424,7 +424,7 @@ OGRDatasourceProxy::CreateLayer(wxString layer_name, } else { ogr_type = OFTString; } - OGRFieldDefn oField(fname, ogr_type); + OGRFieldDefn oField(fname.utf8_str(), ogr_type); oField.SetWidth(ogr_fwidth); if ( ogr_fprecision>0 ) { oField.SetPrecision(ogr_fprecision); @@ -438,7 +438,7 @@ OGRDatasourceProxy::CreateLayer(wxString layer_name, int n_field = poFeatDef->GetFieldCount(); OGRFieldDefn *fieldDefn = poFeatDef->GetFieldDefn(n_field - 1); - wxString ogr_field_nm = fieldDefn->GetNameRef(); + wxString ogr_field_nm = wxString(fieldDefn->GetNameRef(), wxConvUTF8); if (fname.Cmp(ogr_field_nm) != 0) { table->RenameSimpleCol(id, t, ogr_field_nm); } diff --git a/ShapeOperations/OGRLayerProxy.cpp b/ShapeOperations/OGRLayerProxy.cpp index a1a1ef60e..ae55b1fa0 100644 --- a/ShapeOperations/OGRLayerProxy.cpp +++ b/ShapeOperations/OGRLayerProxy.cpp @@ -800,6 +800,13 @@ OGRLayerProxy::AddFeatures(vector& geometries, GdaConst::FieldType ftype = fields[j]->GetType(); // get underneath column position (no group and time =0) int col_pos = table->GetColIdx(fname); + // check if field name can be found in current opened layer + if (col_pos < 0) { + wxString msg = wxString::Format(" Failed to create field %s.\n", fname); + error_message << msg << CPLGetLastErrorMsg(); + export_progress = -1; + return; + } vector undefs; if ( ftype == GdaConst::long64_type) { vector col_data; From b33f6fd50ea9d7008f7627659efb9cdf0e479c77 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Thu, 22 Aug 2019 19:42:22 -0700 Subject: [PATCH 51/60] update DMG version number --- BuildTools/macosx/GeoDa-GDAL-Info.plist | 4 +++- DialogTools/SaveSelectionDlg.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/BuildTools/macosx/GeoDa-GDAL-Info.plist b/BuildTools/macosx/GeoDa-GDAL-Info.plist index afcdaab58..99c09e29c 100644 --- a/BuildTools/macosx/GeoDa-GDAL-Info.plist +++ b/BuildTools/macosx/GeoDa-GDAL-Info.plist @@ -23,7 +23,9 @@ CFBundleSignature io.gitub.geodacenter CFBundleVersion - 1.12 + 1.14 + CFBundleShortVersionString + 1.14 DTCompiler 4.2 DTPlatformBuild diff --git a/DialogTools/SaveSelectionDlg.cpp b/DialogTools/SaveSelectionDlg.cpp index 48b2b8445..9d86479b4 100644 --- a/DialogTools/SaveSelectionDlg.cpp +++ b/DialogTools/SaveSelectionDlg.cpp @@ -96,7 +96,7 @@ void SaveSelectionDlg::CreateControls() m_save_sel_var_name = wxDynamicCast(FindWindow(XRCID("ID_SAVE_SEL_VAR_NAME")), wxTextCtrl); - + m_save_sel_var_name->SetValue("SELECTED"); Connect(XRCID("ID_SAVE_SEL_VAR_NAME"), wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(SaveSelectionDlg::OnApplySaveClick)); From c8de77dbe795d4de89af90bd3c48177cb0e35761 Mon Sep 17 00:00:00 2001 From: lixun910 Date: Thu, 22 Aug 2019 19:58:47 -0700 Subject: [PATCH 52/60] #1932 the label in Sample Panel is trimmed in Ubuntu 18.04 with GTK3.0 --- DialogTools/ConnectDatasourceDlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DialogTools/ConnectDatasourceDlg.cpp b/DialogTools/ConnectDatasourceDlg.cpp index de12c0d9c..9d30be0c3 100644 --- a/DialogTools/ConnectDatasourceDlg.cpp +++ b/DialogTools/ConnectDatasourceDlg.cpp @@ -1100,7 +1100,7 @@ void ConnectDatasourceDlg::AddSampleItem(wxBoxSizer* sizer, layername->SetFont(*GdaConst::medium_font); layername->SetForegroundColour(wxColour(100,100,100)); layername->SetToolTip(ds_layername); - text_sizer->Add(layername, 1, wxALIGN_LEFT | wxALL, 5); + text_sizer->Add(layername, 1, wxALIGN_LEFT | wxALL | wxEXPAND, 5); wxString lbl_name = name; lbl_name = GenUtils::PadTrim(lbl_name, 60, false); From 91b9153f062002c7e6d2d5e8e7504742c95bb04d Mon Sep 17 00:00:00 2001 From: Xun Li Date: Fri, 23 Aug 2019 15:29:38 -0700 Subject: [PATCH 53/60] enhancement for basemap downloading and rendering --- Explore/Basemap.cpp | 92 +++++++++++++++--------------------------- Explore/Basemap.h | 79 +++++++++++++++++++++++++++++++++--- Explore/MapNewView.cpp | 3 +- Explore/MapNewView.h | 2 +- io/weights_interface.h | 10 ++--- 5 files changed, 113 insertions(+), 73 deletions(-) diff --git a/Explore/Basemap.cpp b/Explore/Basemap.cpp index 76174d38d..93287267f 100644 --- a/Explore/Basemap.cpp +++ b/Explore/Basemap.cpp @@ -24,6 +24,9 @@ #include #include #include +#include +#include + #include #include #include @@ -167,8 +170,7 @@ Basemap::Basemap(BasemapItem& _basemap_item, poCT = _poCT; scale_factor = _scale_factor; - bDownload = false; - downloadThread = NULL; + isPan = false; panX = 0; panY = 0; @@ -201,12 +203,6 @@ Basemap::~Basemap() { delete poCT; poCT = 0; } - if (bDownload && downloadThread) { - bDownload = false; - downloadThread->join(); - delete downloadThread; - downloadThread = NULL; - } } void Basemap::CleanCache() @@ -335,8 +331,8 @@ void Basemap::Pan(int x0, int y0, int x1, int y1) double offsetLon = p1->lng - p0->lng; if (map->Pan(-offsetLat, -offsetLon)) { - isTileDrawn = false; - isTileReady = false; + //isTileDrawn = false; + //isTileReady = false; GetTiles(); } } @@ -371,8 +367,8 @@ bool Basemap::Zoom(bool is_zoomin, int x0, int y0, int x1, int y1) map->UpdateExtent(west, south, east, north); - isTileDrawn = false; - isTileReady = false; + //isTileDrawn = false; + //isTileReady = false; GetEasyZoomLevel(); GetTiles(); return true; @@ -566,21 +562,22 @@ void Basemap::GetTiles() offsetX = offsetX - panX; offsetY = offsetY - panY; - isTileReady = false; - isTileDrawn = false; - - if (bDownload && downloadThread) { - bDownload = false; - downloadThread->join(); - delete downloadThread; - downloadThread = NULL; - } - - if (downloadThread == NULL) { - bDownload = true; - downloadThread = new boost::thread(boost::bind(&Basemap::_GetTiles,this, startX, startY, endX, endY)); + SetReady(false); + //isTileDrawn = false; + + for (int i=startX; i<=endX; i++) { + int start_i = i > nn ? nn - i : i; + for (int j=startY; j<=endY; j++) { + int idx_x = i < 0 ? nn + i : i; + int idx_y = j < 0 ? nn + j : j; + if (idx_x > nn) + idx_x = idx_x - nn; + pool.enqueue(boost::bind(&Basemap::DownloadTile, this, idx_x, idx_y)); + } } + boost::this_thread::sleep_for(boost::chrono::milliseconds(100)); + SetReady(true); delete topleft; delete bottomright; } @@ -590,38 +587,6 @@ bool Basemap::IsReady() return isTileReady; } -void Basemap::_GetTiles(int start_x, int start_y, int end_x, int end_y) -{ - boost::thread_group threadPool; - for (int i=start_x; i<=end_x; i++) { - if (bDownload == false) { - return; - } - int start_i = i > nn ? nn - i : i; - - boost::thread* worker = new boost::thread(boost::bind(&Basemap::_GetTiles,this, start_i, startY, endY)); - threadPool.add_thread(worker); - } - threadPool.join_all(); - isTileReady = true; -} - - -void Basemap::_GetTiles(int i, int start_y, int end_y) -{ - for (int j=start_y; j<=end_y; j++) { - if (bDownload == false) { - return; - } - int idx_x = i < 0 ? nn + i : i; - int idx_y = j < 0 ? nn + j : j; - if (idx_x > nn) - idx_x = idx_x - nn; - wxMicroSleep(10); - DownloadTile(idx_x, idx_y); - } -} - size_t curlCallback(void *ptr, size_t size, size_t nmemb, void* userdata) { FILE* stream = (FILE*)userdata; @@ -663,6 +628,7 @@ void Basemap::DownloadTile(int x, int y) #endif if (fp) { curl_easy_setopt(image, CURLOPT_URL, url); + curl_easy_setopt(image, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); curl_easy_setopt(image, CURLOPT_WRITEFUNCTION, curlCallback); curl_easy_setopt(image, CURLOPT_WRITEDATA, fp); //curl_easy_setopt(image, CURLOPT_FOLLOWLOCATION, 1); @@ -681,10 +647,16 @@ void Basemap::DownloadTile(int x, int y) } delete[] url; } - isTileReady = false; // notice template_canvas to draw - //canvas->Refresh(true); + boost::this_thread::sleep_for(boost::chrono::milliseconds(10)); + SetReady(true); // notice template_canvas to draw } +void Basemap::SetReady(bool flag) +{ + mutex.lock(); + isTileReady = flag; + mutex.unlock(); +} LatLng* Basemap::XYToLatLng(XYFraction &xy, bool isLL) { @@ -848,5 +820,5 @@ bool Basemap::Draw(wxBitmap* buffer) } delete gc; isTileDrawn = true; - return isTileReady; + return true; } diff --git a/Explore/Basemap.h b/Explore/Basemap.h index 552d9ce9d..02d556d46 100644 --- a/Explore/Basemap.h +++ b/Explore/Basemap.h @@ -25,13 +25,81 @@ #include #include #include +#include +#include +#include +#include +#include #include #include #include using namespace std; +using namespace boost; namespace Gda { + class thread_pool + { + private: + mutex mx; + condition_variable cv; + + typedef function job_t; + std::deque _queue; + + thread_group pool; + + boost::atomic_bool shutdown; + static void worker_thread(thread_pool& q) + { + while (optional job = q.dequeue()) + (*job)(); + } + + public: + thread_pool() : shutdown(false) { + int cores = boost::thread::hardware_concurrency(); + if (cores > 1) cores = cores -1; + for (unsigned i = 0; i < cores; ++i) + pool.create_thread(bind(worker_thread, ref(*this))); + } + + void enqueue(job_t job) + { + lock_guard lk(mx); + _queue.push_back(job); + + cv.notify_one(); + } + + optional dequeue() + { + unique_lock lk(mx); + namespace phx = boost::phoenix; + + cv.wait(lk, phx::ref(shutdown) || !phx::empty(phx::ref(_queue))); + + if (_queue.empty()) + return none; + + job_t job = _queue.front(); + _queue.pop_front(); + + return job; + } + + ~thread_pool() + { + shutdown = true; + { + lock_guard lk(mx); + cv.notify_all(); + } + + pool.join_all(); + } + }; + /** * BasemapItem is for "Basemap Source Configuration" dialog * Each basemap source can be represented in the form of: @@ -329,16 +397,14 @@ namespace Gda { // only for Web mercator projection class Basemap { int nn; // pow(2.0, zoom) - bool bDownload; - boost::thread* downloadThread; - boost::thread* downloadThread1; - + + thread_pool pool; + boost::mutex mutex; + wxString GetRandomSubdomain(wxString url); int GetOptimalZoomLevel(double paddingFactor=1.2); int GetEasyZoomLevel(); void GetTiles(); - void _GetTiles(int start_x, int start_y, int end_x, int end_y); - void _GetTiles(int x, int start_y, int end_y); void DownloadTile(int x, int y); public: @@ -408,6 +474,7 @@ namespace Gda { void Reset(); void Refresh(); bool IsReady(); + void SetReady(bool flag); bool IsExtentChanged(); void SetupMapType(BasemapItem& basemap_item); diff --git a/Explore/MapNewView.cpp b/Explore/MapNewView.cpp index 129fae468..d1b640ec0 100644 --- a/Explore/MapNewView.cpp +++ b/Explore/MapNewView.cpp @@ -670,8 +670,9 @@ void MapCanvas::OnIdle(wxIdleEvent& event) event.RequestMore(); // render continuously, not only once on idle } if (!layer2_valid || !layer1_valid || !layer0_valid || - (isDrawBasemap && !layerbase_valid) ) + (isDrawBasemap && basemap->IsReady()) ) { + if (isDrawBasemap) basemap->SetReady(false); DrawLayers(); event.RequestMore(); } diff --git a/Explore/MapNewView.h b/Explore/MapNewView.h index 5ff3df97c..6bd3852ad 100644 --- a/Explore/MapNewView.h +++ b/Explore/MapNewView.h @@ -307,7 +307,7 @@ class MapCanvas : public TemplateCanvas, public CatClassifStateObserver, bool InitBasemap(); virtual void DrawConnectivityGraph(wxMemoryDC &dc); virtual void CreateConnectivityGraph(); - + DECLARE_EVENT_TABLE() }; diff --git a/io/weights_interface.h b/io/weights_interface.h index c9ae0ef81..2cb6564f0 100644 --- a/io/weights_interface.h +++ b/io/weights_interface.h @@ -26,13 +26,13 @@ using namespace std; -class WeightsNotValidException: public exception { +class WeightsNotValidException: public std::exception { virtual const char* what() const throw() { return "weights exception: weights file not valid"; } }; -class WeightsMismatchObsException: public exception { +class WeightsMismatchObsException: public std::exception { virtual const char* what() const throw() { return "weights exception: mismatch obervations"; } @@ -41,7 +41,7 @@ class WeightsMismatchObsException: public exception { int num_obs; }; -class WeightsStringKeyNotFoundException: public exception { +class WeightsStringKeyNotFoundException: public std::exception { virtual const char* what() const throw() { return "weights exception: key not found"; } @@ -50,7 +50,7 @@ class WeightsStringKeyNotFoundException: public exception { const char* key; }; -class WeightsIntegerKeyNotFoundException: public exception { +class WeightsIntegerKeyNotFoundException: public std::exception { virtual const char* what() const throw() { return "weights exception: key not found"; } @@ -59,7 +59,7 @@ class WeightsIntegerKeyNotFoundException: public exception { int key; }; -class WeightsIdNotFoundException: public exception { +class WeightsIdNotFoundException: public std::exception { virtual const char* what() const throw() { return "weights exception: id not found"; } From e49c159c9a2902d6a7102c8c18233664c8982ea3 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Sat, 24 Aug 2019 01:30:28 -0700 Subject: [PATCH 54/60] update basemap enhancement on windows --- BuildTools/windows/GeoDa.vcxproj | 2 +- BuildTools/windows/build.bat | 2 +- Explore/Basemap.h | 10 ++++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/BuildTools/windows/GeoDa.vcxproj b/BuildTools/windows/GeoDa.vcxproj index f20c68927..f33621fcc 100644 --- a/BuildTools/windows/GeoDa.vcxproj +++ b/BuildTools/windows/GeoDa.vcxproj @@ -192,7 +192,7 @@ temp\wxWidgets-3.1.0\include;%(AdditionalIncludeDirectories) - opencl.lib;zlibstat.lib;gdal_i.lib;libcurl.lib;libboost_date_time-vc100-mt-gd-1_57.lib;libboost_thread-vc100-mt-gd-1_57.lib;BLAS.lib;clapack.lib;libf2c.lib;json_spirit_lib.lib;GlU32.lib;OpenGL32.lib;wxmsw31ud.lib;wxmsw31ud_gl.lib;wxtiffd.lib;wxjpegd.lib;wxpngd.lib;wxzlibd.lib;wxregexud.lib;wxexpatd.lib;wsock32.lib;comctl32.lib;winmm.lib;rpcrt4.lib;%(AdditionalDependencies) + opencl.lib;zlibstat.lib;gdal_i.lib;libcurl.lib;libboost_date_time-vc100-mt-gd-1_57.lib;libboost_atomic-vc100-mt-gd-1_57.lib;libboost_thread-vc100-mt-gd-1_57.lib;libboost_regex-vc100-mt-gd-1_57.lib;BLAS.lib;clapack.lib;libf2c.lib;json_spirit_lib.lib;GlU32.lib;OpenGL32.lib;wxmsw31ud.lib;wxmsw31ud_gl.lib;wxtiffd.lib;wxjpegd.lib;wxpngd.lib;wxzlibd.lib;wxregexud.lib;wxexpatd.lib;wsock32.lib;comctl32.lib;winmm.lib;rpcrt4.lib;%(AdditionalDependencies) C:\Intel\OpenCL\sdk\lib\x64;dep\zlib\lib;C:\OSGeo4W\lib;temp\wxWidgets-3.1.0\lib\vc_x64_dll;temp\CLAPACK-3.1.1-VisualStudio\LIB\x64;temp\boost_1_57_0\stage\lib;temp\json_spirit_v4.08\Debug;%(AdditionalLibraryDirectories) diff --git a/BuildTools/windows/build.bat b/BuildTools/windows/build.bat index f5fae8db6..65314da8a 100644 --- a/BuildTools/windows/build.bat +++ b/BuildTools/windows/build.bat @@ -921,7 +921,7 @@ if %GDA_BUILD% == BUILD_32 ( call b2 --with-thread --with-date_time --with-chrono --with-system --toolset=%MSVC++% --build-type=complete stage call b2 --with-thread --with-date_time --with-chrono --with-system --toolset=%MSVC++% --build-type=complete --debug-symbols=on stage ) else ( - call b2 --with-thread --with-date_time --with-chrono --with-system --toolset=%MSVC++% --build-type=complete architecture=x86 address-model=64 stage + call b2 --with-thread --with-date_time --with-chrono --with-system --with-atomic --toolset=%MSVC++% --build-type=complete architecture=x86 address-model=64 stage ) cd %BUILD_HOME% diff --git a/Explore/Basemap.h b/Explore/Basemap.h index 02d556d46..d89294a55 100644 --- a/Explore/Basemap.h +++ b/Explore/Basemap.h @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -37,6 +38,8 @@ using namespace std; using namespace boost; +typedef boost::function job_t; + namespace Gda { class thread_pool { @@ -44,10 +47,9 @@ namespace Gda { mutex mx; condition_variable cv; - typedef function job_t; - std::deque _queue; + boost::container::deque _queue; - thread_group pool; + boost::thread_group pool; boost::atomic_bool shutdown; static void worker_thread(thread_pool& q) @@ -61,7 +63,7 @@ namespace Gda { int cores = boost::thread::hardware_concurrency(); if (cores > 1) cores = cores -1; for (unsigned i = 0; i < cores; ++i) - pool.create_thread(bind(worker_thread, ref(*this))); + pool.create_thread(boost::bind(worker_thread, boost::ref(*this))); } void enqueue(job_t job) From 431714e8146d6e561292605f546d7005347e30d3 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Sat, 24 Aug 2019 01:32:54 -0700 Subject: [PATCH 55/60] update enhancement of basemap on OSX --- Explore/Basemap.cpp | 37 ++++++++++++++++++++++++------------- Explore/Basemap.h | 29 +++++++++++++++++++---------- Explore/MapNewView.cpp | 3 +-- 3 files changed, 44 insertions(+), 25 deletions(-) diff --git a/Explore/Basemap.cpp b/Explore/Basemap.cpp index 93287267f..78549fc64 100644 --- a/Explore/Basemap.cpp +++ b/Explore/Basemap.cpp @@ -174,7 +174,10 @@ Basemap::Basemap(BasemapItem& _basemap_item, isPan = false; panX = 0; panY = 0; - + + start_download = false; + n_tasks = 0; + complete_tasks = 0; isTileReady = false; isTileDrawn = false; @@ -562,11 +565,14 @@ void Basemap::GetTiles() offsetX = offsetX - panX; offsetY = offsetY - panY; - SetReady(false); + //SetReady(true); //isTileDrawn = false; + start_download = true; + n_tasks = (endX - startX + 1) * (endY - startY + 1); + complete_tasks = 0; + for (int i=startX; i<=endX; i++) { - int start_i = i > nn ? nn - i : i; for (int j=startY; j<=endY; j++) { int idx_x = i < 0 ? nn + i : i; int idx_y = j < 0 ? nn + j : j; @@ -576,15 +582,13 @@ void Basemap::GetTiles() } } - boost::this_thread::sleep_for(boost::chrono::milliseconds(100)); - SetReady(true); delete topleft; delete bottomright; } -bool Basemap::IsReady() +bool Basemap::IsDownloading() { - return isTileReady; + return start_download; } size_t curlCallback(void *ptr, size_t size, size_t nmemb, void* userdata) @@ -640,15 +644,18 @@ void Basemap::DownloadTile(int x, int y) // Grab image imgResult = curl_easy_perform(image); - - curl_easy_cleanup(image); + if (imgResult == CURLE_OK) { + curl_easy_cleanup(image); + } fclose(fp); } } delete[] url; } - boost::this_thread::sleep_for(boost::chrono::milliseconds(10)); - SetReady(true); // notice template_canvas to draw + + mutex.lock(); + complete_tasks += 1; + mutex.unlock(); } void Basemap::SetReady(bool flag) @@ -781,6 +788,11 @@ wxString Basemap::GetTilePath(int x, int y) bool Basemap::Draw(wxBitmap* buffer) { + bool draw_complete = false; + if (n_tasks > 0 && n_tasks <= complete_tasks) { + draw_complete = true; + complete_tasks = 0; + } // when tiles pngs are ready, draw them on a buffer wxMemoryDC dc(*buffer); dc.SetBackground(*wxWHITE); @@ -819,6 +831,5 @@ bool Basemap::Draw(wxBitmap* buffer) } } delete gc; - isTileDrawn = true; - return true; + return draw_complete; } diff --git a/Explore/Basemap.h b/Explore/Basemap.h index 02d556d46..800b467c3 100644 --- a/Explore/Basemap.h +++ b/Explore/Basemap.h @@ -28,8 +28,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -37,6 +39,8 @@ using namespace std; using namespace boost; +typedef boost::function job_t; + namespace Gda { class thread_pool { @@ -44,10 +48,9 @@ namespace Gda { mutex mx; condition_variable cv; - typedef function job_t; - std::deque _queue; + boost::container::deque _queue; - thread_group pool; + boost::thread_group pool; boost::atomic_bool shutdown; static void worker_thread(thread_pool& q) @@ -61,7 +64,7 @@ namespace Gda { int cores = boost::thread::hardware_concurrency(); if (cores > 1) cores = cores -1; for (unsigned i = 0; i < cores; ++i) - pool.create_thread(bind(worker_thread, ref(*this))); + pool.create_thread(boost::bind(worker_thread, boost::ref(*this))); } void enqueue(job_t job) @@ -384,11 +387,13 @@ namespace Gda { east = other->east; poCT = NULL; poCT_rev = NULL; - if (other->poCT) { - poCT = OGRCreateCoordinateTransformation(other->poCT->GetSourceCS(), other->poCT->GetTargetCS()); - } - if (other->poCT_rev) { - poCT_rev = OGRCreateCoordinateTransformation(other->poCT_rev->GetSourceCS(), other->poCT_rev->GetTargetCS()); + if (other) { + if (other->poCT) { + poCT = OGRCreateCoordinateTransformation(other->poCT->GetSourceCS(), other->poCT->GetTargetCS()); + } + if (other->poCT_rev) { + poCT_rev = OGRCreateCoordinateTransformation(other->poCT_rev->GetSourceCS(), other->poCT_rev->GetTargetCS()); + } } return this; } @@ -401,6 +406,10 @@ namespace Gda { thread_pool pool; boost::mutex mutex; + bool start_download; + int n_tasks; + int complete_tasks; + wxString GetRandomSubdomain(wxString url); int GetOptimalZoomLevel(double paddingFactor=1.2); int GetEasyZoomLevel(); @@ -473,7 +482,7 @@ namespace Gda { void Reset(int map_type); void Reset(); void Refresh(); - bool IsReady(); + bool IsDownloading(); void SetReady(bool flag); bool IsExtentChanged(); void SetupMapType(BasemapItem& basemap_item); diff --git a/Explore/MapNewView.cpp b/Explore/MapNewView.cpp index d1b640ec0..129fae468 100644 --- a/Explore/MapNewView.cpp +++ b/Explore/MapNewView.cpp @@ -670,9 +670,8 @@ void MapCanvas::OnIdle(wxIdleEvent& event) event.RequestMore(); // render continuously, not only once on idle } if (!layer2_valid || !layer1_valid || !layer0_valid || - (isDrawBasemap && basemap->IsReady()) ) + (isDrawBasemap && !layerbase_valid) ) { - if (isDrawBasemap) basemap->SetReady(false); DrawLayers(); event.RequestMore(); } From 3feedfa3b2d74d17e6b4ce44428e0e31a2c30cf7 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Sat, 24 Aug 2019 10:10:02 -0700 Subject: [PATCH 56/60] update version --- Explore/MapNewView.cpp | 14 +++++++------- version.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Explore/MapNewView.cpp b/Explore/MapNewView.cpp index 129fae468..58a8bfdcc 100644 --- a/Explore/MapNewView.cpp +++ b/Explore/MapNewView.cpp @@ -831,9 +831,9 @@ void MapCanvas::SetNoBasemap() } layerbase_valid = false; layer0_valid = false; - layer1_valid = false; - layer2_valid = false; - ReDraw(); + //layer1_valid = false; + //layer2_valid = false; + //ReDraw(); } bool MapCanvas::DrawBasemap(bool flag, Gda::BasemapItem& _basemap_item) @@ -861,10 +861,10 @@ bool MapCanvas::DrawBasemap(bool flag, Gda::BasemapItem& _basemap_item) } } layerbase_valid = false; - layer0_valid = false; - layer1_valid = false; - layer2_valid = false; - ReDraw(); + //layer0_valid = false; + //layer1_valid = false; + //layer2_valid = false; + //ReDraw(); return true; } diff --git a/version.h b/version.h index 92361688b..1c3d47e1b 100644 --- a/version.h +++ b/version.h @@ -5,7 +5,7 @@ namespace Gda { const int version_subbuild = 0; const int version_year = 2019; const int version_month = 8; - const int version_day = 12; + const int version_day = 24; const int version_night = 0; const int version_type = 2; // 0: alpha, 1: beta, 2: release } From 140a4a82e6a9cfb230c6ff27f384e50ba7f0e876 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Sat, 24 Aug 2019 17:33:01 -0700 Subject: [PATCH 57/60] update windows only feature macro flags --- DialogTools/ExportDataDlg.cpp | 4 ++-- Project.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DialogTools/ExportDataDlg.cpp b/DialogTools/ExportDataDlg.cpp index ad166ce0b..85d4f330e 100644 --- a/DialogTools/ExportDataDlg.cpp +++ b/DialogTools/ExportDataDlg.cpp @@ -613,7 +613,7 @@ ExportDataDlg::CreateOGRLayer(wxString& ds_name, bool is_table, table_p, selected_rows, spatial_ref, is_update, cpg_encode); if (new_layer == NULL) return false; -#ifndef __linux__ +#ifdef __WXOSX__ wxProgressDialog prog_dlg(_("Save data source progress dialog"), _("Saving data..."), prog_n_max, this, @@ -625,7 +625,7 @@ ExportDataDlg::CreateOGRLayer(wxString& ds_name, bool is_table, if ( new_layer->stop_exporting == true ) return false; // update progress bar -#ifndef __linux__ +#ifdef __WXOSX__ cont = prog_dlg.Update(new_layer->export_progress); if (!cont ) { new_layer->stop_exporting = true; diff --git a/Project.cpp b/Project.cpp index c4f8b9c59..df277c4fc 100644 --- a/Project.cpp +++ b/Project.cpp @@ -604,7 +604,7 @@ void Project::SaveDataSourceAs(const wxString& new_ds_name, bool is_update) // Start saving int prog_n_max = 0; if (table_int) prog_n_max = table_int->GetNumberRows(); -#ifndef __linux__ +#ifdef __WXOSX__ wxProgressDialog prog_dlg(_("Save data source progress dialog"), _("Saving data..."), prog_n_max, NULL, @@ -623,7 +623,7 @@ void Project::SaveDataSourceAs(const wxString& new_ds_name, bool is_update) bool cont = true; while ( new_layer && new_layer->export_progress < prog_n_max ) { -#ifndef __linux__ +#ifdef __WXOSX__ cont = prog_dlg.Update(new_layer->export_progress); if ( !cont ) { new_layer->stop_exporting = true; From caaf98a9c7fb25edfe8c7ec2226335a71cfbc656 Mon Sep 17 00:00:00 2001 From: lixun910 Date: Sat, 24 Aug 2019 17:35:31 -0700 Subject: [PATCH 58/60] update macro flags for ubuntu only and build scripts for ubuntu --- .gitignore | 2 ++ BuildTools/ubuntu/create_deb_bionic.sh | 2 +- BuildTools/ubuntu/create_deb_xenial.sh | 2 +- TemplateCanvas.cpp | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 349dc4972..dbf260e9a 100644 --- a/.gitignore +++ b/.gitignore @@ -108,3 +108,5 @@ internationalization/.vscode/launch.json internationalization/pofiles/new_zh_CN.mo internationalization/.vscode/settings.json internationalization/~$zh_CN.xlsx + +GeoDamake.opt diff --git a/BuildTools/ubuntu/create_deb_bionic.sh b/BuildTools/ubuntu/create_deb_bionic.sh index d23e528fb..daa5b0cab 100755 --- a/BuildTools/ubuntu/create_deb_bionic.sh +++ b/BuildTools/ubuntu/create_deb_bionic.sh @@ -39,7 +39,7 @@ fi rm -f *.deb if [ $# -ne 1 ]; then - dpkg -b product/ geoda_1.14-1bionic1.deb + dpkg -b product/ geoda_1.14-1bionic1_amd64.deb else dpkg -b product/ geoda_1.14-1$1.deb fi diff --git a/BuildTools/ubuntu/create_deb_xenial.sh b/BuildTools/ubuntu/create_deb_xenial.sh index 7786b421a..8af427c40 100755 --- a/BuildTools/ubuntu/create_deb_xenial.sh +++ b/BuildTools/ubuntu/create_deb_xenial.sh @@ -39,7 +39,7 @@ fi rm -f *.deb if [ $# -ne 1 ]; then - dpkg -b product/ geoda_1.14-1xenial1.deb + dpkg -b product/ geoda_1.14-1xenial1_amd64.deb else dpkg -b product/ geoda_1.14-1$1.deb fi diff --git a/TemplateCanvas.cpp b/TemplateCanvas.cpp index 4d342b24e..8cca7b0db 100644 --- a/TemplateCanvas.cpp +++ b/TemplateCanvas.cpp @@ -601,7 +601,7 @@ void TemplateCanvas::update(HLStateInt* o) void TemplateCanvas::RenderToDC(wxDC &dc, int w, int h) { -#if defined(__WIN32__) || defined(__linux__) +#ifdef __WIN32__ GdaScaleTrans old_scale_trans = last_scale_trans; int screen_w = GetClientSize().GetWidth(); From bdc29d942989781e73f58bfcee75af94f885c38e Mon Sep 17 00:00:00 2001 From: Xun Li Date: Sat, 24 Aug 2019 21:25:46 -0700 Subject: [PATCH 59/60] some small UI updates and ready to build --- DialogTools/AbstractClusterDlg.cpp | 2 +- DialogTools/CatClassifDlg.cpp | 2 +- Explore/MapNewView.cpp | 1 + internationalization/lang/zh_CN/GeoDa.mo | Bin 113600 -> 113572 bytes internationalization/pofiles/zh_CN.po | 3601 ++++++++++++---------- rc/dialogs.xrc | 10 +- 6 files changed, 1948 insertions(+), 1668 deletions(-) diff --git a/DialogTools/AbstractClusterDlg.cpp b/DialogTools/AbstractClusterDlg.cpp index fc871c51e..725ea2063 100644 --- a/DialogTools/AbstractClusterDlg.cpp +++ b/DialogTools/AbstractClusterDlg.cpp @@ -452,7 +452,7 @@ void AbstractClusterDlg::AddTransformation(wxPanel *panel, wxFlexGridSizer* gbox const wxString _transform[4] = {"Raw", "Demean", "Standardize (Z)", "Standardize (MAD)"}; combo_tranform = new wxChoice(panel, wxID_ANY, wxDefaultPosition, - wxSize(100,-1), 4, _transform); + wxSize(140,-1), 4, _transform); combo_tranform->SetSelection(2); gbox->Add(st14, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, 10); gbox->Add(combo_tranform, 1, wxEXPAND); diff --git a/DialogTools/CatClassifDlg.cpp b/DialogTools/CatClassifDlg.cpp index 65aca5718..c4cd28b09 100644 --- a/DialogTools/CatClassifDlg.cpp +++ b/DialogTools/CatClassifDlg.cpp @@ -2509,7 +2509,7 @@ wxString CatClassifPanel::GetDefaultTitle(const wxString& field_name, { int max_tries = 500; int cur_try = 1; - wxString ret_title_base = _("Custom Breaks"); + wxString ret_title_base = "Custom Breaks"; bool case_sensitive = false; if (table_int->DoesNameExist(field_name, case_sensitive)) { ret_title_base << " (" << field_name; diff --git a/Explore/MapNewView.cpp b/Explore/MapNewView.cpp index 58a8bfdcc..ab36a0e91 100644 --- a/Explore/MapNewView.cpp +++ b/Explore/MapNewView.cpp @@ -850,6 +850,7 @@ bool MapCanvas::DrawBasemap(bool flag, Gda::BasemapItem& _basemap_item) return false; } else { basemap->SetupMapType(basemap_item); + ResizeSelectableShps(); } } else { if ( basemap ) { diff --git a/internationalization/lang/zh_CN/GeoDa.mo b/internationalization/lang/zh_CN/GeoDa.mo index d1f5ca79744fcd0c32d0a05e457bc07196accaf6..83d159784df319582f16bb6f4722e2b0696b53ae 100644 GIT binary patch delta 19598 zcmXZjcl_2<|G@F z{)~mN0gf7d#2GFDJ{Q9W=rM*a{t}EjGZeSQoFsHu!(&z+2FMcVjg?gePFBRjHpEt8!^3 zbt$mJW>^y2qBA-ZooV0jf^YosJcK9X5_F)o*a82GWw6*QsaU+l&sl9S!8W@E>&MrC&>DsV2HI&BN2s z_U-X_#?N%iOJp*A(3zZ%1~eKg;nZ*ux^(N%0d``3{0?j5!6+}iHa)M22G#=YuP1uO zhNEX{G!|w2%#9{+5<0*vbS0LcTe1rO#;R^)$^^>@G%NEq2EXdund06L&c+y|Y>Fsy_(pj-2wa3NksemNRQ8KQD! z%A@^OMhC8gwrh;`+kPGEZ^b@Qu|FEXg=mB$(ZeAy%9z7e=&==GK^aZsn%HKi*+m5z7 zfUd+LwBN(%N*qD^DezWmUoJ=DA_^L#5zRy+e+a!ki?A|2gD&Alw4*JUA3sBv@=J8f z4n;oucIvM*I$$+4@RsOV=!#AtcPv<#i$Dm0J}(6jR?x&;TY z02X{F4O9f}uRI!XLv(_zqPz<-fm~)F2|FH)9tBt;Q3{U7%KuF(Q5T(A zTXgArqbrg_1G*bs@;OodEIQMd!i{KuyRZcA!{Ycm`YJB4Ih~!Vn^}J&YeIn?bV5({ z0Cb?ySOmu*r!|v9w`6iWpA+SCqx=!{HY`O4T93Bhh0b_CI+5S7ARecH4@~-I0jK*&GDEgk*gH9mdmXxo6=3Ap%+&9Xv##ZEW(@C@=u?}0~ zv8ZtB$7!zyU^U9e;~<=mRq!|Lfu%o5zv(VSx8!y-ka@cHl{HX~neYg&N|u`2mlXkg3HH|mFIAPu*rnV*T~M`AUc zf&;z(OGtQ+kD~8^>f2Mr?&wkvM^E<*tcIJzL-D-Sjub#!?8);BusJ?~7vnbcTA#Wz zoq-PMVeEya7(a6!3HSU;^iW)frSax)26~DYqKE1^wEm`e{t3GD`_Prh|5>VEGi)Aq zM%(p8Cps8&Wk}o}5B`Im?uYRNd+by>=C`0@g(*)CCQ+|1Q?wnVwHU4ZIT1!x?BGd(h`UME)rHUdYdD&yI?sTT>Bz zKh#G9Y8?4)=!|>faO{UC<4b5@ALK~5vyong_h(!h1G9Qo7G z0Q#aGUyRQ5Mzr61u?j9gS8Of1^c%1q<_?f>Pfz|j4O9zV!qd9t-lrxY!lkgZnWNEbR~;_lLD@Sl^H+Nh=emd3q4d9p@(KNI-|L0N6$rm9o8qm z1FK>F|M3iKp#gk~PUssn;Gd9zGWmC>fvaOn@=dXc_x~~yHh3U>0`2H|bje>wJNgWr z*^lULD7+^H*c4sz9%#Kwu@c^ho}v5D6?-V2FGeT08jCZ2=D#G2@C$S${*HX{y=jIG z(535*HE<}p=M&La@NBfh?dVD!Km+&(^A6{?ssH-uq3elGZ~*3v_!1Hha06DwyU>|0 zK|5TJ2KXs@n0`S|d8vKrbk{{^*c9FCcIdS|7Y$%2dRsHAoJ2UtLX4OXCg zz6Kp&3mVWqG=ReU)AQO`o_u?>-XJuv(NR7ftCL@hPUJoO4R>QJ-0>X;97}x9`di_Q z?_=+e#|_Y>?-2GxCvYwn!rSl!oP?$D zK6FBhBfkvGdjH=b;UU_N`SBoH@n@`tf1w>#_$8HBNAva2z?-6hoQf`OXLM=%;01U= zl)r?wTaT{LMqI@BnVlrq-pqtwIaqiVN3|A~J)Fr5!}fR)&c`u$6gT3i-#NJ0>W}1j zyqx@7*a7SR$%hTEz~Q(K-Ll$$@h5DYiMiWJd`F@uj{G~5xdm6?WUPNA{fTEe-bwyT zycmZc<(%MKXh*${@x{Z%X#P`t5S#wPPj!3`XJFrdxdFHfZ^fFKY%cHBxge9x`x>oA zui0)ajt8+b9>HGNA)C$g#;Ld+Kg9v~Y`$#XN@eqB^8&aOn^FEc_QgY38#@M+q zXBNn1^Oo>+3QAE>uwXXt(3M4(ygv59d$2O@zymm-<tBVQ z{u?kKPD0yHK?i&U$KwigyhcUxRyvnyN5ZdKA8deQ(a7gxS$qLc#7*e?VHY~kzgP>4 z6-{TP8Cw7Pa5~l@{{*_^o6z=Oqbr%Om}i0eSCxbjcE?k2Fgm~_bm?Y?^Uyte0vq8{ zG_dXHo9%n_(EW-IT)TK$x!&j@yaI2))i?^9l*nemZ~xO zygj<4ebKWq65X7RG6JjO&1n0%=q*`}tbAr8+WvjC-8M9^ zUFgJq$dPbnzoH#vPEHL^MjMtx8`eY{)<+w*M%#5l+ntTBxDQLvm@@e4wXvGrffQ`|mI~5(cBf7V}u_4}wZp9PmnR*dj zp|z3Uf==Xfw7>sh3BUi}lW=B#p))RAAyqgLJ>3=14jV@PRJ5a>=#0)m@AFvnkj_Fn z&fJF{&d1TfUPZ@wKir9VfB(Oagbja2m+*J=)c=j%_c9gJySxG#c^$NVV>I9vkv|=M z=XXU9*E#3}hM@sphaTEn;`uD~{y$2>$X1}&<8^f4Eoj5-=+b|Q*4r1)52Jw`K?BQF zN&_EbbD04oT#9k%eZCdF&yQed zT#dd+j-VZutd#<&9@awxY=%9tFWTQcwEd&#S@;GGtYGcb-$_`+?|(fKZb3_Q&)T7f z>r8au^U$psg&wjS!infgOh=dYKJc@D%(IU4h@xEh<_ktw0^j`}@BxBn)6c zcwu;Hcx8BPcvCnboPrKGBl3@iOVEid3)e*Xd)Sfk|6J1KC_W}|!b0NU~5 zsJIHP_deR;ws3cpA3|5)NaRb@ORwVcX#LvArO7l$uW`%pw0hisAGD1M?c>4e*ogAZ z*aok`>u@PLP^J25fF|hYw;dXIKXkxL&@CN<9=;o*d>%F=zXUzBpX5k5(_gS17HE(v zbV572I=mGJlAnqWxC=dOzoJW9tYHeQ8k%nr_COEkh3LRnqVItHA~m6DZ13%(KB-``s$v92CzDO6FnR6gqZ4 z3P$5{?1~jzrj9N~XL=ht;7l~2`_cEslW3sJqI?ZH;D_iEZ%1FzU0bCsI1BA(8oEOF zw&MOfz|&Fi8df8}H7fp&?&Yy~Ui#D&K*O+O*dLwwWoSTmpzUVG^F`?4UKP)`MfvU= z2_yL(ZBX*GwCAX(=R?tP zbJvpaP~C%_a3!9FhjAEoZj;UX4~&naOScaV3_Wz?&_Ji4{mqE{ zJanZNqCad_VRgU%Tch9)bS5XYPuHypdaApjOFjS{;3~AE+tBOzAGE`#(Jk444!jp# ziC@q|S+GOuuO!-ERV?KFZxs*PqZNCHgU}9!#q;YUKRJ95o#|3^3s*$>=jfUF5uHGh z)6?IQRY3FCpzU&)^AOxcLLbHJ@fGy9Uc-)Qulk`4Zb3Vkh<@+qpaZQ&_jD`ziav(6 zZ`LWb8-z}5XyiwtD=?-L_um=b83q4`cDM{J-x&EX&?Ws74WwY_)Il+{UJW#`R%pHM zk?$W~inhBBo#-u?w{@L!X~3r`@Nm70cC;65a2SpJDB7@4m-O?wDmu^^*bdJ{>&-^n z&qL41(#XFVeuQq-*XW@wn(LaDswz4_H}p0P#g;ek=uGBwc#Z6bdL8rTr@T3(MvJ`?Teesskap)+2K{(OHg z+=i~?UbOwM_zV{BkpfH z?a+p2p%ITjuhl5@ou5NzJ|Erd^=N-PBL71?&-PD&)66IX1+G z1Ji%`7>q;7zk=S5lLw_kc0Ky;e+(UX6E?u_(Cc^7c`4vp=-KFq20RjPz;WnAzDLd) z=l}c^d4;eYy0=5nrN10KlsWVdo%15U9PM~RxD`Dk|3g>wAN0*vaB%VjbW1Cu{WrjB zj^B!e9S=fhFbZATThZ_R4D|HQM`yeSJ)AqyfxbZl*^jQwVRVnHT#)v>D|%+epj$Z! zJtOng`@e!jetZk<_`Ps5+VOVu*X|xP^6$gn!hgc!E=)5#5#93|=n6JQ`{{wLZ~!{N zX_zyTM@Z;%=#18*OSKW5@lJGU|3rU^l^K#|)EZsl-sk}5q4h?f{Y(s}#`9U|wR{*I zZ|M;3zY)Ghfe~#*uhl-ZgMvd-c`-DgDq&-^qtnpF8lwfUew1G{D#6 z`Da79|Me(1NPz>Ey(leN6?8_Y;hWeE^8&g!SqwcJr6XSp9k2m9;OXH2G|;QUo6&ym z3TNix!To55k4OGR^c}qpJv^JjFT-EZcX^>VvM_C20MzQGPcX zNbX@0F3scUp?Nm)ub>^QM;mTM2RMK=vV6zU4oY8|2B?5L$=65A3k**yQ55Z`I(jQw zMt(4I*mIfDBwV6#=u9V}Gk*{b=uz}qK7+2%8uZM(k4Y*LChYd!Zeji=KrGqI@j6Rkua{PV_p?LIYZcz7gL-x9$Ks zfn#W(MX%ugJ8;D-QUHz6fjXjleg@ibAlAdn(HYM{2bdrE7ts#iL}&gH+Rxr7KY(t{ zQFJ9rUYRU^WiB9@%%uPA4RvM(3n)eG@7pv`MT&{nx*QTXk zfVYxgiMDStHuZlh*7g4PB4Na1V*XeDv!S3)N+TkCOFMNF(xD*;tc{G4( zXuU@0E$a}^&q4beggF}wiw7gonT|mRo{G+B33|_$M}Af0-#}Mn1A6#=#dcV6TzXHO zhrZIsM1B%_J?Ek0EFTx&|Mw_xz^~B`|3y!E{TtHKUWgu=v1r4Y*aMfKEB7Nd!t9Od zc@wmLPxL3(2(hP={Iz# zv*T04GFXRvE%XeXh1TnjuIR<#ZBhPz;iB+)q+KraItiER9dv+w=%M)={S245J^c z#|z^5_V7#eFz!X`{euQnlrv>{MReenXumzsdVSCUFT}k6|IgT{aEApvxEt+YE?$7o zqYaBqOwY@s9o7q*ViEGEp&yklQGPDk&jskpTp!+!eru*;&H-N~;Q;TWXJH3Az_;lA zKN$JLXuYH89v^>4%GXA>uzBPMpfkJ#t#?zD--jN~h3L3%+`;{?Mq)Dsp58<8pyH$y zc>{C_yP*T0hjut3o=-$Onum706s^Ajt^YZChW4XxzQV= z4Ejc!5EYl8OSwAoAEPteiyposXkgXu%x0d%_GmwQ(8K&&dOLTvfuRv$=R+N8+Zo%*Iyx6pquZp&7h4$AEoxlk6klu;>Xv#c+ z)fqoiYDU`o7HEVc(0BjX$j=HNMhAQfJrl2^Gu(h4)^DQx_?f9*X|%t3XdtJCy|5Gc zA((To=aX=+-Uv6N1AT=yJRIf6%}V)lXvYoEKw9H@*acm=hp-VohHm9%bVYWd{r-ja zTXHt{-_u!Rb}HzAcH9?Ts-ZX$$4B`w^s8264u5pQ?${0|pl`}G*cVT_H~l8O9G%!2 zwBJqPcJz?$xtIHIWPe7*GXF_4sD*hmjC^Z!rXA79dxb;L0j@!3okY!JYU4PQxV+Wb^*tY|S1_KRiZY7s{W;VR#T9#XkR+{w4K~ z*ou6sx#@i{3R{wY8{N9Uuno4Hm-mlQa+xtC&ZJ;Do?!)a?>jw|2D})Jd@*{Be#Wb? z)WhldcpO1~J^B}xbstGT$)=zKy?_((0Qx7OtLJAkv$4nmpL72nA~B4DPtnh3t4Gss zxiiouz82k@Td@O9Lp$Dp9Wmd+Y~KG_tqYp}3x{Ew$FiAo@FDbt^*wgNlO9iJZV;AZ z{LFPE{D@3P@9_$Bz#Zr*-H*NSDE7lMo=DedE>0l79G79EMQJNP5BG*aP0vkSv?$tu9hwr0rtixf^r_$l9j=ncKq0fgz{yOYQepZxkM<;eL zo@bV(d?obF+ayQA)7}qj;dZ4RB|;8}pMth_?S39q5Fo)0WgkSEN2R z$MewN3Da;OF2g>U%l}MzclSpdJdJsKh5jJfiw1D=vnha@Xuc78CfY{6S2zd_WH`Eo zH=@_~F8mTdMko0Evb@`o%WNXy%qlETk=H^GO#`%I3v|HV=#mdc58VyuK;zMRv(Y7e z3f=onXuYl27{5UO+)(tn)K5#S;{ESS!iLwN4emt;oQvM`#b`iZMftw)H+10aigX4l zpaC@vyP^RPis#p%XXB_t1u0qkKEs@T`v*?T2%o;3-7vd&#rR%IrKka(1tBl2AB_fheUwi|w`L}~au1?s>N&LjJLuueeL%v7`_T^n4D-E`-tooIft#TX zTcH88N89y6105XY7o+`*j^{T<{;tT+LEA4(`CMjM6s!$5r3abqk>7`Q_*<0!g9cJ! zb@C+id8M#U*fgHEMGtvr^zimV1MhnNCEP>`t`f`DnyXq8+V_^4HKa z@^0j}ME>*0e~WJ2A*_nU*Q7Jk2py*rR`L7ajf4XYM#YIN1? gH?3ElcYbzXzWm=l_4F$KYh=N5SM^_>9aH@O0eJwmi2wiq delta 19634 zcmXZjcfih7|G@Fe5C6O|UB1(m#R8OI& zgse)D{3In=_59xN>zuz{=bY~upR>N-i?sOfT$}#Rwd$Kfsq%?LV%3^NA}{X1GWZ>q z#lJBZ7JEC9D1v3MFxE!vx5mq`3+BX8mL%OYlCIc4(ekLY>p1p3Tt2|tcqi?DZYRXybJC3C}!blEQH0^g?_57ONE)# zqQDLtS`mc*r40ym=#_n`y-hHhE%-7uqaXdsuN6RC{`(h}{zI~K>=qNx-K zJD!Kmcoo`UEjrNFnBRkT{43hgX*9qB>l2BhSP`w?DCRq&XJ-Hwz`zVg{*8U zv4KP>3O+>#K7?$4;uP9&*?Xb<9W;Q?&=uQ>4!9o;STex(r>qt?1Go#7sPamGRG5Uh;$RJR1$HDcWB*^o$Kd z&(s*q&-jUnCU7b`z-)9SR-jw*0iMIn=u9?j2m@@!56ORxme1K3uGMqs*;tF-iqFu1 zPogtVZVI;|FQy#uQW8dXIT}b~G=R3~68A!9G6c)uedyLa6J3J0l3#-cQi`Ztneu4A zm!SjKMB6n$`)%_f>u<$gv0^_ofI;ZJ9f=;c30NLypn<%Jw)+GM_xK(E%o*5kG{Ujp^v2T8zG+R>$(s(7^Vi?fyVl z;xyXtd2}U`n?pbO(Dvn0ByJ?p0F7uC8u?4;^;w2x@lA9Ix1$~H!c6=gUCN)(Eju0a zxwnM=N}_>RK?84wo`p_m0IBOpIM66`3CBgJp-cZf8qjKVh997T{1-ht-=SOZ2j;;1 zABTYoq5YLd1FnZouz4)+h)f`rxSoU^4@3{w-Drd}(3venXRsQrw-w!zeQ3R3(R$}% z`9+_EeoCR`jnTdDgtqI2uGGy~&-;HDiOVQhf|c;|=!sZ<$yO`!0>Roi0;}MBwEjm} z8jr;C%umD2tK&>ZY+NbU7`1)+c7WsLs$@xV*$K?zKZj04`-+HcGlm>8d6{f?a@=+ zA0226=EDidX-zzWZppOxd~Pg%F_yoK-iDRvK%b)R51}*u4V}n2%!!$)9ic*AG}24Z z3YVcXs2TH(V!kC-qr4NkGGp*6d&sQOzh32nBx42I%zY80ZPt73FoWxda zf|>sf4X;4=sy}AoL)ZrwVL3d99kArr;WynNbW0va16dHuKfsdY560(bqs6{S*H0zt zlBht1tI-$ED0B%QMI&E;2DmQzC)OojduLdIL0F#rY&5Vn=o|HGG?04VhM9Lq^CK|} zAIIL_{}m*>#~HiAd!Q;>u?xD?!_d<`6SHt<^mKe)e0K<-6?WwLO;`_?;y~PoUh6CN zgfq|~0pYK7J{y4f4dA|$wv!hL- z9nf}t&==l7OkG0a;rQSg^mH%8Lih$=j2p2UZbu_OgRWSvy&+!%JzP!E3G~6@H~{Vc zZY+k=&;S;o0lc=C^>=B$puh%SqxoaF7XLtR!P0%K}8&eeQ_ol$gk-0lQEyc>(2K=UbLga=+;y~ z-w$=rfEvVnXLQEha4`18OYuE4u>Yn=xa0@WSLHD@vft5xPNOsa7oB0@gJIxWSb}^D zG=M&6$G4(0orv~356j_Vbj3EKOTP`XG4%%t_q5FSVW8^h61G4)xCYaEi5|+k(T=8~ z<+Gy8(fXUwz;>Yh97XG$M_01w43wmg#p)-0B?da{8--^}A zAHXck`y;Pgtd0io9Xg>SXuy9V110hv3IkWg2IL!IZSVgG5;mA0U5a+J4qfssXh+|p zGdqReh5|o@02`r8el=QeD3-yA=oxwzU9p$q^X2FSH(~+CPkckd2!BLZBJp#`7sV{H zb3gt5Wbd&d1f58?X6|FBkSjmuzJQ?=B6uMG%(WP%2?S@X^I?RO+Vj-N0 zh4EQ*Ld#=*H5T{&e@wzdv>!9^PqgCSn1%mCJIwkclvhRbwb8&Ep@Ce1E^P;NX?tOR zyeXEyhqn6^U7_u`nDG+_NwB?%$$xU?@J^0uB`o_Fjj;{hh>P$J%s9=T>2Wl+$L4j1oJ}OI$61)VpTr3g9dYEjL}EOy#fP!Z`S2&6H8`34 zPdE^VUEr56euj2*%|HCz0WL@L-{D+r^e@YgU*Z$k=YNSrJ3NFFFguY||++(JQN3i9VnrVm|Nbjj;rH+&k);sJaSFW^y}pDUT(`$uvo(`R8idL8GY zXJCHxRrHLkM$g&?^z3|-BHEf_d z4bbOp&?W7Io{f>{mQ9M!r=u&k7)Rr~SSLv!g~H(-P&k=>e@s9pb`(=4{v_cZ{)2Xq zr${pW-7bqI$=5^=PkVI6UC=;o#1c3bJ%mq1=VEp8FJd-+hSvWRZJ)1b*t)Vsx&N6I zw4uP$+#Va@)o4JI(T<-+w`3l=my6Lr*P|=7Jw88(4)lNMAeVs zD|pK#+F1vQ9POc zW%LEQ0>{vR3zSGEZopJ668DjK9E~`4$uMwUwBjY`fDO>4y8<1!9lEzYuqIAKw_+)J zrrt$YXmiZ(LMQSA+TSl&knt10lW=DLLuXu|RH#q_J>6MohxKCq3bdnc=!|-!_xT?5 zkj_RrPCSbq&ezbuK19d)DtZvpfB%1+gbn{jm+%65>Jz2IeJ_Q+%d^nPYohfVpaD0H z`K!=+ozTP88=b%qG~j#DLz{}vXRG)B6%t0a7QG%@&=<`vwBdeq>3>4&9gok?qk$yL zgurs40~bWg%cCn%3GJ_beBKnDNM}shaSsx9d_CH5Sgddd+Tl3#ojwH(=rOdz8R*u` zi!MYvUXJ#&I{FTJWIVR`h_ z*F#rsAR6Gv=oobA??ET_D7rH9u^cW!1NtaM!ln2Woym5z!#!v~N20%@1E0mo+|!H7 zhf_ZzEBumq1AXxvM6c~Ryc|naNG7htPH4YV(G{4B9`e)&Bz)!WLI)^VF?3V`{l#+y z8gYNDgyYefyoklL~zT*u02{VS0`Q;Gg0T#5xj0o|I>=pnl=`Y0O640LIqMPE3tqAR%xtKrw^3S2<9sBo3A0yQ!H_kSHp z7(oB%py<%(sOY%p{n5$M$I$_2#{4VM73f4(M>oatFR>-%-(bo;x}<7Y+A7f|=pJ=O zf07MBzmhYt4lYAyv=?pvJ37;hYGK7{pexl94WM%@?;FcU#QeBw+Fj zXvfQA#ShSWU!fiDiyn>Tr_mKiW`}y0ps(WcX#E< z_Mj1;M^Af3t&qP6J+(#AfG$THHb=LlA6Cb~X#1zodUMb~Uyi;LpKpuq#H!x^eX$_N zdxqr_eTe~6Yc0h^sD#`+Tkj6 zOSYi{A46B-408(8pc5M$^CQs}xVshi-x)p@3tm7wT#c4*kNF?bCH)ueFn{aNK@qfG zH8im1XuU2m-!D28ZFeuGPd%o$u5~I5xQYS~*B59<$Iu4n(a1B}goYPk74ntQfx2RI zybi552W`IqJtHe){*&mp=vEy@4{hO8+ptuX(a1WZw_z|gz|m;OOQNgLd%PYEa3>nb zzUWc3{%Lf8#8vSZ5n5gzZI>NQ)gfV|jbnvw=-%{0m*|e@qv&;e5k2Lr@J;*@t)FTa zelg8Kw`4OK*tao%2wj=eu{>A%bh}idXhBv|1!D{UCCo;`?I(li*^VBZ^T;O|D7ZT@F25e7~m!}klQeQN-+=l$I!i-g>!HN zTCZ29@Mar?uFT_Tps%6rSE4KOFRr{y#HrNIHS6q!&zvJ{v;a`^HVXK{Ojmv zdKWstIka7}OIZ5C=$5ra%lk%eL+jszuIMCmLUSKE}i7QmyEkObo(L(ED8N z>SW>#9DoLrzgq~fA$sroqVJ1TEMJVy^poh<=*oN_pZ|jfRQ?+7zZI)o6AJ31GjE2u zaRB=K7WBO^I{GBK=S$HoS&g3);!!zi0%-J)%xQb&I`9^5_zR^*bpZpZ;inDMMeviE{HLzDQaX*PQ zSQG2@4*%t2Al^WJ1A05k^a+P-Jo@f`6@6pwz#4c0y?&+phJdT1XQLe&@JJks6VQqL zj+{0A{YSqLc^0~ttM$6)kvOc=HvDW}#bJ z1MR;#W_kbHk+9<-=nU>dm-aFAd;dIodS6Fp{5g6!kD>#eL<2d4u1wDUVUI6IC)5)? zGn3G*oQa;1*VX&Ki9{xTjdr{%dJygS2>NUH6dL)tXpZYczF@QjI>UoGx>L0X&(l>doq-Op5It;b z(3Sff4e*=z{P!EU|Jf8|-WUd~g$C3Bozc~}3H!(Ar3Z$3716Vi9rMl50b8R3_KFTi z1AQR+6gsizql;4U!7{YNcVhlC^c}qmUFz?nr=odo3h(kV=*;S)XQ&1GjcAPqbPKw2 z_n`0oDY5)TG?3JrB<$cF^w4}1^V`r4cB2iCp#x+LVt^$7p#tq7`{pn}9o$2{6!bV7fd9qkvEc2=#J{*4op5T|$PmDrXk=T^2HVgI2V(ipXrL$J^Nc$}{UYd=ltJrf z$9$cbZ-H**RcQY`(UrUb2{e@$Pr`=t(Sct^2YL&u;Kyjg|3mAYj{bw4$>$iAO!UNS z@N-;*{>{l9cZQ{3gA>Sqj<#<%I`rQat9t(jl5hr7;)B^S|0=q7YtSwE9Q~djLIWx| zCUjT=tydm>!8AnsYk|H`I-?W2IXVVy{}86X|4*2pU_q?#7TWM5^g4ZqHaHv2yeo8A z04*sl(Z^fgrAm=?HUjgm7MYKB_ z$Y6Bf@mLE##F}^lv$4#*A%OPiH5`b(Q6EIVe%sMNPDP8R#)pD>cm)rxML#-Ep+7oT zU}gLa(?7G((_MN(nAsq-)AAG#vN(T3Hr3N}N}&>-~C4MkUUY;;B}e?7WBx)o`cN_<1YrP_-Q z@DF-u3f&(*!rc8vMq=nU^c>pdCEm!d1Z79Drz zgWUft5CN>}cu*IOyfwOn{n3F(q8(0%&*!2YtwcNCh}J)V)<22{z0oss2lm5>=)gPC z{*I#Gg0nGSXlm#u3+X47Xc`iU_R*ebhc{sryaUVQoLK%gdR8{0Z^Ylwy(~2?%&-=E zXd9pbUlGfDqk#{I4ol1Z9~TQAMmw60F4ZD*iI&CkPtcj{iRHheTX4~1pXLtZTtbfPy z@=u0(*=T<)(TR194#ZaE$6(66UQNQi+8O;B9q2E#Vg9GW^KxkZatXdvCNFZM%M zZWY$Tb?8?9jIPL^XulUf9r~&KH22@r*(4V9L^~dWF4bN50M3l%MW=_aS{62;{CaGT zv(Y!@4(yIKW`y5_6VZw7K>PhZdK^8Z=VoyKjjZ6zP_a5XgJzhXVa#_!XWAQGfq~I6 z=m3wP?dG8Mo<~31OVF?A7ifPw(DwV$`oE`0xI}-W9p#)ADilL2R6`rqMpx>JSl$;M z=*E~I8XXlKhrVd;N6*MS?1HOe`31E9)TOh-0A+C<1=Vp6{)ms^`*V`%|C_DD-0;I= z0=A)i6W)ZG^OA`Lcnh}29M6QmWa@(b$Ule;@H=dV7e5>RMMY<9>HVKfqB9S+pdDQN zT-f_Q=r5hIXyosq*C_Y=Wcq(Xt%^RMiMQZx^e-%1JRg3N&BvzXKg9wtXocp(m#7z|Zihe%3EC|2l2B1s)D7rP%u?4<_c6;}7Uk=YK6&0evww zM)$B!EFTl|Q?VoEi(~n5^uA{<4fQWY^Yzd-Z@Ux;JG>1q!$;Bkx-6D&MrZIN8sLfO zS@gw{xh%BLjdolG-IAv0inPLdI1>GP!I!W%ZpLnyD!DwoyN99;Heq_N&>tk{(Ew_$ z2mv%j^KH>H(LLq|MsG(08INw^6X^AQ9uMFz=mfXEp1vKa#P=keS)DgR?&Ts}g&@*U<%h4s>g6{ocwBAX)9M7PCZm7C4^wS;7dH-)GVZ+DK2Ct(7 zu0iklhiE|OV|nJP@VpQ@a9Q+>G(rRF8XbrRJSIMW3O!Sc(Qm^xO#l8rMZ(jW@g{5+U4r?^=YA^$P!tU;3u|FDY>s` zMbE$?wBgBE{wLb-e9R|ShrbudgZ5JxZC4UKoK*1+rWFuKxh)`XvSx2)m*rNg=;2v`2DmA@6|KJw-P7IZoANg_&;sv;0ZO6m%AxftqtBbi@{ZWThS!iV zqC4V)F=)l{=s=G~r=tNrhjzGZ_4ol(k{SE~BICv-1(PLaExo;O#@>w886)5AkgMCM z5yJ-6Uj5#hg~RjJuT`f}R^0~8>epX4qwjART`nR#R`UDx%EWWNIc57OAb(EtDd diff --git a/internationalization/pofiles/zh_CN.po b/internationalization/pofiles/zh_CN.po index 74985b567..8ddeb5d89 100644 --- a/internationalization/pofiles/zh_CN.po +++ b/internationalization/pofiles/zh_CN.po @@ -1,6280 +1,6557 @@ -#contributors: +# contributors: msgid "" -msgstr "Project-Id-Version: \nPOT-Creation-Date: 2018-04-26 14:58+0800\nPO-Revision-Date: 2019-03-06 14:33-0700\nLast-Translator: \nLanguage-Team: \nLanguage: zh_CN\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nX-Generator: Poedit 2.2.1\nX-Poedit-Basepath: Regression\nPlural-Forms: nplurals=1; plural=0;\nX-Poedit-KeywordsList: _;wxT\nX-Poedit-SearchPath-0: .\n" - -#contributors: +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2018-04-26 14:58+0800\n" +"PO-Revision-Date: 2019-08-24 21:22-0700\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" +"X-Poedit-Basepath: Regression\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-KeywordsList: _;wxT\n" +"X-Poedit-SearchPath-0: .\n" + +# contributors: msgid " (isolates in weights are removed)" msgstr " (空间权重中的没有邻居的对象已被删除)" -#contributors: +# contributors: msgid " = 0 at " msgstr "=0 时的距离约" -#contributors: +# contributors: msgid " BiLISA Cluster Map" msgstr " 双变量LISA聚类地图" -#contributors:testtest +# contributors:testtest msgid " BiLISA Significance Map" msgstr " 双变量LISA显著性地图" -#contributors: +# contributors: msgid " Bivariate Local Geary Cluster Map" msgstr " 双变量局部Geary聚类图" -#contributors:lixun910 +# contributors:lixun910 msgid " Bivariate LocalGeary Significance Map" msgstr " 双变量局部Geary显著性地图" -#contributors: +# contributors: msgid " Categories" msgstr " 类别" -#contributors: +# contributors: msgid " Differential LISA Cluster Map" msgstr " 差分LISA聚类图" -#contributors: +# contributors: msgid " Differential Local Geary Cluster Map" msgstr " 差分局部Geary聚类图" -#contributors: +# contributors: msgid " Differential Significance Map" msgstr " 差分显著性地图" -#contributors: +# contributors: msgid " Distance metric: " msgstr " 距离度量: " -#contributors: +# contributors: msgid " LISA Cluster Map" msgstr " LISA聚类地图" -#contributors: +# contributors: msgid " LISA Significance Map" msgstr " LISA显著性地图" -#contributors: +# contributors: msgid " Local Geary Cluster Map" msgstr " 局部Geary聚类地图" -#contributors: +# contributors: msgid " Local Geary Significance Map" msgstr " 局部Geary显著性地图" -#contributors: +# contributors: msgid " already exists. OK to overwrite?" msgstr " 已经存在。要覆盖吗?" -#contributors: +# contributors: msgid " and " msgstr " 和 " -#contributors: +# contributors: msgid " and two time periods: " msgstr " 以及两个不同的时间段: " -#contributors: +# contributors: msgid " for obs within distance band " msgstr " 观察对象在距离带:" -#contributors: -msgid " has duplicate values. Please choose a different ID Variable.\n\nDetails:" -msgstr " 有重复的值。请选择一个不同的ID变量。\n\n详情:" +# contributors: +msgid "" +" has duplicate values. Please choose a different ID Variable.\n" +"\n" +"Details:" +msgstr "" +" 有重复的值。请选择一个不同的ID变量。\n" +"\n" +"详情:" -#contributors: +# contributors: msgid " in range:" msgstr " 大致在范围:" -#contributors: +# contributors: msgid " is not supported by GeoDa.\n" msgstr " GeoDa不支持.\n" -#contributors: +# contributors: msgid " km" msgstr " 公里" -#contributors: +# contributors: msgid " mi" msgstr " 英里" -#contributors: +# contributors: msgid " pairs in distance band " msgstr "对观察对象在距离带:" -#contributors: +# contributors: msgid " should contains only numbers/letters as IDs. Please choose a different ID Variable." msgstr " 应该只包含数字/字母作为id. 请选择一个不同的ID变量." -#contributors: +# contributors: msgid " to " msgstr " 至 " -#contributors: +# contributors: msgid "# Iterations:" msgstr "迭代次数:" -#contributors: +# contributors: msgid "# Max Iteration:" msgstr "最大迭代次数:" -#contributors: +# contributors: msgid "# Neighors:" msgstr "#邻居:" -#contributors: +# contributors: msgid "# Pairs" msgstr "对数" -#contributors: +# contributors: msgid "# iterations:\t" msgstr "迭代次数:\t" -#contributors: +# contributors: msgid "# observations" msgstr "对象数量" -#contributors: +# contributors: msgid "#hover obs " msgstr "鼠标位置对象 " -#contributors: +# contributors: msgid "#obs" msgstr "对象数" -#contributors: +# contributors: msgid "#obs:" msgstr "对象数:" -#contributors: +# contributors: msgid "#obs=" msgstr "对象数=" -#contributors: +# contributors: msgid "#row=" msgstr "行数=" -#contributors: +# contributors: msgid "#selected=" msgstr "选中数量=" -#contributors: +# contributors: msgid "% non-zero" msgstr "有邻居对象所占比" -#contributors: +# contributors: msgid "% of total" msgstr "占总量百分比" -#contributors: +# contributors: msgid "%d of %d variables to include" msgstr "已包含%d个变量(一共%d个变量" -#contributors: +# contributors: msgid "%d variables to include" msgstr "已包含%d个变量" -#contributors: +# contributors: msgid "%s (Weights: %s)" msgstr "%s(空间权重: %s)" -#contributors: +# contributors: msgid "%s Cluster Map (%d clusters)" msgstr "%s 聚类地图 (%d 聚类)" -#contributors: +# contributors: msgid "&Add ID Variable..." msgstr "添加ID变量…" -#contributors: +# contributors: msgid "&Cancel" msgstr "取消" -#contributors: +# contributors: msgid "&Close" msgstr "关闭" -#contributors: +# contributors: msgid "&Edit" msgstr "编辑" -#contributors: +# contributors: msgid "&File" msgstr "文件" -#contributors: +# contributors: msgid "&Help" msgstr "帮助" -#contributors: +# contributors: msgid "&Map" msgstr "地图" -#contributors: +# contributors: msgid "&Merge" msgstr "合并" -#contributors: +# contributors: msgid "&New" msgstr "新建" -#contributors: +# contributors: msgid "&Open Project" msgstr "打开项目文件" -#contributors: +# contributors: msgid "&Regression" msgstr "回归" -#contributors: +# contributors: msgid "&Run" msgstr "运行" -#contributors: +# contributors: msgid "&Save to Table" msgstr "保存到表" -#contributors: +# contributors: msgid "&Space" msgstr "空间分析" -#contributors: +# contributors: msgid "&Tools" msgstr "工具" -#contributors: +# contributors: msgid "(Dendrogram is too complex to draw. Please view clustering results in map.)" msgstr "(树状图太复杂,请在地图中查看聚类结果。)" -#contributors: +# contributors: msgid "(Duplicate field name)" msgstr "(字段名重复)" -#contributors: +# contributors: msgid "(Field name is not valid)" msgstr "(字段名无效)" -#contributors: +# contributors: msgid "(Gaussian) Sigma:" msgstr "(Gaussian) Sigma:" -#contributors: +# contributors: msgid "(Leave empty for undefined values)" msgstr "(未定义的值为空)" -#contributors: +# contributors: msgid "(Optional) First record has field names? " msgstr "(可选)第一行记录是否为字段名? " -#contributors: +# contributors: msgid "(Optional) Longitude/X:" msgstr "(可选)经度/X:" -#contributors: +# contributors: msgid "(Optional) You can change the data type for a field:" msgstr "(可选)可以为字段更改数据类型:" -#contributors: +# contributors: msgid "(Use Sequences)" msgstr "(使用整数顺序)" -#contributors: -msgid "---\n\nPCA method: " -msgstr "---\n\nPCA 方法: " +# contributors: +msgid "" +"---\n" +"\n" +"PCA method: " +msgstr "" +"---\n" +"\n" +"PCA 方法: " -#contributors: -msgid ".\nEnter a seed value to use between\n0 and " -msgstr ".\n输入一个种子值,范围是0和 " +# contributors: +msgid "" +".\n" +"Enter a seed value to use between\n" +"0 and " +msgstr "" +".\n" +"输入一个种子值,范围是0和 " -#contributors: +# contributors: msgid "0x03 (dBASE III+)" msgstr "0x03(dBASEⅢ+)" -#contributors: +# contributors: msgid "1 Iteration" msgstr "1次迭代" -#contributors: +# contributors: msgid "199 Permutations" msgstr "199次置换" -#contributors: +# contributors: msgid "1st Variable (X)" msgstr "第一变量(x)" -#contributors: +# contributors: msgid "2 Iteration" msgstr "2次迭代" -#contributors: +# contributors: msgid "2nd Variable (Y)" msgstr "第二变量(y)" -#contributors: +# contributors: msgid "3 Iteration" msgstr "3次迭代" -#contributors: +# contributors: msgid "3D Plot" msgstr "3D图" -#contributors: +# contributors: msgid "3D Scatter Plot" msgstr "三维散点图" -#contributors: +# contributors: msgid "3D Scatter Plot Variables" msgstr "3D散点图变量" -#contributors: +# contributors: msgid "3rd Variable (Z)" msgstr "第三变量(z)" -#contributors: +# contributors: msgid "4 Iteration" msgstr "4次迭代" -#contributors: +# contributors: msgid "499 Permutations" msgstr "499次置换" -#contributors: +# contributors: msgid "4th Variable" msgstr "第四变量" -#contributors: +# contributors: msgid "5 Iteration" msgstr "5次迭代" -#contributors: +# contributors: msgid "5 of 5 variables needed" msgstr "需要5/5个变量" -#contributors: +# contributors: msgid "6 Iteration" msgstr "6次迭代" -#contributors: +# contributors: msgid "99 Permutations" msgstr "99次置换" -#contributors: +# contributors: msgid "999 Permutations" msgstr "999次置换" -#contributors: +# contributors: msgid "<" msgstr "<" -#contributors: +# contributors: msgid "<<" msgstr "<<" -#contributors: +# contributors: msgid "<=" msgstr "<=" -#contributors: +# contributors: msgid "=" msgstr "=" -#contributors: +# contributors: msgid ">" msgstr ">" -#contributors: +# contributors: msgid ">>" msgstr ">>" -#contributors: +# contributors: msgid "A Table-only data source can't be stacked with current data source." msgstr "表格数据无法叠加到当前的数据。" -#contributors: +# contributors: msgid "A newer version of GeoDa is found. Do you want to update to version " msgstr "发现了一个新版本的GeoDa。要更新版本吗? " -#contributors: +# contributors: msgid "A project file contains extra information not directly stored in the data source such as variable order and grouping." msgstr "项目文件包含不直接存储在数据源中的额外信息, 例如:变量顺序和时间(分组)变量." -#contributors: +# contributors: msgid "About DBF Viewer" msgstr "关于DBF查看器" -#contributors: +# contributors: msgid "About GeoDa" msgstr "关于GeoDa" -#contributors: +# contributors: msgid "About Precision Threshold" msgstr "关于精确度阈值" -#contributors: +# contributors: msgid "Adaptive bandwidth" msgstr "自适应带宽" -#contributors: +# contributors: msgid "Adaptive kernel" msgstr "自适应核" -#contributors: +# contributors: msgid "Add" msgstr "添加" -#contributors: +# contributors: msgid "Add Centroids to Table" msgstr "将质心添加到表中(Centroids)" -#contributors: +# contributors: msgid "Add Map Layer" msgstr "添加图层" -#contributors: +# contributors: msgid "Add Mean Centers to Table" msgstr "将平均中心添加到表中(Mean Centers)" -#contributors: +# contributors: msgid "Add Neighbors To Selection" msgstr "添加邻居到选中的对象" -#contributors: +# contributors: msgid "Add New ID Variable" msgstr "添加新ID变量" -#contributors: +# contributors: msgid "Add OGR column error. Field type is unknown or not supported." msgstr "添加 OGR 列错误。字段类型未知或不受支持。" -#contributors: +# contributors: msgid "Add OGR column error. Field type is unknown." msgstr "添加 OGR 列错误。字段类型未知。" -#contributors: +# contributors: msgid "Add Time" msgstr "添加时间" -#contributors: +# contributors: msgid "Add Variable" msgstr "添加变量" -#contributors: -msgid "Add a name for your group of variables. \n\nYou can edit the time period labels for easier interpretation of results." -msgstr "命名该组变量。\n\n您可以编辑时间标签, 以便更容易地解释结果。" +# contributors: +msgid "" +"Add a name for your group of variables. \n" +"\n" +"You can edit the time period labels for easier interpretation of results." +msgstr "" +"命名该组变量。\n" +"\n" +"您可以编辑时间标签, 以便更容易地解释结果。" -#contributors: +# contributors: msgid "Add basemap automatically:" msgstr "自动添加底图:" -#contributors: +# contributors: msgid "Add new column to table" msgstr "将新列添加到表中" -#contributors: +# contributors: msgid "Add/Remove Variables" msgstr "添加/删除变量" -#contributors: +# contributors: msgid "Adjust Bubble Size" msgstr "调整气泡大小" -#contributors: +# contributors: msgid "Adjust Value Range of Y Axis" msgstr "调整Y轴值范围" -#contributors: +# contributors: msgid "Adjust Value Range of Y-Axis" msgstr "调整Y轴的范围" -#contributors: +# contributors: msgid "Adjust Values of Y Axis" msgstr "调整Y轴值" -#contributors: +# contributors: msgid "Affinity with Guassian Kernel:\tSigma=" msgstr "基于高斯核函数的相似矩阵:\tSigma=" -#contributors: +# contributors: msgid "Affinity with K-NN:" msgstr "基于K-NN的相似性矩阵:" -#contributors: +# contributors: msgid "Affinity with K-Nearest Neighbors:\tK=" msgstr "基于KNN的相似举证:\tK=" -#contributors: +# contributors: msgid "Affinity with Kernel:" msgstr "基于核函数的相似矩阵:" -#contributors: +# contributors: msgid "Aggregate" msgstr "聚合" -#contributors: +# contributors: msgid "Aggregate - " msgstr "聚合 - " -#contributors: +# contributors: msgid "All" msgstr "所有" -#contributors: +# contributors: msgid "All Pairs" msgstr "所有的对数(All pairs)" -#contributors: +# contributors: msgid "All Rights Reserved" msgstr "版权所有" -#contributors: +# contributors: msgid "Allow a single cluster:" msgstr "允许只生成一个聚类:" -#contributors: +# contributors: msgid "Alpha:" msgstr "透明度:" -#contributors: +# contributors: msgid "Always using fixed-point notation" msgstr "使用定点表示法(显示小数位)" -#contributors: +# contributors: msgid "Animation" msgstr "动画" -#contributors: +# contributors: msgid "App Key" msgstr "应用密钥" -#contributors: +# contributors: msgid "Append To Current Selection" msgstr "附加到当前选择" -#contributors: +# contributors: msgid "Append to current selection" msgstr "添加到当前选择" -#contributors: +# contributors: msgid "Appl&y" msgstr "应用" -#contributors: +# contributors: msgid "Apply" msgstr "应用" -#contributors: +# contributors: msgid "Apply kernel to diagonal weights" msgstr "将核函数应用于对角线权重值" -#contributors: +# contributors: msgid "April" msgstr "四月" -#contributors: +# contributors: msgid "Arabic (Windows-1256)" msgstr "阿拉伯语(Windows 1256)" -#contributors: +# contributors: msgid "Arc Distance" msgstr "弧度距离" -#contributors: +# contributors: msgid "Ascending order" msgstr "升序" -#contributors: +# contributors: msgid "Assign To Target" msgstr "分配给目标" -#contributors: +# contributors: msgid "Assign Values to Currently Selected / Unselected" msgstr "赋值到当前选中的(或未选中)的对象" -#contributors: +# contributors: msgid "Assoc. Var." msgstr "相关变量" -#contributors: +# contributors: msgid "Attributes (Optional)" msgstr "属性 (可选)" -#contributors: +# contributors: msgid "August" msgstr "八月" -#contributors: +# contributors: msgid "Auto Weighting" msgstr "自动加权" -#contributors: +# contributors: msgid "Autocorr." msgstr "自相关系数" -#contributors: +# contributors: msgid "Autocorr. of " msgstr "自相关系数" -#contributors: +# contributors: msgid "Automatic Labels" msgstr "自动标签" -#contributors: +# contributors: msgid "Average" msgstr "平均值" -#contributors: +# contributors: msgid "Average Comparison Chart" msgstr "平均值比较图" -#contributors: +# contributors: msgid "Averages Chart" msgstr "平均值比较图" -#contributors: +# contributors: msgid "Axes Through Origin" msgstr "通过原点的轴" -#contributors: +# contributors: msgid "Axis Option" msgstr "轴选项" -#contributors: +# contributors: msgid "Axis Selection" msgstr "轴选择" -#contributors: +# contributors: msgid "Background" msgstr "背景" -#contributors: +# contributors: msgid "Background Color" msgstr "背景颜色" -#contributors: +# contributors: msgid "Bandwidth:" msgstr "带宽:" -#contributors: +# contributors: msgid "Base Map " msgstr "网络底图 " -#contributors: +# contributors: msgid "Base Variable" msgstr "基本变量" -#contributors: +# contributors: msgid "Basemap" msgstr "底图" -#contributors: +# contributors: msgid "Basemap Configuration" msgstr "底图配置" -#contributors: +# contributors: msgid "Basemap Configuration Dialog" msgstr "底图配置对话框" -#contributors: +# contributors: msgid "Basemap Parameters:" msgstr "底图设置:" -#contributors: +# contributors: msgid "Basemap Sources: (Format: group&name.basemap&name,basemap&url)" msgstr "Basemap Sources: (Format: group&name.basemap&name,basemap&url)" -#contributors: +# contributors: msgid "Before add/delete observations, please close the %d view(s) that depend on it." msgstr "在添加/删除观测之前, 请关闭依赖于它的%d 个窗口。" -#contributors: +# contributors: msgid "Before proceed with operation (add/remove, move, or rename), please close %d views that depend on it." msgstr "在继续操作(添加、删除、移动或重命名)之前 , 请关闭使用过该变量的%d 个窗口。" -#contributors: +# contributors: msgid "Before you can modify the variable %s, please close the %d view(s) that depend on it." msgstr "在修改变量%s 之前, 请关闭依赖于它的%d 个窗口。" -#contributors: +# contributors: msgid "Bivariate" msgstr "二元变量" -#contributors: +# contributors: msgid "Bivariate Local Join Count" msgstr "双变量局部Joint Count" -#contributors: +# contributors: msgid "Bivariate Local Moran's I" msgstr "双变量局部Moran’s I" -#contributors: +# contributors: msgid "Bivariate Moran Variable Settings" msgstr "二元Moran变量设置" -#contributors: +# contributors: msgid "Bivariate Moran's I" msgstr "双变量Moran’s I" -#contributors: +# contributors: msgid "Bivariate Moran's I (%s): %s and lagged %s" msgstr "双变量Moran's I(%s):%s和滞后%s" -#contributors: +# contributors: msgid "Bonferroni bound:" msgstr "Bonferroni界限:" -#contributors: +# contributors: msgid "Both are significant, Spatial Lag Model has been selected." msgstr "两者都是显著的,已选择空间滞后模型。" -#contributors: +# contributors: msgid "Bottom" msgstr "Bottom" -#contributors: +# contributors: msgid "Bounding Box" msgstr "边框" -#contributors: +# contributors: msgid "Box Map (Hinge=1.5)" msgstr "箱线地图 (Hinge=1.5)" -#contributors: +# contributors: msgid "Box Map (Hinge=3.0)" msgstr "箱线地图 (Hinge=3.0)" -#contributors: +# contributors: msgid "Box Plot" msgstr "箱线图" -#contributors: +# contributors: msgid "Boxplot Theme" msgstr "箱型图主题" -#contributors: +# contributors: msgid "Breaks" msgstr "断点" -#contributors: +# contributors: msgid "Breaks with same values were created. Please choose a smaller categories, or manually edit the break values." msgstr "" -#contributors: +# contributors: msgid "Bubble Chart" msgstr "气泡图" -#contributors: +# contributors: msgid "Bubble Chart - x: %s, y: %s, size: %s, %s" msgstr "气泡图-x:%s, y:%s, 大小:%s,%s" -#contributors: +# contributors: msgid "Bubble Chart Variables" msgstr "气泡图变量" -#contributors: +# contributors: msgid "Bubble Size" msgstr "气泡大小" -#contributors: +# contributors: msgid "Bubble Size Adjust Dialog" msgstr "气泡大小设置" -#contributors: +# contributors: msgid "Buffer query area:" msgstr "缓冲查询区域:" -#contributors: +# contributors: msgid "Bug Report" msgstr "软件缺陷报告" -#contributors: +# contributors: msgid "C&reate" msgstr "创建" -#contributors: +# contributors: msgid "CRS (proj4 format)" msgstr "CRS (proj4 格式)" -#contributors: +# contributors: msgid "CSV Configuration Warning" msgstr "CSV配置警告" -#contributors: +# contributors: msgid "CSV Contains Variable Names?" msgstr "CSV是否包含变量名?" -#contributors: +# contributors: msgid "CSV File Configuration" msgstr "CSV 文件设置" -#contributors: +# contributors: msgid "Calculator" msgstr "计算器" -#contributors: +# contributors: msgid "Can't connect to datasource: " msgstr "无法连接到数据源: " -#contributors: +# contributors: msgid "Can't create layer %s with empty field (%s) name." msgstr "无法创建层 %s, 字段 (%s) 为空." -#contributors: -msgid "Can't create output OGR driver. \n\nDetails:" -msgstr "无法创建OGR数据. \n\n详细:" +# contributors: +msgid "" +"Can't create output OGR driver. \n" +"\n" +"Details:" +msgstr "" +"无法创建OGR数据. \n" +"\n" +"详细:" -#contributors: +# contributors: msgid "Can't get bounding box information from this datasource. Please try another datasource." msgstr "无法从此数据源获取边界信息。请尝试另一个数据源。" -#contributors: -msgid "Can't get datasource type from: %s\n\nPlease select datasource supported by GeoDa or add extension to file datasource." -msgstr "无法从%s获取数据源类型\n\n请选择GeoDa支持的数据源或将扩展名添加到文件数据源。" +# contributors: +msgid "" +"Can't get datasource type from: %s\n" +"\n" +"Please select datasource supported by GeoDa or add extension to file datasource." +msgstr "" +"无法从%s获取数据源类型\n" +"\n" +"请选择GeoDa支持的数据源或将扩展名添加到文件数据源。" -#contributors: +# contributors: msgid "Can't get layers from unknown datasource. Please complete the datasource fields." msgstr "无法从未知数据源获取图层。 请填写数据源字段。" -#contributors: +# contributors: msgid "Can't save Thiessen polygons" msgstr "无法保存泰森多边形" -#contributors: +# contributors: msgid "Can't write/create layer \"" msgstr "无法创建层 \"" -#contributors: +# contributors: msgid "Cancel" msgstr "取消" -#contributors: +# contributors: msgid "Canvas Layout Preview" msgstr "输出图像预览" -#contributors: +# contributors: msgid "Carto" msgstr "Carto" -#contributors: +# contributors: msgid "Cartogram" msgstr "变形地图" -#contributors: +# contributors: msgid "Cartogram Variables" msgstr "形变地图变量" -#contributors: +# contributors: msgid "Categories" msgstr "类别数" -#contributors: +# contributors: msgid "Categories \"%s\" is currently in use by another view. Please close or change all views using this custom categories before deleting." msgstr "分类“%s”目前被另一窗口使用。在删除之前,请关闭使用当前分类的所有窗口。" -#contributors: +# contributors: msgid "Categories of " msgstr "分类 " -#contributors: +# contributors: msgid "Categories title \"%s\" already exists. Please choose a different title." msgstr "分类标题”%s”已经存在。请选择另一个标题。" -#contributors: +# contributors: msgid "Category" msgstr "分类" -#contributors: +# contributors: msgid "Category Editor" msgstr "自定义分类编辑器" -#contributors: +# contributors: msgid "Central European (CP852)" msgstr "中欧(CP852)" -#contributors: +# contributors: msgid "Central European (Windows-1250)" msgstr "中欧(Windows-1250)" -#contributors: +# contributors: msgid "Central European Latin-2 (ISO-8859-2)" msgstr "中欧拉丁文-2(ISO-859-2)" -#contributors: +# contributors: msgid "Centroid (X)" msgstr "" -#contributors: +# contributors: msgid "Centroid (Y)" msgstr "" -#contributors: +# contributors: msgid "Change" msgstr "更改" -#contributors: +# contributors: msgid "Change Categories Title" msgstr "更改分类的标题" -#contributors: +# contributors: msgid "Change Color of Root" msgstr "" -#contributors: +# contributors: msgid "Change Current Map Type" msgstr "更改当前地图类型" -#contributors: +# contributors: msgid "Change Edge Color" msgstr "改变边缘颜色" -#contributors: +# contributors: msgid "Change Edge Thickness" msgstr "改变边的宽度" -#contributors: +# contributors: msgid "Change Fill Color" msgstr "修改填充颜色" -#contributors: +# contributors: msgid "Change Fill Color of Neighbors" msgstr "改变邻居的填充颜色" -#contributors: +# contributors: msgid "Change Font" msgstr "更改字体" -#contributors: +# contributors: msgid "Change Map Transparency" msgstr "地图透明度设置" -#contributors: +# contributors: msgid "Change Outline Color" msgstr "修改轮廓颜色" -#contributors: +# contributors: msgid "Change Outline Color of Selected" msgstr "修改选择对象轮廓颜色" -#contributors: +# contributors: msgid "Change Parameters" msgstr "更改参数" -#contributors: +# contributors: msgid "Change Point Radius" msgstr "设置点的半径" -#contributors: +# contributors: msgid "Change Seed" msgstr "改变随机数的种子" -#contributors: +# contributors: msgid "Change Size of Root" msgstr "修改根(root)大小" -#contributors: -msgid "Change field properties (%s) failed.\n\nDetails: %s" +# contributors: +msgid "" +"Change field properties (%s) failed.\n" +"\n" +"Details: %s" msgstr "" -#contributors: +# contributors: msgid "Change title \"%s\" to" msgstr "更改标题”%s”为" -#contributors: +# contributors: msgid "Change variable type for \"%s\" has failed. Please check all values are valid for conversion." msgstr "更改 \"%s\" 的变量类型失败。请检查所有值是否有效。" -#contributors: +# contributors: msgid "Check Bug Report on Github" msgstr "检查github上的bug报告" -#contributors: +# contributors: msgid "Check Updates" msgstr "检查更新" -#contributors: +# contributors: msgid "Checking Symmetry..." msgstr "检查对称性……" -#contributors: +# contributors: msgid "Chinese Simplified (GB2312)" msgstr "中文简化版(GB23 12)" -#contributors: +# contributors: msgid "Chinese Traditional (Big5)" msgstr "繁体中文(BIG5)" -#contributors: +# contributors: msgid "Choose A Color" msgstr "选择颜色" -#contributors: +# contributors: msgid "Choose Cateogry Color" msgstr "选择分类颜色" -#contributors: +# contributors: msgid "Choose Cateogry Fill Color" msgstr "选择分类填充色" -#contributors: +# contributors: msgid "Choose Cateogry Outline Color" msgstr "选择分类轮廓色" -#contributors: +# contributors: msgid "Choose Intervals" msgstr "指定区间数(Intervals)" -#contributors: +# contributors: msgid "Choose Weights" msgstr "选择空间权重" -#contributors: +# contributors: msgid "Choose Weights File" msgstr "选择空间权重文件" -#contributors: +# contributors: msgid "Choose an output weights file name." msgstr "选择一个输出空间权重文件名。" -#contributors: +# contributors: msgid "Chosen field is not a numeric type. Please select a numeric type field." msgstr "所选字段不是数值类型。 请选择数字类型字段。" -#contributors: +# contributors: msgid "Chosen field is not a numeric type. Please select a numeric type field." msgstr "选择的字段不是数值类型。请选择一个数值类型的字段。" -#contributors: +# contributors: msgid "Chosen key field '%s' s a time variant. Please choose a non-time variant field as key." msgstr "选择的键字段 \"%s\" 是一个时间变量。请选择一个非时间变量字段作为键。" -#contributors: +# contributors: msgid "Chosen key field is not valid. Please select another key field" msgstr "" -#contributors: +# contributors: msgid "Chow test for sel/unsel regression subsets: " msgstr "选中和未选中对象生成的线性回归进行周(Chow)检验: " -#contributors: +# contributors: msgid "Circle" msgstr "圆形" -#contributors: +# contributors: msgid "Circle Color" msgstr "圆圈颜色" -#contributors: +# contributors: msgid "Circle Size" msgstr "圆圈大小" -#contributors: +# contributors: msgid "Classic " msgstr "经典线性回归模型 " -#contributors: +# contributors: msgid "Classification Themes" msgstr "分类主题" -#contributors: +# contributors: msgid "Clean Basemap Cache" msgstr "清空底图缓存" -#contributors: +# contributors: msgid "Clear Highlight Association" msgstr "取消图层关联" -#contributors: +# contributors: msgid "Clear Selection" msgstr "清除选择" -#contributors: +# contributors: msgid "Click RegressionDlg::OnSaveToTxtFileClick" msgstr "Click RegressionDlg::OnSaveToTxtFileClick" -#contributors: +# contributors: msgid "Click RegressionDlg::OnViewResultsClick" msgstr "Click RegressionDlg::OnViewResultsClick" -#contributors: +# contributors: msgid "Close" msgstr "关闭" -#contributors: +# contributors: msgid "Cluster Map " msgstr "聚类地图 " -#contributors: +# contributors: msgid "Cluster Maps" msgstr "聚类地图" -#contributors: +# contributors: msgid "Cluster centers:" msgstr "聚类中心:" -#contributors: +# contributors: msgid "Clusters" msgstr "聚类" -#contributors: +# contributors: msgid "Co-location Join Count" msgstr "同值同位(Colocation) Join Count" -#contributors: +# contributors: msgid "Co-location Join Count only applies to co-location case. The selected variables have no co-location. Please change your selection, or use Univariate/Bivariate Local Join Count." msgstr "" -#contributors: +# contributors: msgid "Co-location Map" msgstr "同值同位(Colocation)地图" -#contributors: +# contributors: msgid "Co-location Map: " msgstr "同值同位(Colocation)地图:" -#contributors: +# contributors: msgid "Co-location Settings" msgstr "Co-location设置" -#contributors: +# contributors: msgid "Coeff. Var. Mat." msgstr "系数方差矩阵." -#contributors: +# contributors: msgid "Colocation Cluster" msgstr "Colocation聚类" -#contributors: +# contributors: msgid "Color" msgstr "颜色" -#contributors: +# contributors: msgid "Color Scheme" msgstr "配色方案" -#contributors: +# contributors: msgid "Column Name" msgstr "列名" -#contributors: +# contributors: msgid "Column Number (from 0)" msgstr "Column Number (from 0)" -#contributors: +# contributors: msgid "Comma Separated Value (*.csv)|*.csv" msgstr "逗号分隔值 (*.csv)|*.csv" -#contributors: +# contributors: msgid "Components:" msgstr "选择要保持的主成分数:" -#contributors: +# contributors: msgid "Conditional Co-location Map Variables" msgstr "条件Co-location地图变量" -#contributors: +# contributors: msgid "Conditional G Cluster Map Variables" msgstr "条件G聚类地图变量" -#contributors: +# contributors: msgid "Conditional GetisOrd Map" msgstr "条件GetisOrd地图" -#contributors: +# contributors: msgid "Conditional Histogram" msgstr "条件直方图" -#contributors: +# contributors: msgid "Conditional Histogram Variables" msgstr "条件直方图变量" -#contributors: +# contributors: msgid "Conditional LISA Map" msgstr "条件LISA地图" -#contributors: +# contributors: msgid "Conditional LISA Map Variables" msgstr "条件LISA地图变量" -#contributors: +# contributors: msgid "Conditional Local Geary Map" msgstr "条件局部Geary地图" -#contributors: +# contributors: msgid "Conditional Local Geary Map Variables" msgstr "条件局部Geary地图变量" -#contributors: +# contributors: msgid "Conditional Local Join Count Map" msgstr "条件局部Join Count地图" -#contributors: +# contributors: msgid "Conditional Map" msgstr "条件地图" -#contributors: +# contributors: msgid "Conditional Map Variables" msgstr "条件地图变量" -#contributors: +# contributors: msgid "Conditional Plot" msgstr "条件图" -#contributors: +# contributors: msgid "Conditional Scatter Plot" msgstr "条件散点图" -#contributors: +# contributors: msgid "Conditional Scatter Plot Variables" msgstr "条件散点图变量" -#contributors: +# contributors: msgid "Connect" msgstr "连接" -#contributors: +# contributors: msgid "Connect to Data Source" msgstr "连接数据源" -#contributors: +# contributors: msgid "Connectivity" msgstr "连通性" -#contributors: +# contributors: msgid "Connectivity Graph" msgstr "连通图" -#contributors: +# contributors: msgid "Connectivity Histogram" msgstr "连通性直方图" -#contributors: +# contributors: msgid "Connectivity Map" msgstr "连通性地图" -#contributors: +# contributors: msgid "Connectivity Map - " msgstr "连通性地图 - " -#contributors: +# contributors: msgid "Contiguity Weight" msgstr "邻接空间权重" -#contributors: +# contributors: msgid "Continue" msgstr "继续" -#contributors: +# contributors: msgid "Convert ASCII to SHP" msgstr "将ASCII转换为.shp格式的矢量文件" -#contributors: +# contributors: msgid "Convert Boundary to SHP" msgstr "转换边界到SHP" -#contributors: +# contributors: msgid "Convert Boundary to Shape Datasource" msgstr "转换边界到矢量数据" -#contributors: +# contributors: msgid "Cooling Rate:" msgstr "冷却速度:" -#contributors: +# contributors: msgid "Cooling rate for Simulated Annealing algorithm has to be a float number between 0 and 1 (e.g. 0.85)." msgstr "模拟退火算法的冷却速率必须是0和1之间的浮点数(例如0.85)。" -#contributors: +# contributors: msgid "Cooling rate:" msgstr "冷却速率:" -#contributors: +# contributors: msgid "Copy" msgstr "复制" -#contributors: +# contributors: msgid "Copy Image To Clipboard" msgstr "复制图像到剪贴板" -#contributors: +# contributors: msgid "Copy Legend To Clipboard" msgstr "复制图例到剪贴板" -#contributors: -msgid "Copyright (C) 1998-2011\nGeoDa Center for Geospatial Analysis and Computation\nand Arizona Board of Regents\nAll Rights Reserved" -msgstr "版权 (C) 1998-2011\nGeoDa Center for Geospatial Analysis and Computation\nand Arizona Board of Regents\n版权所有" +# contributors: +msgid "" +"Copyright (C) 1998-2011\n" +"GeoDa Center for Geospatial Analysis and Computation\n" +"and Arizona Board of Regents\n" +"All Rights Reserved" +msgstr "" +"版权 (C) 1998-2011\n" +"GeoDa Center for Geospatial Analysis and Computation\n" +"and Arizona Board of Regents\n" +"版权所有" -#contributors: +# contributors: msgid "Copyright (C) 2011-%d by Luc Anselin" msgstr "版权所有 (C) 2011-%d Luc Anselin" -#contributors: +# contributors: msgid "Copyright (C) year-year by Luc Anselin" msgstr "版权所有 (C) year-year Luc Anselin" -#contributors: +# contributors: msgid "Cores" msgstr "核心" -#contributors: +# contributors: msgid "Cores and Neighbors" msgstr "核心和邻居" -#contributors: +# contributors: msgid "Correlogram" msgstr "非参空间自相关分析(Correlogram)" -#contributors: +# contributors: msgid "Correlogram Parameters" msgstr "非参空间自相关分析" -#contributors: +# contributors: msgid "Correlogram Parameters Help" msgstr "非参空间自相关分析设置帮助" -#contributors: +# contributors: msgid "Could not create a new variable. Possibly a read-only data source." msgstr "无法创建新变量。数据源可能为只读。" -#contributors: +# contributors: msgid "Could not determine which Field Choice was selected. Please report this error." msgstr "" -#contributors: +# contributors: msgid "Could not determine which Time Choice was selected. Please report this error." msgstr "" -#contributors: +# contributors: msgid "Could not initialize new project." msgstr "无法初始化一个新的项目。" -#contributors: +# contributors: msgid "Count" msgstr "计数" -#contributors: +# contributors: msgid "Covariates" msgstr "协变量" -#contributors: +# contributors: msgid "Create" msgstr "创建" -#contributors: +# contributors: msgid "Create Custom Breaks" msgstr "创建自定义分类" -#contributors: +# contributors: msgid "Create Grid" msgstr "创建格网数据" -#contributors: +# contributors: msgid "Create New Custom" msgstr "创建新的自定义" -#contributors: +# contributors: msgid "Create Project File Now?" msgstr "是否创建项目文件?" -#contributors: +# contributors: msgid "Create Weights" msgstr "创建空间权重" -#contributors: +# contributors: msgid "Create a project file?" msgstr "创建一个项目文件?" -#contributors: +# contributors: msgid "Create new custom categories classification." msgstr "" -#contributors: +# contributors: msgid "Creating Grid" msgstr "创建网格" -#contributors: +# contributors: msgid "Cumulative" msgstr "累积" -#contributors: +# contributors: msgid "Current OGR dirver " msgstr "" -#contributors: +# contributors: msgid "Current Opacity: %.2f" msgstr "" -#contributors: +# contributors: msgid "Current Transparency: %.2f" msgstr "当前透明度: %.2f" -#contributors: +# contributors: msgid "Current field name:" msgstr "当前字段名:" -#contributors: +# contributors: msgid "Current layer has already been associated with selected layer. Please select another layer to associate with." msgstr "" -#contributors: +# contributors: msgid "Current time:" msgstr "当前时间:" -#contributors: +# contributors: msgid "Curve Color" msgstr "曲线颜色" -#contributors: +# contributors: msgid "Custom" msgstr "" -#contributors: +# contributors: msgid "Custom Breaks" msgstr "自定义分类" -#contributors: +# contributors: msgid "Custom Inference" msgstr "自定义推断" -#contributors: +# contributors: msgid "Cut" msgstr "剪切" -#contributors: +# contributors: msgid "Cyrillic (ISO-8859-5)" msgstr "西里尔(ISO-855-5)" -#contributors: +# contributors: msgid "Cyrillic (KOI8-R)" msgstr "西里尔(KII8—R)" -#contributors: +# contributors: msgid "Cyrillic (Windows-1251)" msgstr "西里尔(Windows 1251)" -#contributors: +# contributors: msgid "Cyrillic/Russian (CP866)" msgstr "西里尔语/俄语(CP866)" -#contributors: +# contributors: msgid "D.F." msgstr "" -#contributors: +# contributors: msgid "DBF File Information" msgstr "DBF文件信息" -#contributors: +# contributors: msgid "DBF Viewer 0.8 (July 29, 2011)" msgstr "" -#contributors: +# contributors: msgid "Data" msgstr "数据" -#contributors: +# contributors: msgid "Data Point" msgstr "数据点" -#contributors: +# contributors: msgid "Data Preview - number of preview records:" msgstr "数据预览 - 行数:" -#contributors: +# contributors: msgid "Data Source Overview/Help: " msgstr "支持的数据格式和相关帮助: " -#contributors: +# contributors: msgid "Data Type" msgstr "数据类型" -#contributors: +# contributors: msgid "Data source (%s) doesn't exist. Please check the project configuration file." msgstr "数据源(%s)不存在。请检查项目配置文件。" -#contributors: +# contributors: msgid "Database" msgstr "数据库" -#contributors: +# contributors: msgid "Database Host" msgstr "数据库主机" -#contributors: +# contributors: msgid "Database Name/Instance" msgstr "数据库名称/实例" -#contributors: +# contributors: msgid "Database Port" msgstr "数据库端口" -#contributors: +# contributors: msgid "Database Type" msgstr "数据库类型" -#contributors: +# contributors: msgid "Database port is empty. Please input one." msgstr "数据库端口为空。请输入一个。" -#contributors: +# contributors: msgid "Database/Instance Name" msgstr "数据库/实例名" -#contributors: +# contributors: msgid "Datasource in project is not valid." msgstr "项目文件中的数据源无效。" -#contributors: +# contributors: msgid "Datasource path is empty." msgstr "数据源路径为空。" -#contributors: +# contributors: msgid "Date/Time" msgstr "日期/时间" -#contributors: +# contributors: msgid "Date/Time formats (using comma to separate formats):" msgstr "日期/时间格式(使用逗号分隔格式):" -#contributors: +# contributors: msgid "December" msgstr "十二月" -#contributors: +# contributors: msgid "Decimal:" msgstr "小数:" -#contributors: +# contributors: msgid "Decimals (max 15)" msgstr "小数位数(最大15)" -#contributors: +# contributors: msgid "Default displayed decimal places in Table:" msgstr "" -#contributors: +# contributors: msgid "Delete" msgstr "删除" -#contributors: +# contributors: msgid "Delete Variable(s)" msgstr "删除变量" -#contributors: +# contributors: msgid "Delta Factor:" msgstr "Delta参数:" -#contributors: +# contributors: msgid "Dendrogram" msgstr "树状图" -#contributors: +# contributors: msgid "Dependent Var (y-axis)" msgstr "因变量(y轴)" -#contributors: +# contributors: msgid "Dependent Var Y" msgstr "因变量Y" -#contributors: +# contributors: msgid "Dependent Variable" msgstr "因变量" -#contributors: +# contributors: msgid "Descending order" msgstr "降序" -#contributors: +# contributors: msgid "Description" msgstr "描述" -#contributors: +# contributors: msgid "Diagonal weights = 1" msgstr "对角线权重值=1" -#contributors: +# contributors: msgid "Diff Values" msgstr "差异值" -#contributors: +# contributors: msgid "Difference-in-Means Test:" msgstr "均值比较检验:" -#contributors: +# contributors: msgid "Differential Local Moran's I" msgstr "差分局部Moran’s I" -#contributors: +# contributors: msgid "Differential Moran Variable Settings" msgstr "差分Moran变量设置" -#contributors: +# contributors: msgid "Differential Moran's I" msgstr "差分Moran’s I" -#contributors: +# contributors: msgid "Differential Moran's I (%s): %s - %s" msgstr "差分Moran's I (%s):%s - %s" -#contributors: -msgid "Differential Moran's I tests whether the change in a variable over time is spatially correlated.\n\nPlease first group variables by time period: Select Time --> Time Editor." -msgstr "差分Moran’s I 检验变量随时间的变化是否在空间上存在相关性。\n\n请首先按时间段对变量进行分组:选择“时间” - >“时间编辑器”。" +# contributors: +msgid "" +"Differential Moran's I tests whether the change in a variable over time is spatially correlated.\n" +"\n" +"Please first group variables by time period: Select Time --> Time Editor." +msgstr "" +"差分Moran’s I 检验变量随时间的变化是否在空间上存在相关性。\n" +"\n" +"请首先按时间段对变量进行分组:选择“时间” - >“时间编辑器”。" -#contributors: +# contributors: msgid "Disable auto upgrade:" msgstr "禁用自动升级:" -#contributors: +# contributors: msgid "Disable crash detection for bug report:" msgstr "禁用检测程序崩溃发送错误报告:" -#contributors: +# contributors: msgid "Display Axes Scale Values" msgstr "显示轴刻度值" -#contributors: +# contributors: msgid "Display Centroids" msgstr "显示质心" -#contributors: +# contributors: msgid "Display Mean Centers" msgstr "显示平均中心" -#contributors: +# contributors: msgid "Display Slope Values" msgstr "显示斜率值" -#contributors: +# contributors: msgid "Display Statistics" msgstr "显示统计" -#contributors: +# contributors: msgid "Display Thiessen Polygons" msgstr "显示泰森多边形" -#contributors: +# contributors: msgid "Displayed decimal places" msgstr "显示小数点位数" -#contributors: +# contributors: msgid "Displayed decimals" msgstr "显示小数" -#contributors: +# contributors: msgid "Displayed decimals places" msgstr "显示小数点位数" -#contributors: +# contributors: msgid "Dissolve" msgstr "空间融合(Dissolve)" -#contributors: +# contributors: msgid "Dissolve - " msgstr "空间融合(Dissolve) - " -#contributors: +# contributors: msgid "Dissolve does not work with Table only datasource." msgstr "" -#contributors: +# contributors: msgid "Dissolve only works on polygon dataset." msgstr "" -#contributors: +# contributors: msgid "Distance" msgstr "距离" -#contributors: +# contributors: msgid "Distance Function:" msgstr "距离函数:" -#contributors: +# contributors: msgid "Distance Weight" msgstr "基于距离空间权重" -#contributors: +# contributors: msgid "Distance band" msgstr "距离带" -#contributors: +# contributors: msgid "Distance function:\t" msgstr "距离函数:\t" -#contributors: +# contributors: msgid "Distance metric: " msgstr "距离度量: " -#contributors: +# contributors: msgid "Distance:" msgstr "距离函数:" -#contributors: +# contributors: msgid "Do Means Differ? (ANOVA)" msgstr "均值比较检验(ANOVA)" -#contributors: -msgid "Do you want to save the results of Diff-in-Diff test?\n\nNote: the results can only be saved into an external data file, due to the change of cross-sectional observations in a space-time context." -msgstr "是否保存Diff-in-Diff测试结果?\n\n注意: 结果只能保存到外部数据文件中, 这是因为当前的横截面观测值在空时上下文中发生了变化。" +# contributors: +msgid "" +"Do you want to save the results of Diff-in-Diff test?\n" +"\n" +"Note: the results can only be saved into an external data file, due to the change of cross-sectional observations in a space-time context." +msgstr "" +"是否保存Diff-in-Diff测试结果?\n" +"\n" +"注意: 结果只能保存到外部数据文件中, 这是因为当前的横截面观测值在空时上下文中发生了变化。" -#contributors: +# contributors: msgid "Do you want to save your data?" msgstr "数据需要保存?" -#contributors: +# contributors: msgid "Don't show Recent/Sample Data panel again" msgstr "下次不再显示最近访问和示例数据" -#contributors: +# contributors: msgid "Don't show this dialog again (You can always change this setting using menu: File->Preferences)" msgstr "不要再次显示此对话框(可以使用菜单:文件->首选项来更改此设置)" -#contributors: +# contributors: msgid "Donate" msgstr "捐赠" -#contributors: +# contributors: msgid "Down" msgstr "向下移动" -#contributors: +# contributors: msgid "Download OSM Roads" msgstr "" -#contributors: +# contributors: msgid "Downloading updates..." msgstr "正在下载更新…" -#contributors: +# contributors: msgid "Duplicate IDs" msgstr "重复ID" -#contributors: +# contributors: msgid "Duplicate Thiessen Polygons Found" msgstr "将重复的泰森多边形保存到表中" -#contributors: +# contributors: msgid "Duplicate Thiessen polygons exist due to duplicate or near-duplicate map points. Please try to export current dataset without duplicates." msgstr "" -#contributors: +# contributors: msgid "Duplicate Thiessen polygons exist due to duplicate or near-duplicate map points. Press OK to save duplicate polygon ids to Table." msgstr "由于存在重复或接近重复的点,所生成的泰森多边形出现重复的。按 \"确定\" 将重复的泰森多边形 id 保存到表中。" -#contributors: +# contributors: msgid "Duplicate variable names specified." msgstr "" -#contributors: +# contributors: msgid "E&xplore" msgstr "探索分析" -#contributors: +# contributors: msgid "ESRI File Geodatabase (*.gdb)|*.gdb" msgstr "" -#contributors: +# contributors: msgid "ESRI Personal Geodatabase (*.mdb)|*.mdb" msgstr "ESRI个人地理数据库(*.MDB)**MDB" -#contributors: +# contributors: msgid "ESRI Shapefile (*.shp)|*.shp" msgstr "ESRI Shapefile (*.shp)|*.shp" -#contributors: +# contributors: msgid "Edit" msgstr "编辑" -#contributors: +# contributors: msgid "Edit Custom Breaks" msgstr "编辑自定义分类" -#contributors: +# contributors: msgid "Edit LOWESS Parameters" msgstr "编辑LOWESS参数" -#contributors: +# contributors: msgid "Edit Title" msgstr "编辑标题" -#contributors: +# contributors: msgid "Edit Variable Properties" msgstr "编辑变量属性" -#contributors: +# contributors: msgid "Emp Bayes Rate Std Moran's I (%s): %s / %s" msgstr "经验贝叶斯比率标准化的Moran's I (%s): %s / %s" -#contributors: +# contributors: msgid "Empirical Bayes" msgstr "经验贝叶斯" -#contributors: +# contributors: msgid "Empirical Bayes Rate Standardization Variables" msgstr "经验贝叶斯比率标准化变量" -#contributors: +# contributors: msgid "Empirical Bayes Smoothed Variable Settings" msgstr "经验贝叶斯平滑变量设置" -#contributors: +# contributors: msgid "Empirical Spatial Rate Smoothed Variable Settings" msgstr "经验空间比率平滑变量设置" -#contributors: +# contributors: msgid "Enable High DPI/Retina support (Mac only):" msgstr "启用高DPI/Retina 支持(仅MAC):" -#contributors: +# contributors: msgid "Enable User Defined Value Range of Y-Axis" msgstr "启用用户定义的Y轴值范围" -#contributors: +# contributors: msgid "Enable transparency setup of category color in map (Windows only):" msgstr "" -#contributors: +# contributors: msgid "Encode" msgstr "编码" -#contributors: +# contributors: msgid "Enter a seed value" msgstr "输入种子值" -#contributors: +# contributors: msgid "Enter a seed value for random number generator:" msgstr "输入一个用于生成随机数的种子:" -#contributors: +# contributors: msgid "Enter new ID variable name:" msgstr "输入新ID变量名:" -#contributors: +# contributors: msgid "Equal Intervals" msgstr "等间隔断点" -#contributors: +# contributors: msgid "Equal Intervals Map" msgstr "等间隔地图" -#contributors: +# contributors: msgid "Error" msgstr "错误" -#contributors: -msgid "Error while opening project:\n\n" +# contributors: +msgid "" +"Error while opening project:\n" +"\n" msgstr "打开工程时出错\n" -#contributors: +# contributors: msgid "Error: " msgstr "错误: " -#contributors: +# contributors: msgid "Error: Base values contain non-positive numbers which will result in undefined values." msgstr "错误: 有基值(Base value)为负数, 这将导致计算结果出现未定义的值或空值。" -#contributors: +# contributors: msgid "Error: Chosen theme requires more cateogries than observations." msgstr "错误:所选主题需要更多数量的分类。" -#contributors: +# contributors: msgid "Error: Due to restrictions on the DBF file format, the particular combination of length and decimals entered is not valid. Based on your current choices, we recommend length = %d and decimals = %d" msgstr "错误: 由于对 DBF 文件格式的限制, 输入的长度和小数点位数的特定组合无效。 根据您当前的选择, 我们建议长度 =%d 和小数点位数 =%d" -#contributors: +# contributors: msgid "Error: Maximum number of neighbors %d exceeded." msgstr "错误:超过最大的邻居数量%d。" -#contributors: +# contributors: msgid "Error: The table variable name is empty." msgstr "错误:表变量名称为空。" -#contributors: +# contributors: msgid "Error: \"%s\" already exists in Table, please specify a different name." msgstr "错误:表中已经存在“%s”,请指定一个不同的名称。" -#contributors: +# contributors: msgid "Error: \"%s\" is an invalid variable name. The first character must be alphabetic, and the remaining characters can be either alphanumeric or underscores. For DBF table, a valid variable name is between one and ten characters long." msgstr "错误:“%s”是无效的变量名称。第一个字符必须是字母,其余字符可以是字母数字或下划线。对于DBF表,有效的变量名称长度介于1到10个字符之间。" -#contributors: +# contributors: msgid "Error: \"%s\" not found." msgstr "错误: 找不到 \"%s\"。" -#contributors: +# contributors: msgid "Error: no records found in data source." msgstr "错误:数据源中找不到记录。" -#contributors: +# contributors: msgid "Error: the inverse matrix is ill-conditioned." msgstr "错误:逆矩阵为病态矩阵。" -#contributors: +# contributors: msgid "Estimated Pairs:" msgstr "估计的对数(Estimated Pairs):" -#contributors: +# contributors: msgid "Euclidean Distance" msgstr "欧式距离" -#contributors: +# contributors: msgid "Event Variable" msgstr "事件变量" -#contributors: +# contributors: msgid "Excess Risk" msgstr "超额风险度(Excess Risk)" -#contributors: +# contributors: msgid "Excess Risk Map Variable Settings" msgstr "超额危险度地图变量设置" -#contributors: +# contributors: msgid "Exclude" msgstr "排除" -#contributors: +# contributors: msgid "Existing Variables" msgstr "现有变量" -#contributors: +# contributors: msgid "Exit" msgstr "退出" -#contributors: +# contributors: msgid "Exit with unsaved changes?" msgstr "未保存更改,直接退出?" -#contributors: +# contributors: msgid "Exit?" msgstr "退出?" -#contributors: +# contributors: msgid "Explore" msgstr "探索分析" -#contributors: +# contributors: msgid "Export or save layer to" msgstr "导出或保存数据层到" -#contributors: +# contributors: msgid "Exporting Shape to Boundary" msgstr "导出矢量数据的边界" -#contributors: +# contributors: msgid "Expression" msgstr "表达式" -#contributors: +# contributors: msgid "Extent" msgstr "" -#contributors: +# contributors: msgid "Fail in reading the Boundary file: at polygon-%d" msgstr "读取边界文件失败:在多边形-%d" -#contributors: +# contributors: msgid "Failed to create the weights file." msgstr "创建空间权重文件失败。" -#contributors: -msgid "Failed to open data source. Please check the data/datasource and check if the data type/format is supported by GeoDa.\n\nTip: you can set up the necessary GeoDa driver by following the instructions at:\n http://geodacenter.github.io/formats.html" -msgstr "无法打开数据源。请检查GeoDa是否支持该数据源的类型/格式。\n\n提示: 您可以参考这个链接来设置相关的驱动程序: http://geodacenter.github.io/formats.html" +# contributors: +msgid "" +"Failed to open data source. Please check the data/datasource and check if the data type/format is supported by GeoDa.\n" +"\n" +"Tip: you can set up the necessary GeoDa driver by following the instructions at:\n" +" http://geodacenter.github.io/formats.html" +msgstr "" +"无法打开数据源。请检查GeoDa是否支持该数据源的类型/格式。\n" +"\n" +"提示: 您可以参考这个链接来设置相关的驱动程序: http://geodacenter.github.io/formats.html" -#contributors: +# contributors: msgid "False Discovery Rate:" msgstr "伪发现率:" -#contributors: +# contributors: msgid "February" msgstr "二月" -#contributors: +# contributors: msgid "Field (%s) already exited." msgstr "字段 (%s)已经存在." -#contributors: +# contributors: msgid "File" msgstr "文件" -#contributors: +# contributors: msgid "File Path" msgstr "文件路径" -#contributors: +# contributors: msgid "File doesn't exist!" msgstr "文件不存在!" -#contributors: +# contributors: msgid "File merged into Table successfully." msgstr "文件已成功合并到表中。" -#contributors: +# contributors: msgid "Fill Color" msgstr "填充色" -#contributors: +# contributors: msgid "Fill Color for Category" msgstr "分类填充色" -#contributors: +# contributors: msgid "Fill Opacity for Category" msgstr "分类填充色透明度" -#contributors: +# contributors: msgid "Finished" msgstr "完成" -#contributors: +# contributors: msgid "First Variable (X)" msgstr "第一变量(X)" -#contributors: +# contributors: msgid "First Variable (X/Longitude)" msgstr "第一个变量(X/经度)" -#contributors: +# contributors: msgid "First line of CSV is variable names?" msgstr "CSV文件的第一行是字段名?" -#contributors: +# contributors: msgid "First row of CSV file" msgstr "CSV文件的第一行" -#contributors: +# contributors: msgid "Fit-To-Window Mode" msgstr "窗口匹配模式" -#contributors: +# contributors: msgid "Fixed Aspect Ratio Mode" msgstr "固定长宽比模式" -#contributors: +# contributors: msgid "Fixed scale over time" msgstr "固定比例(不随时间变化)" -#contributors: +# contributors: msgid "Fixed x-axis scale over time" msgstr "固定 x 轴刻度(不随时间变化)" -#contributors: +# contributors: msgid "Fixed y-axis scale over time" msgstr "固定 y 轴范围不随时间改变" -#contributors: +# contributors: msgid "Fourth Variable" msgstr "第四变量" -#contributors: +# contributors: msgid "Frequency" msgstr "频率" -#contributors: +# contributors: msgid "Full Extent" msgstr "全图" -#contributors: +# contributors: msgid "GAL files (*.gal)|*.gal" msgstr "GAL files (*.gal)|*.gal" -#contributors: +# contributors: msgid "GWT files (*.gwt)|*.gwt" msgstr "GWT files (*.gwt)|*.gwt" -#contributors: +# contributors: msgid "GeoDa Bug Report Dialog" msgstr "GeoDa错误报告对话框" -#contributors: +# contributors: msgid "GeoDa CSV File Configuration" msgstr "GeoDa CSV文件配置" -#contributors: +# contributors: msgid "GeoDa Help" -msgstr "GeoDa\n帮助" +msgstr "" +"GeoDa\n" +"帮助" -#contributors: +# contributors: msgid "GeoDa Preference Setup" msgstr "GeoDa偏好设置" -#contributors: +# contributors: msgid "GeoDa Project (*.gda)|*.gda" msgstr "GeoDa项目文件(*.gda)|*.gda" -#contributors: +# contributors: msgid "GeoDa Project File (*.gda)|*.gda" msgstr "GeoDa Project File (*.gda)|*.gda" -#contributors: +# contributors: msgid "GeoDa Project File to Open" msgstr "打开GeoDa项目文件" -#contributors: +# contributors: msgid "GeoDa Project to Save As" msgstr "保存GEODA项目文件" -#contributors: +# contributors: msgid "GeoDa Update Dialog" msgstr "GeoDa更新" -#contributors: +# contributors: msgid "GeoDa can not get valid spatial reference from input data source. Please try another data source." msgstr "" -#contributors: +# contributors: msgid "GeoDa can not open the input data source. Please try another data source." msgstr "" -#contributors: +# contributors: msgid "GeoDa can't change the variable type to DATE/TIME. Please select another type." msgstr "GeoDa 无法将变量类型更改为日期/时间。请选择其他类型。" -#contributors: +# contributors: msgid "GeoDa can't create a layer." msgstr "" -#contributors: +# contributors: msgid "GeoDa can't load dataset with duplicate field names." msgstr "" -#contributors: -msgid "GeoDa can't read data from datasource. \n\nDetails: Datasource is empty." +# contributors: +msgid "" +"GeoDa can't read data from datasource. \n" +"\n" +"Details: Datasource is empty." msgstr "" -#contributors: +# contributors: msgid "GeoDa can't save a Table-only data source as a Geometry enabled data source. Please try to add a geometry layer and then use File->Save As." msgstr "GeoDa无法将表格数据源保存为矢量数据。请尝试添加一个矢量图层,然后使用:文件 - >另存为。" -#contributors: +# contributors: msgid "GeoDa can't save changes to this datasource. Please try to use File->Export." msgstr "GeoDa 无法保存对此数据所做的更改。请尝试使用:文件-> 导出。" -#contributors: +# contributors: msgid "GeoDa cannot find proper projection or geographic coordinate system information to add a basemap. Please update this information (e.g. in .prj file)." msgstr "GeoDa 找不到适当的投影或地理坐标系信息来添加类底图。请更新此信息 (例如, 在. prj 文件中)。" -#contributors: +# contributors: msgid "GeoDa could not find the required weights file." msgstr "GeoDa找不到所需的空间权重文件。" -#contributors: -msgid "GeoDa could not find the required weights file. \nPlease specify weights in Tools > Weights Manager." +# contributors: +msgid "" +"GeoDa could not find the required weights file. \n" +"Please specify weights in Tools > Weights Manager." msgstr "GeoDa找不到所需的空间权重文件。请在:工具>权重管理器 中指定权重。" -#contributors: +# contributors: msgid "GeoDa could not load this layer. Please check if the datasource is valid and not table only." msgstr "" -#contributors: +# contributors: msgid "GeoDa does not support creating data of %s. Please try to 'Export' to other supported data source format." msgstr "GeoDa不支持创建%s的数据,请尝试将其导出为其他GeoDa支持的数据格式。" -#contributors: +# contributors: msgid "GeoDa does not support datasource with line data at this time. Please choose a datasource with either point or polygon data." msgstr "GeoDa目前不支持线数据的数据源. 请选择具有点或多边形数据的数据源." -#contributors: +# contributors: msgid "GeoDa has run into a problem and will close." msgstr "GeoDa 程序遇到了问题,将会关闭。" -#contributors: +# contributors: msgid "GeoDa maj.min.bld (type), day month year" msgstr "GeoDa maj.min.bld (type), day month year" -#contributors: +# contributors: msgid "GeoDa was unable to save the file." msgstr "GeoDa 无法保存该文件。" -#contributors: +# contributors: msgid "GeoJSON (*.geojson;*.json)|*.geojson;*.json" msgstr "GeoJSON (*.geojson;*.json)|*.geojson;*.json" -#contributors: +# contributors: msgid "GeoJson URL" msgstr "GeoJson 网址" -#contributors: +# contributors: msgid "GeoPackage (*.gpkg)|*.gpkg" msgstr "GeoPackage (*.gpkg)|*.gpkg" -#contributors: +# contributors: msgid "Geography Markup Language (*.gml)|*.gml" msgstr "Geography Markup Language (*.gml)|*.gml" -#contributors: +# contributors: msgid "Geometric centroids" msgstr "几何中心" -#contributors: +# contributors: msgid "Geometries have been added to existing Table-only data source. Do you want to save them as a new datasource?" msgstr "已将几何形状添加到当前数据。当前数据不支持矢量格式,是否另存为一个新的数据源?" -#contributors: +# contributors: msgid "Geometries not saved" msgstr "矢量数据未保存" -#contributors: +# contributors: msgid "Get a free Carto account: " msgstr "获得免费Carto账户: " -#contributors: +# contributors: msgid "Get a free GeoDa-Web account: " msgstr "获得免费的GeoDa-Web帐户: " -#contributors: +# contributors: msgid "Get a free HERE account: " msgstr "获得免费HERE地图帐户: " -#contributors: +# contributors: msgid "Getis-Ord" msgstr "Getis-Ord" -#contributors: +# contributors: msgid "Gi cluster map, pseudo p-val" msgstr "Gi聚类地图,伪p值" -#contributors: +# contributors: msgid "Gi* cluster map, pseudo p-val" msgstr "Gi*聚类地图,伪p值" -#contributors: +# contributors: msgid "Greedy" msgstr "贪心算法(Greedy)" -#contributors: +# contributors: msgid "Greek (ISO-8859-7)" msgstr "希腊语(ISO-8859-7)" -#contributors: +# contributors: msgid "Grid Bounding Box" msgstr "网格边界" -#contributors: +# contributors: msgid "Grid Size" msgstr "网格大小" -#contributors: +# contributors: msgid "Grid file was successfully created." msgstr "网格文件成功创建。" -#contributors: +# contributors: msgid "Group" msgstr "分组" -#contributors: +# contributors: msgid "Group 1:" msgstr "第1组:" -#contributors: +# contributors: msgid "Group 2:" msgstr "第2组:" -#contributors: +# contributors: msgid "Group Variable:" msgstr "" -#contributors: +# contributors: msgid "Grouped Variables" msgstr "分组的变量" -#contributors: +# contributors: msgid "Groups:" msgstr "分组:" -#contributors: +# contributors: msgid "HDBScan" msgstr "" -#contributors: +# contributors: msgid "HDBScan Cluster Map (%d clusters)" msgstr "HDBScan 聚类地图 (%d 聚类)" -#contributors: +# contributors: msgid "HDBScan Clustering Settings" msgstr "HDBScan 聚类设置" -#contributors: +# contributors: msgid "HERE App ID" msgstr "HERE 应用 ID" -#contributors: +# contributors: msgid "HERE App Key" msgstr "HERE 应用密钥" -#contributors: +# contributors: msgid "Has Colocation" msgstr "存在Colocation" -#contributors: +# contributors: msgid "Hebrew (ISO-8859-8-1)" msgstr "希伯来语(ISO-8598-1)" -#contributors: +# contributors: msgid "Hebrew (Windows-1255)" msgstr "希伯来语(Windows-1255)" -#contributors: +# contributors: msgid "Height:" msgstr "高度:" -#contributors: +# contributors: msgid "Help" msgstr "帮助" -#contributors: +# contributors: msgid "Hide Map" msgstr "隐藏地图" -#contributors: +# contributors: msgid "Hide system table in Postgresql connection:" msgstr "在PostgreSQL连接中隐藏系统表:" -#contributors: +# contributors: msgid "Hide system table in SQLITE connection:" msgstr "在SQLite连接中隐藏系统表:" -#contributors: +# contributors: msgid "Hierachical Map does not work with Table only datasource." msgstr "表格数据无法创建层次分类地图" -#contributors: +# contributors: msgid "Hierachical Map: " msgstr "层次分类地图:" -#contributors: +# contributors: msgid "Hierarchical" msgstr "层次聚类(Hierarchical)" -#contributors: +# contributors: msgid "Hierarchical Clustering Settings" msgstr "层次聚类设置" -#contributors: +# contributors: msgid "Hierarchical Map" msgstr "层次分类地图" -#contributors: +# contributors: msgid "High" msgstr "高" -#contributors: +# contributors: msgid "High-High" msgstr "高-高" -#contributors: +# contributors: msgid "High-Low" msgstr "高-低" -#contributors: +# contributors: msgid "Highlight Color" msgstr "高亮颜色" -#contributors: +# contributors: msgid "Hinge" msgstr "Hinge" -#contributors: +# contributors: msgid "Hinge=1.5" msgstr "Hinge=1.5" -#contributors: +# contributors: msgid "Hinge=3.0" msgstr "Hinge=3.0" -#contributors: +# contributors: msgid "Histogram" msgstr "直方图" -#contributors: +# contributors: msgid "Histogram Classification" msgstr "直方图" -#contributors: +# contributors: msgid "Histogram Variable" msgstr "直方图变量" -#contributors: +# contributors: msgid "Histogram: " msgstr "直方图: " -#contributors: +# contributors: msgid "Horizontal Bins Breaks" -msgstr "竖直方向区间(Bins)断点" +msgstr "横向区间(Bins)断点" -#contributors: +# contributors: msgid "Horizontal Cells" msgstr "水平单元" -#contributors: +# contributors: msgid "Http connection timeout (seconds) for e.g. WFS, Geojson etc.:" msgstr "Http连接超时(秒),例如WFS、Geojson等:" -#contributors: +# contributors: msgid "ID is not specified!" msgstr "没有指定ID!" -#contributors: +# contributors: msgid "Image Dimension Settings" msgstr "图像大小设置" -#contributors: +# contributors: msgid "Improve Cartogram" msgstr "加强形变地图" -#contributors: +# contributors: msgid "Include" msgstr "包含" -#contributors: +# contributors: msgid "Include Variable Names" msgstr "包含变量名" -#contributors: +# contributors: msgid "Include diagonal of weights matrix" msgstr "包括权重矩阵的对角线" -#contributors: +# contributors: msgid "Include lower orders" msgstr "是否包含低阶的邻居" -#contributors: +# contributors: msgid "Incomplete Group Variable" msgstr "创建时间(分组)变量未完成" -#contributors: +# contributors: msgid "Independent Var (x-axis)" msgstr "自变量(x轴)" -#contributors: +# contributors: msgid "Independent Var X" msgstr "自变量X" -#contributors: +# contributors: msgid "Inference Settings" msgstr "推断设置" -#contributors: +# contributors: msgid "Inference Settings (%d perm)" msgstr "推断设置(%d 置换)" -#contributors: +# contributors: msgid "Info" msgstr "信息" -#contributors: +# contributors: msgid "Information" msgstr "信息" -#contributors: +# contributors: msgid "Initial Groups:" msgstr "初始组:" -#contributors: +# contributors: msgid "Initial groups:\t" msgstr "初始组:\t" -#contributors: +# contributors: msgid "Initialization Method:" msgstr "初始化方法:" -#contributors: +# contributors: msgid "Initialization Re-runs:" msgstr "初始化运行次数:" -#contributors: +# contributors: msgid "Initialization method:\t" msgstr "初始化方法:\t" -#contributors: +# contributors: msgid "Initialization re-runs:\t" msgstr "初始化重复运行次数:\t" -#contributors: +# contributors: msgid "Input" msgstr "输入" -#contributors: +# contributors: msgid "Input ASCII file" msgstr "输入ASCII文件" -#contributors: +# contributors: msgid "Input data source" msgstr "输入数据源" -#contributors: +# contributors: msgid "Input datasource" msgstr "输入数据源" -#contributors: +# contributors: msgid "Input file " msgstr "选择文件 " -#contributors: +# contributors: msgid "Input file (text file)" msgstr "输入文件(文本文件)" -#contributors: +# contributors: msgid "Input is duplicated." msgstr "输入重复。" -#contributors: +# contributors: msgid "Input is not valid." msgstr "输入无效。" -#contributors: +# contributors: msgid "Input is required" msgstr "输入是必需的" -#contributors: +# contributors: msgid "Input significance:" msgstr "输入显著性值:" -#contributors: +# contributors: msgid "Input:" msgstr "输入:" -#contributors: +# contributors: msgid "Insert before" msgstr "添加在选择变量之前" -#contributors: +# contributors: msgid "Insufficient Random Sampling" msgstr "随机抽样不足" -#contributors: -msgid "Internal Error: Add new field (%s) failed.\n\nDetails:%s" +# contributors: +msgid "" +"Internal Error: Add new field (%s) failed.\n" +"\n" +"Details:%s" msgstr "" -#contributors: -msgid "Internal Error: Delete field failed.\n\nDetails:" +# contributors: +msgid "" +"Internal Error: Delete field failed.\n" +"\n" +"Details:" msgstr "" -#contributors: +# contributors: msgid "Internal Error: can't update an in-memory cell." msgstr "内部错误: 无法更新内存单元。" -#contributors: +# contributors: msgid "Intervals" msgstr "间隔" -#contributors: +# contributors: msgid "Intervals in the Histogram" msgstr "直方图的分组数量" -#contributors: +# contributors: msgid "Invalid Variable" msgstr "无效变量" -#contributors: -msgid "Invalid Weights Information:\n\n The selected weights file is not valid.\n Please choose another weights file, or use Tools > Weights > Weights Manager to define a valid weights file." +# contributors: +msgid "" +"Invalid Weights Information:\n" +"\n" +" The selected weights file is not valid.\n" +" Please choose another weights file, or use Tools > Weights > Weights Manager to define a valid weights file." msgstr "" -#contributors: -msgid "Invalid Weights Information:\n\n The selected weights file is not valid.\n Please choose another weights file, or use Tools > Weights > Weights Manager\n to define a valid weights file." -msgstr "无效的空间权重信息:\n\n 选定的空间权重文件无效。\n 请选择另外一个空间权重文件,通过菜单来定义一个有效的权重文件:工具>权重>权重管理" +# contributors: +msgid "" +"Invalid Weights Information:\n" +"\n" +" The selected weights file is not valid.\n" +" Please choose another weights file, or use Tools > Weights > Weights Manager\n" +" to define a valid weights file." +msgstr "" +"无效的空间权重信息:\n" +"\n" +" 选定的空间权重文件无效。\n" +" 请选择另外一个空间权重文件,通过菜单来定义一个有效的权重文件:工具>权重>权重管理" -#contributors: +# contributors: msgid "Invalid layer association has been detected, which will cause infinite highlighting loop. Please try to reset highlight association between layers." msgstr "" -#contributors: +# contributors: msgid "Invert Select" msgstr "反选" -#contributors: +# contributors: msgid "Invert Selection" msgstr "反选" -#contributors: -msgid "It looks like GeoDa has been terminated abnormally. \nDo you want to send a crash report to GeoDa team? \n\n(Optional) Please leave your email address,\nso we can send a follow-up email once we have a fix." +# contributors: +msgid "" +"It looks like GeoDa has been terminated abnormally. \n" +"Do you want to send a crash report to GeoDa team? \n" +"\n" +"(Optional) Please leave your email address,\n" +"so we can send a follow-up email once we have a fix." msgstr "" -#contributors: +# contributors: msgid "Iterations:" msgstr "迭代次数 :" -#contributors: +# contributors: msgid "January" msgstr "一月" -#contributors: +# contributors: msgid "Japanese (EUC-JP)" msgstr "日语(EUC-JP)" -#contributors: +# contributors: msgid "Japanese (Shift&JIS)" msgstr "日语(Shift&JIS)" -#contributors: +# contributors: msgid "Japanese (Shift_JIS)" msgstr "日语(Shift_JIS)" -#contributors: +# contributors: msgid "Join Operation:" msgstr "合并操作:" -#contributors: +# contributors: msgid "Join Variable:" msgstr "合并变量:" -#contributors: +# contributors: msgid "July" msgstr "七月" -#contributors: +# contributors: msgid "June" msgstr "六月" -#contributors: +# contributors: msgid "K Means" msgstr "K均值聚类" -#contributors: +# contributors: msgid "K Medians" msgstr "K中位数聚类" -#contributors: +# contributors: msgid "K Medoids" msgstr "K中心聚类" -#contributors: +# contributors: msgid "K-Nearest neighbors" msgstr "K-近邻" -#contributors: +# contributors: msgid "KMeans Clustering Settings" msgstr "K均值聚类设置" -#contributors: +# contributors: msgid "KMedians Clustering Settings" msgstr "K中值聚类设置" -#contributors: +# contributors: msgid "KMedoids Clustering Settings" msgstr "K中心聚类设置" -#contributors: +# contributors: msgid "KWT files (*.kwt)|*.kwt" msgstr "KWT文件(*.kwt)|*.kwt" -#contributors: +# contributors: msgid "Kernel function" msgstr "核函数" -#contributors: +# contributors: msgid "Key" msgstr "键" -#contributors: +# contributors: msgid "Keyhole Markup Language (*.kml)|*.kml" msgstr "Keyhold标记语言(*.kml)|*.kml" -#contributors: +# contributors: msgid "Korean (EUC-KR)" msgstr "韩语(EUC-KR)" -#contributors: +# contributors: msgid "LISA" msgstr "" -#contributors: +# contributors: msgid "LOWESS Smoother" msgstr "LOWESS平滑器" -#contributors: +# contributors: msgid "LOWESS Smoother Help" msgstr "LOWESS 平滑器帮助" -#contributors: +# contributors: msgid "LOWESS Smoother Parameters" msgstr "LOWESS平滑参数" -#contributors: +# contributors: msgid "Language" msgstr "语言" -#contributors: +# contributors: msgid "Language:" msgstr "语言:" -#contributors: +# contributors: msgid "Latitude/Y:" msgstr "纬度/Y:" -#contributors: +# contributors: msgid "Layer names" msgstr "层名称" -#contributors: +# contributors: msgid "Left" msgstr "" -#contributors: +# contributors: msgid "Legend Background Color" msgstr "图例背景颜色" -#contributors: +# contributors: msgid "Length (max 254)" msgstr "长度(最长 254)" -#contributors: +# contributors: msgid "Light" msgstr "细" -#contributors: -msgid "Limited date/time type recognition can be done for Date (YYYY-MM-DD), Time (HH:MM:SS+nn) and DateTime (YYYY-MM-DD HH:MM:SS+nn) in configuration.\n\nPlease try to load customized date/time type as string and covert it using Table->Edit Variable Property" -msgstr "可识别的日期/时间类型仅限于日期(YYYY-MM-DD),时间(HH:MM:SS + nn)和日期时间(YYYY-MM-DD HH:MM:SS + nn),\n\n如有自定义的日期/时间类型, 请在偏好设置中设置,然后使用菜单 “表格 ->编辑变量属性” 进行日期转换" +# contributors: +msgid "" +"Limited date/time type recognition can be done for Date (YYYY-MM-DD), Time (HH:MM:SS+nn) and DateTime (YYYY-MM-DD HH:MM:SS+nn) in configuration.\n" +"\n" +"Please try to load customized date/time type as string and covert it using Table->Edit Variable Property" +msgstr "" +"可识别的日期/时间类型仅限于日期(YYYY-MM-DD),时间(HH:MM:SS + nn)和日期时间(YYYY-MM-DD HH:MM:SS + nn),\n" +"\n" +"如有自定义的日期/时间类型, 请在偏好设置中设置,然后使用菜单 “表格 ->编辑变量属性” 进行日期转换" -#contributors: +# contributors: msgid "Line" msgstr "线段" -#contributors: +# contributors: msgid "Linear Smoother" msgstr "线性平滑器" -#contributors: -msgid "List of existing ungrouped variables. To group variables by time, move them to the list on the right.\n\nFor example, to group Pop80 and Pop90, select them on the left and move them to the right." -msgstr "未分组变量列表。 如要创建时间(分组)变量,请将它们移到右侧的列表中。\n\n例如,要将Pop80和Pop90组合创建一个时间变量,请在左侧选择它们并将它们移到右侧。" +# contributors: +msgid "" +"List of existing ungrouped variables. To group variables by time, move them to the list on the right.\n" +"\n" +"For example, to group Pop80 and Pop90, select them on the left and move them to the right." +msgstr "" +"未分组变量列表。 如要创建时间(分组)变量,请将它们移到右侧的列表中。\n" +"\n" +"例如,要将Pop80和Pop90组合创建一个时间变量,请在左侧选择它们并将它们移到右侧。" -#contributors: +# contributors: msgid "Load" msgstr "打开" -#contributors: +# contributors: msgid "Load CRS from a data source" msgstr "从数据中读取CRS" -#contributors: +# contributors: msgid "Load Layer Failed." msgstr "加载层失败。" -#contributors: +# contributors: msgid "Load time definition from project file." msgstr "从项目文件加载时间定义。" -#contributors: +# contributors: msgid "Loading data..." msgstr "加载数据中..." -#contributors: +# contributors: msgid "Local G" msgstr "局部G" -#contributors: +# contributors: msgid "Local G Maps" msgstr "局部G地图" -#contributors: +# contributors: msgid "Local G Statistics Maps" msgstr "局部G统计地图" -#contributors: +# contributors: msgid "Local G*" msgstr "局部G*" -#contributors: +# contributors: msgid "Local Geary" msgstr "局部Geary" -#contributors: +# contributors: msgid "Local Geary Maps" msgstr "局部Geary图" -#contributors: +# contributors: msgid "Local Join Count " msgstr "局部Join Count" -#contributors: +# contributors: msgid "Local Moran's I Maps" msgstr "局部Moran’s I 地图" -#contributors: +# contributors: msgid "Local Moran's I with EB Rate" msgstr "基于经验贝叶斯比率的局部Moran’s I" -#contributors: +# contributors: msgid "Local Search:" msgstr "局部搜索:" -#contributors: +# contributors: msgid "Local search:" msgstr "局部搜索:" -#contributors: +# contributors: msgid "Locale for numbers has been setup successfully. Please re-open current project to enable this locale." msgstr "已成功设置区域设置。请重新打开当前项目以启用此区域设置。" -#contributors: +# contributors: msgid "Loop" msgstr "循环" -#contributors: +# contributors: msgid "Low" msgstr "低" -#contributors: +# contributors: msgid "Low-High" msgstr "低-高" -#contributors: +# contributors: msgid "Low-Low" msgstr "低-低" -#contributors: +# contributors: msgid "Lower outlier" msgstr "低异常值" -#contributors: +# contributors: msgid "Lower-left corner" msgstr "左下角" -#contributors: +# contributors: msgid "MDS" msgstr "多维标度分析(MDS)" -#contributors: +# contributors: msgid "MDS Plot" msgstr "多维尺度变换图 MDS" -#contributors: +# contributors: msgid "MDS Plot - " msgstr "多维尺度分析图(MDS) - " -#contributors: +# contributors: msgid "MDS Settings" msgstr "多维标度分析(MDS)设置" -#contributors: +# contributors: msgid "MS Excel (*.xls)|*.xls" msgstr "MS Excel (*.xls)|*.xls" -#contributors: +# contributors: msgid "Make selection from expression " msgstr "从表达式中选择 " -#contributors: +# contributors: msgid "Manual Resize Column" msgstr "手动调整列的大小" -#contributors: +# contributors: msgid "Map" msgstr "地图" -#contributors: +# contributors: msgid "Map Color Classification" msgstr "地图颜色分类" -#contributors: +# contributors: msgid "Map Layer Settings" msgstr "地图打印设置" -#contributors: +# contributors: msgid "Map Layout Preview" msgstr "地图打印预览" -#contributors: +# contributors: msgid "Map Movie" msgstr "地图动画" -#contributors: +# contributors: msgid "Map Theme" msgstr "地图主题" -#contributors: +# contributors: msgid "Map Themes" msgstr "地图主题" -#contributors: +# contributors: msgid "MapInfo (*.tab;*.mif;*.mid)|*.tab;*.mif;*.mid" msgstr "MapInfo(*.tab;*.MIF;*.MID)**.tab;*.MIF;*.MID" -#contributors: +# contributors: msgid "Maps To Open" msgstr "地图打开" -#contributors: +# contributors: msgid "Maps and Rates" msgstr "地图和比率" -#contributors: +# contributors: msgid "Maps:" msgstr "地图:" -#contributors: +# contributors: msgid "March" msgstr "三月" -#contributors: +# contributors: msgid "Max" msgstr "最大值" -#contributors: +# contributors: msgid "Max Distance:" msgstr "最大距离:" -#contributors: +# contributors: msgid "Max value of Y axis" msgstr "Y轴最大值" -#contributors: +# contributors: msgid "Max-p Settings" msgstr "Max-p 设置" -#contributors: +# contributors: msgid "Maximum # of regions:" msgstr "最大区域数量:" -#contributors: +# contributors: msgid "Maximum Iterations:" msgstr "最大迭代:" -#contributors: +# contributors: msgid "Maximum iterations:\t" msgstr "最大迭代次数:\t" -#contributors: +# contributors: msgid "May" msgstr "五月" -#contributors: +# contributors: msgid "Mean" msgstr "平均值" -#contributors: +# contributors: msgid "Merge" msgstr "合并" -#contributors: +# contributors: msgid "Merge - " msgstr "合并 - " -#contributors: +# contributors: msgid "Merge by key values" msgstr "合并(按关键值)" -#contributors: +# contributors: msgid "Merge by record order" msgstr "合并(按顺序)" -#contributors: +# contributors: msgid "Merge error: Geometric type of selected datasource has to be the same with current datasource." msgstr "合并错误: 选定数据源的几何类型必须与当前数据源相同。" -#contributors: +# contributors: msgid "Message area" msgstr "消息区" -#contributors: +# contributors: msgid "Meta-data" msgstr "元数据" -#contributors: +# contributors: msgid "Method" msgstr "方法" -#contributors: +# contributors: msgid "Method of selecting clusters:" msgstr "选取聚类的方法:" -#contributors: +# contributors: msgid "Method:" msgstr "方法:" -#contributors: +# contributors: msgid "Method:\t" msgstr "方法:\t" -#contributors: +# contributors: msgid "Min" msgstr "最小值" -#contributors: +# contributors: msgid "Min # per Region:" msgstr "每区域最小对象数量:" -#contributors: +# contributors: msgid "Min Region Size:" msgstr "最小区域大小:" -#contributors: +# contributors: msgid "Min cluster size:" msgstr "聚类最小对象数(Min Cluster size):" -#contributors: +# contributors: msgid "Min samples:" msgstr "最小采样数:" -#contributors: +# contributors: msgid "Min value of Y axis" msgstr "Y轴最小值" -#contributors: +# contributors: msgid "Minimum Bound:" msgstr "最小界限:" -#contributors: +# contributors: msgid "Minimum bound:\t" msgstr "最小边界值:\t" -#contributors: +# contributors: msgid "Minimum cluster size should be greater than one." msgstr "" -#contributors: +# contributors: msgid "Minimum region size:\t" msgstr "最小区域数:\t" -#contributors: +# contributors: msgid "Minimum samples should be greater than zero." msgstr "" -#contributors: +# contributors: msgid "Models" msgstr "模型" -#contributors: +# contributors: msgid "Moran Scatter Plot" msgstr "Moran散点图" -#contributors: +# contributors: msgid "Moran scatter plot is not supported when isolates are present in weights. Do you want to continue by removing the isolates when compute Moran's I?" msgstr "" -#contributors: +# contributors: msgid "Moran's I (%s): %s" msgstr "Moran's I(%s):%s" -#contributors: +# contributors: msgid "Moran's I with EB Rate" msgstr "基于经验贝叶斯比率的Moran’s I" -#contributors: +# contributors: msgid "Move Down" msgstr "向下移动" -#contributors: +# contributors: msgid "Move Selected to Top" msgstr "移动选择到顶部" -#contributors: +# contributors: msgid "Move Up" msgstr "向上移动" -#contributors: +# contributors: msgid "Multi-Variable Settings" msgstr "多变量设置" -#contributors: +# contributors: msgid "Multivariate Local Geary" msgstr "多变量局部Geary" -#contributors: +# contributors: msgid "Name" msgstr "名称" -#contributors: +# contributors: msgid "Natural Breaks" msgstr "自然间断点" -#contributors: +# contributors: msgid "Natural Breaks Map" msgstr "自然断点地图" -#contributors: +# contributors: msgid "Negative" msgstr "负相关" -#contributors: +# contributors: msgid "Neighborless" msgstr "无邻域" -#contributors: +# contributors: msgid "Neighbors of Cores" msgstr "核心的邻居" -#contributors: +# contributors: msgid "New" msgstr "新建" -#contributors: +# contributors: msgid "New Categories Title" msgstr "新建分类标题" -#contributors: +# contributors: msgid "New Custom Categories Title:" msgstr "自定义类别标题:" -#contributors: +# contributors: msgid "New From Recent" msgstr "打开最近访问" -#contributors: +# contributors: msgid "New Group Details" msgstr "新建组(时间)变量" -#contributors: +# contributors: msgid "New Map Coordinates" msgstr "新地图坐标" -#contributors: +# contributors: msgid "New Project Filename" msgstr "新建项目文件名" -#contributors: +# contributors: msgid "New Selection" msgstr "新选择" -#contributors: +# contributors: msgid "New datasource:" msgstr "新数据源:" -#contributors: +# contributors: msgid "New project file:" msgstr "新建项目:" -#contributors: +# contributors: msgid "New selection" msgstr "新选择" -#contributors: +# contributors: msgid "New space-time variable name" msgstr "新的时空变量名" -#contributors: +# contributors: msgid "New variable name" msgstr "新的变量名" -#contributors: +# contributors: msgid "No Basemap" msgstr "无底图" -#contributors: +# contributors: msgid "No Colocation" msgstr "没有Colocation" -#contributors: +# contributors: msgid "No Weights Found" msgstr "没有权重文件" -#contributors: +# contributors: msgid "No clusters can be found using current parameters." msgstr "使用当前的参数配置找不到任何聚类。" -#contributors: +# contributors: msgid "No field chosen for first and second variable." msgstr "" -#contributors: +# contributors: msgid "No field chosen for first variable." msgstr "请选择第一个变量" -#contributors: +# contributors: msgid "No field chosen for fourth variable." msgstr "请选择第四个变量" -#contributors: +# contributors: msgid "No field chosen for second variable." msgstr "请选择第二个变量" -#contributors: +# contributors: msgid "No field chosen for third variable." msgstr "请选择第三个变量" -#contributors: +# contributors: msgid "No layer has been selected. Please select a layer." msgstr "没有选择任何层。请选择一个图层。" -#contributors: +# contributors: msgid "No layer was found in the selected data source." msgstr "在选定的数据源中没有发现任何图层/表。" -#contributors: +# contributors: msgid "No layer was found in this datasource." msgstr "在选定的数据源中没有发现任何图层/表。" -#contributors: +# contributors: msgid "No numeric variables found in table." msgstr "表中没有找到任何数值变量。" -#contributors: +# contributors: msgid "No numeric variables found." msgstr "没有找到任何数值变量。" -#contributors: +# contributors: msgid "No rates currently calculated to save." msgstr "当前保存当前比率变量。" -#contributors: +# contributors: msgid "No update required" msgstr "不需要更新" -#contributors: +# contributors: msgid "No weights file was created due to all observations being isolates for the specified threshold value. Increase the threshold to create a non-empty weights file." msgstr "无法创建空间权重文件:所设阈值过小,所有对象无法在阈值范围内找到邻居。请尝试增大阈值再创建空间权重文件。" -#contributors: +# contributors: msgid "None of your observations have neighbors. This could be related to digitizing problems, which can be fixed by adjusting the precision threshold." msgstr "所有观测对象都不能找到邻居。 这可能与地图数字化的问题有关(比如:相邻矢量形状之间的距离不为0),可通过调整最小精度阈值(即:相邻矢量形状之间的可能的最小距离)来解决问题。" -#contributors: +# contributors: msgid "Nordic Latin-6 (ISO-8859-10)" msgstr "" -#contributors: +# contributors: msgid "Normal" msgstr "正常" -#contributors: +# contributors: msgid "Not Clustered" msgstr "无法进行聚类" -#contributors: +# contributors: msgid "Not Significant" msgstr "不显著" -#contributors: +# contributors: msgid "Not enough memory!" msgstr "内存不足!" -#contributors: +# contributors: msgid "Notice" msgstr "通知" -#contributors: +# contributors: msgid "November" msgstr "十一月" -#contributors: +# contributors: msgid "Null geometry was detected in dataset. GeoDa can't create weights with NULL geometry. Please try to save as records with valid geometries and try again." msgstr "" -#contributors: +# contributors: msgid "Number Bins:" msgstr "分区(Bins)数量" -#contributors: +# contributors: msgid "Number of Box Plots" msgstr "箱线图个数" -#contributors: +# contributors: msgid "Number of Categories" msgstr "分类数" -#contributors: +# contributors: msgid "Number of Clusters:" msgstr "聚类数:" -#contributors: +# contributors: msgid "Number of Columns" msgstr "列数" -#contributors: +# contributors: msgid "Number of Neighbors" msgstr "邻居数量" -#contributors: +# contributors: msgid "Number of Rows" msgstr "行数" -#contributors: +# contributors: msgid "Number of clusters:\t" msgstr "聚类数量:\t" -#contributors: +# contributors: msgid "Number of neighbors" msgstr "邻居数" -#contributors: +# contributors: msgid "Number of not clustered observations: " msgstr "无法聚类的对象数:" -#contributors: -msgid "OGR failed to create field.\n\nDetails:" -msgstr "创建OGR字段失败。\n\n详细:" +# contributors: +msgid "" +"OGR failed to create field.\n" +"\n" +"Details:" +msgstr "" +"创建OGR字段失败。\n" +"\n" +"详细:" -#contributors: +# contributors: msgid "OK" msgstr "确定" -#contributors: +# contributors: msgid "OK to Exit?" msgstr "确定退出?" -#contributors: +# contributors: msgid "OLS Model has been selected." msgstr "选择OLS模型。" -#contributors: +# contributors: msgid "OLS Model with White test has been selected." msgstr "选择了OLS模型(White测试)。" -#contributors: +# contributors: msgid "Obs." msgstr "对象数" -#contributors: +# contributors: msgid "October" msgstr "十月" -#contributors: +# contributors: msgid "Ok" msgstr "确认" -#contributors: +# contributors: msgid "On line %d of weights file, observation id %d encountered which does not exist in field \"%s\" of the Table." msgstr "空间权重文件的第%d 行:在表格字段 \"%s\" 中找不到 id%d。" -#contributors: +# contributors: msgid "On line %d of weights file, observation id %d encountered which is out of allowed observation range of 1 through %d." msgstr "空间权重文件的第%d行中指定的id=%d 不在允许的范围中:1 - %d。" -#contributors: +# contributors: msgid "Once you have grouped variables, you can save a new space-time table and weights: To add a spatial ID to your space-time table and create space-time weights, you need to have an active weights file (Tools-Weights Manager)." msgstr "定义好的分组变量可以保存为一个时空表以并创建相应的时空权重。如果要创建时空权重文件:请通过菜单(工具-权重管理)来指定一个空间权重文件。" -#contributors: +# contributors: msgid "Only 'gal', 'gwt', 'kwt', 'mat' and 'swm' weights files supported." msgstr "只支持'gal','gwt','kwt','mat'和'swm’空间权重文件。" -#contributors: +# contributors: msgid "Only Map Boundary" msgstr "只显示地图轮廓" -#contributors: +# contributors: msgid "Oops. GeoDa was unable to submit a bug report. Please try again or create it here instead: https://github.com/GeoDaCenter/geoda/issues Thanks!" msgstr "GeoDa无法提交错误报告。请重试或在此处创建它:https://github.com/GeoDaCenter/geoda/issues。谢谢!" -#contributors: +# contributors: msgid "Open" msgstr "打开" -#contributors: +# contributors: msgid "Open Datasource:" msgstr "打开数据源:" -#contributors: +# contributors: msgid "Open Document Spreadsheet (*.ods)|*.ods" msgstr "Open Document Spreadsheet (*.ods)|*.ods" -#contributors: +# contributors: msgid "Open Layer:" msgstr "打开层:" -#contributors: +# contributors: msgid "Open data source progress dialog" msgstr "打开数据进度" -#contributors: +# contributors: msgid "Open file" msgstr "打开文件" -#contributors: +# contributors: msgid "Open project file:" msgstr "打开项目文件:" -#contributors: +# contributors: msgid "Open weights file" msgstr "打开空间权重文件" -#contributors: +# contributors: msgid "Operation requires a valid field name or constant." msgstr "操作需要有效的字段名或常量。" -#contributors: +# contributors: msgid "Operator" msgstr "操作符" -#contributors: +# contributors: msgid "Options" msgstr "选项" -#contributors: +# contributors: msgid "Options > Change Parameters" msgstr "选项 > 修改参数" -#contributors: +# contributors: msgid "Options:" msgstr "选项:" -#contributors: +# contributors: msgid "Order of contiguity" msgstr "邻接的秩" -#contributors: +# contributors: msgid "Other (up to 99999)" msgstr "其他(最多99999)" -#contributors: +# contributors: msgid "Other Pos" msgstr "其他正相关" -#contributors: +# contributors: msgid "Other Positive" msgstr "其他正相关" -#contributors: +# contributors: msgid "Outline Color" msgstr "轮廓色" -#contributors: +# contributors: msgid "Outline Color for Category" msgstr "分类的轮廓色" -#contributors: +# contributors: msgid "Outline Visible" msgstr "设置轮廓可见" -#contributors: +# contributors: msgid "Outlines Visible" msgstr "轮廓线可视" -#contributors: +# contributors: msgid "Output file (*.shp)" msgstr "输出文件(*.shp)" -#contributors: +# contributors: msgid "Output file (text file)" msgstr "输出文件(文本文件)" -#contributors: +# contributors: msgid "Output:" msgstr "输出:" -#contributors: +# contributors: msgid "Overwrite?" msgstr "覆盖?" -#contributors: +# contributors: msgid "PCA" msgstr "主成分分析" -#contributors: +# contributors: msgid "PCA Settings" msgstr "PCA设置" -#contributors: +# contributors: msgid "POLY&ID" msgstr "POLY&ID" -#contributors: +# contributors: msgid "Pan" msgstr "平移" -#contributors: +# contributors: msgid "Panning Mode" msgstr "平移模式" -#contributors: +# contributors: msgid "Parallel Coordinate Plot" msgstr "平行坐标图" -#contributors: +# contributors: msgid "Parallel Coordinate Plot: " msgstr "平行坐标图: " -#contributors: +# contributors: msgid "Parameters" msgstr "参数" -#contributors: +# contributors: msgid "Parameters:" msgstr "参数:" -#contributors: +# contributors: msgid "Password" msgstr "密码" -#contributors: +# contributors: msgid "Paste" msgstr "粘贴" -#contributors: +# contributors: msgid "Percentile" msgstr "百分位数(Percentile)" -#contributors: +# contributors: msgid "Percentile Map" msgstr "百分位数(Percentile)地图" -#contributors: +# contributors: msgid "Period 1" msgstr "时段1" -#contributors: +# contributors: msgid "Period 1:" msgstr "时段1:" -#contributors: +# contributors: msgid "Period 2" msgstr "时段2" -#contributors: +# contributors: msgid "Period 2:" msgstr "时段2:" -#contributors: +# contributors: msgid "Please briefly describe what went wrong." msgstr "请简要描述出什么地方出错了。" -#contributors: +# contributors: msgid "Please check input values are valid" msgstr "" -#contributors: +# contributors: msgid "Please check the selected variables are all valid." msgstr "请检查所选变量是否都有效。" -#contributors: +# contributors: msgid "Please check your network connection, or contact GeoDa support team." msgstr "请检查您的网络连接,或联系GEODA支持团队。" -#contributors: +# contributors: msgid "Please choose Period 1 first." msgstr "请先选择时段1。" -#contributors: +# contributors: msgid "Please choose Period 1." msgstr "请选择时段1。" -#contributors: +# contributors: msgid "Please choose Period 2 first." msgstr "请先选择时段2。" -#contributors: +# contributors: msgid "Please choose Period 2." msgstr "请选择 时段2。" -#contributors: +# contributors: msgid "Please choose Periods first." msgstr "请首先选择时段。" -#contributors: +# contributors: msgid "Please choose a Result field." msgstr "请选择结果字段。" -#contributors: +# contributors: msgid "Please click to choose a highlighting style in GeoDa:" msgstr "请点击选择高亮样式:" -#contributors: +# contributors: msgid "Please describe steps you took before something went wrong." msgstr "请描述在出错之前采取的步骤。" -#contributors: +# contributors: msgid "Please enter a field name for saving clustering results." msgstr "请输入用于保存聚类结果的字段名。" -#contributors: +# contributors: msgid "Please enter a valid number of cluster." msgstr "" -#contributors: +# contributors: msgid "Please enter a valid number of clusters." msgstr "" -#contributors: +# contributors: msgid "Please enter a valid positive integer" msgstr "" -#contributors: +# contributors: msgid "Please enter iteration number" msgstr "请输入迭代次数" -#contributors: +# contributors: msgid "Please enter maximum number of regions." msgstr "请输入最大区域数。" -#contributors: +# contributors: msgid "Please enter minimum bound value" msgstr "请输入最小界限值" -#contributors: +# contributors: msgid "Please enter minimum number of observations per regions, or use minimum bound instead." msgstr "请输入每个区域的最小观测次数, 或者使用最小范围。" -#contributors: +# contributors: msgid "Please enter number of regions" msgstr "请输入区域数" -#contributors: +# contributors: msgid "Please enter values of bounding box." msgstr "" -#contributors: +# contributors: msgid "Please first select observations in one of the other data or map views." msgstr "请首先在其他窗口选取观察对象。" -#contributors: +# contributors: msgid "Please fix the grid bounding box." msgstr "请修复网格边界。" -#contributors: +# contributors: msgid "Please input Carto App Key." msgstr "请输入Carto App密钥。" -#contributors: +# contributors: msgid "Please input Carto User Name." msgstr "请输入Carto用户名。" -#contributors: +# contributors: msgid "Please input a valid url address." msgstr "请输入有效的URL地址。" -#contributors: +# contributors: msgid "Please input a valid url." msgstr "请输入有效的URL。" -#contributors: +# contributors: msgid "Please input database host." msgstr "请输入数据库主机。" -#contributors: +# contributors: msgid "Please input database name." msgstr "请输入数据库名称。" -#contributors: +# contributors: msgid "Please input database port." msgstr "请输入数据库端口。" -#contributors: +# contributors: msgid "Please input minimum bound value." msgstr "请输入最小边界值。" -#contributors: +# contributors: msgid "Please input password." msgstr "请输入密码。" -#contributors: +# contributors: msgid "Please input table name." msgstr "请输入表名。" -#contributors: +# contributors: msgid "Please input user name." msgstr "请输入用户名。" -#contributors: +# contributors: msgid "Please load another layer using map window to apply Spatial Join." msgstr "" -#contributors: +# contributors: msgid "Please open a data file rather than a project file (*.gda)." msgstr "请打开一个数据文件,而不是一个项目文件(*.gda)。" -#contributors: +# contributors: msgid "Please provide paths for both Project file and Datasource." msgstr "请提供项目文件和数据源的路径。" -#contributors: +# contributors: msgid "Please restart GeoDa to apply the language setup." msgstr "请重新启动GEODA来应用语言设置。" -#contributors: +# contributors: msgid "Please restart GeoDa to finish installing updates." msgstr "请重新启动GeoDa完成安装更新。" -#contributors: +# contributors: msgid "Please right-click or use
" msgstr "右键或者使用菜单" -#contributors: +# contributors: msgid "Please select Join Operation with Join Variable." msgstr "" -#contributors: +# contributors: msgid "Please select a binary variable for Local Join Count." msgstr "" -#contributors: +# contributors: msgid "Please select a map layer to apply spatial join to current map (%s):" msgstr "" -#contributors: +# contributors: msgid "Please select a results field." msgstr "请选择保存结果的字段。" -#contributors: +# contributors: msgid "Please select a time variable first, and make sure more than one time steps have been defined." msgstr "请首先选择一个时间变量, 并确保已定义了多个时间步长。" -#contributors: +# contributors: msgid "Please select a weights type." msgstr "请选择一个空间权重类型。" -#contributors: +# contributors: msgid "Please select an Base field." msgstr "请选择一个基本字段。" -#contributors: +# contributors: msgid "Please select an Event field." msgstr "请选择一个事件字段。" -#contributors: +# contributors: msgid "Please select an Variable field." msgstr "请选择一个变量字段。" -#contributors: +# contributors: msgid "Please select another variable with values more suitable for computing a correlogram." msgstr "请选择另一个变量进行非参空间自相关分析。" -#contributors: +# contributors: msgid "Please select at least %d variables." msgstr "请至少选择%d个变量。" -#contributors: +# contributors: msgid "Please select at least 2 variables." msgstr "请选择至少2个变量。" -#contributors: +# contributors: msgid "Please select at least one variable." msgstr "" -#contributors: +# contributors: msgid "Please select binary variables for Co-location Join Count." msgstr "" -#contributors: +# contributors: msgid "Please select features first." msgstr "请首先选择需要导出的对象." -#contributors: +# contributors: msgid "Please select the layer name to connect:" msgstr "请选择要连接的数据/图层名称:" -#contributors: +# contributors: msgid "Please select two binary variables for Bivariate Local Join Count." msgstr "请选择两个二分(binary)变量用于双变量局部Join Count。" -#contributors: +# contributors: msgid "Please setup co-locations first." msgstr "请先设置Co-location。" -#contributors: +# contributors: msgid "Please specify a Weights matrix." msgstr "请指定一个空间权重矩阵。" -#contributors: +# contributors: msgid "Please specify a valid data source name." msgstr "请指定一个有效的数据源名称。" -#contributors: +# contributors: msgid "Please specify distance metric." msgstr "请指定一个距离度量。" -#contributors: -msgid "Please specify the p-value to be used in tests; \ndefault: p-value = 0.01" -msgstr "请指定在测试中使用的p值;\n默认值:p值= 0.01" +# contributors: +msgid "" +"Please specify the p-value to be used in tests; \n" +"default: p-value = 0.01" +msgstr "" +"请指定在测试中使用的p值;\n" +"默认值:p值= 0.01" -#contributors: +# contributors: msgid "Please specify weights in Tools > Weights Manager." msgstr "请在菜单:工具>权重管理器 中指定空间权重。" -#contributors: +# contributors: msgid "Please use
Options > Change Variable
to specify a variable." msgstr "请用
选项>更改变量
来指定一个变量。" -#contributors: +# contributors: msgid "Plots:" msgstr "制图:" -#contributors: +# contributors: msgid "Point Color" msgstr "数据点颜色" -#contributors: +# contributors: msgid "Point Radius:" msgstr "点的半径:" -#contributors: +# contributors: msgid "Points from Table" msgstr "从表生成点数据" -#contributors: +# contributors: msgid "Positive" msgstr "正相关" -#contributors: +# contributors: msgid "Power" msgstr "幂" -#contributors: +# contributors: msgid "Precision threshold" msgstr "精度阈值" -#contributors: +# contributors: msgid "Pred. Val. and Res." msgstr "预测值与残差" -#contributors: +# contributors: msgid "Preferences..." msgstr "偏好设置…" -#contributors: +# contributors: msgid "Produce bounding-box file?" msgstr "生成边界框(Bounding-box)文件?" -#contributors: +# contributors: msgid "Progress" msgstr "进度" -#contributors: +# contributors: msgid "Project Information" msgstr "项目信息" -#contributors: +# contributors: msgid "Project file path is empty." msgstr "项目文件路径为空。" -#contributors: +# contributors: msgid "Project filename not specified." msgstr "未指定项目文件名。" -#contributors: +# contributors: msgid "Project to X-Y" msgstr "投影到X-Y" -#contributors: +# contributors: msgid "Project to X-Z" msgstr "投影到X-Z" -#contributors: +# contributors: msgid "Project to Z-Y" msgstr "投影到Z-Y" -#contributors: +# contributors: msgid "Property" msgstr "属性" -#contributors: +# contributors: msgid "Publish Maps and Plots to GeoDa-Web" msgstr "发布地图和图标到GeoDa-Web" -#contributors: +# contributors: msgid "Publish to GeoDa-Web" msgstr "发布到GeoDa-Web" -#contributors: +# contributors: msgid "Quantile" msgstr "分位数(Quantile)" -#contributors: +# contributors: msgid "Quantile Map" msgstr "分位数(Quantile)地图" -#contributors: +# contributors: msgid "Queen contiguity" msgstr "Queen邻接" -#contributors: +# contributors: msgid "REDCAP Settings" msgstr "REDCAP设置" -#contributors: +# contributors: msgid "Random Gaussian dist with mean=%s, sd=%s" msgstr "随机高斯距离,均值=%s,sd=%s" -#contributors: +# contributors: msgid "Random Sample" msgstr "随机采样法" -#contributors: +# contributors: msgid "Random uniform dist on unit interval" msgstr "单位间隔上的随机均匀分布" -#contributors: +# contributors: msgid "Randomization" msgstr "随机化" -#contributors: +# contributors: msgid "Rate calculation successful." msgstr "比率计算成功。" -#contributors: +# contributors: msgid "Rates" msgstr "比率" -#contributors: +# contributors: msgid "Rates Variable Settings" msgstr "比率变量设置" -#contributors: +# contributors: msgid "Rates-Calculated Map" msgstr "比率计算地图" -#contributors: +# contributors: msgid "Rates-Calculated Maps" msgstr "计算比率的地图" -#contributors: +# contributors: msgid "Raw Rate" msgstr "原始比率" -#contributors: +# contributors: msgid "Raw Rate Smoothed Variable Settings" msgstr "原始比率平滑变量设置" -#contributors: +# contributors: msgid "Re&set" msgstr "重置" -#contributors: +# contributors: msgid "Read from an ASCII file" msgstr "从ASCII文件中读取" -#contributors: +# contributors: msgid "Recent" msgstr "最近访问" -#contributors: +# contributors: msgid "Record order specified, but found minimum and maximum observation values of %d and %d which is incompatible with number of observations specified in first line of weights file: %d ." msgstr "按记录顺序, 最小和最大观测值为%d 和%d , 这与空间权重文件中第一行指定的对象数不一致:%d。" -#contributors: +# contributors: msgid "Rectangle" msgstr "矩形" -#contributors: +# contributors: msgid "Redo" msgstr "重做" -#contributors: +# contributors: msgid "Refresh" msgstr "" -#contributors: +# contributors: msgid "Regimes Regression" msgstr "分区域(Regimes)回归" -#contributors: +# contributors: msgid "Regression" msgstr "回归分析" -#contributors: +# contributors: msgid "Regression Line Color" msgstr "回归线颜色" -#contributors: +# contributors: msgid "Regression Output Text File" msgstr "回归输出文本文件" -#contributors: +# contributors: msgid "Regression Report" msgstr "回归分析报告" -#contributors: +# contributors: msgid "Remove" msgstr "删除" -#contributors: +# contributors: msgid "Remove Time" msgstr "删除时间" -#contributors: +# contributors: msgid "Rename Space-Time Variable" msgstr "重命名时空变量" -#contributors: +# contributors: msgid "Rename Variable" msgstr "重命名变量" -#contributors: +# contributors: msgid "Reset" msgstr "重置" -#contributors: +# contributors: msgid "Reset to default" msgstr "重置为默认" -#contributors: +# contributors: msgid "Reset to system locale information" msgstr "重置系统区域信息" -#contributors: +# contributors: msgid "Reset to system locale successfully. Please re-open current project with system locale." msgstr "成功重置为系统区域设置。请重新打开当前项目使用系统区域设置。" -#contributors: +# contributors: msgid "Resize" msgstr "调整大小" -#contributors: +# contributors: msgid "Resolution(dpi):" msgstr "分辨率(dpi):" -#contributors: +# contributors: msgid "Result" msgstr "结果" -#contributors: +# contributors: msgid "Reverse" msgstr "反向" -#contributors: +# contributors: msgid "Right" msgstr "" -#contributors: +# contributors: msgid "Rook contiguity" msgstr "Rook邻接" -#contributors: +# contributors: msgid "Root Variable:" msgstr "根(Root)变量:" -#contributors: +# contributors: msgid "Run" msgstr "运行" -#contributors: +# contributors: msgid "Run Diff-in-Diff Test" msgstr "运行Diff-in-Diff测试" -#contributors: +# contributors: msgid "S.D" msgstr "标准差" -#contributors: +# contributors: msgid "SELECTED" msgstr "已选中" -#contributors: +# contributors: msgid "SQLite/SpatiaLite (*.sqlite)|*.sqlite" msgstr "" -#contributors: +# contributors: msgid "SVD will be automatically used for PCA since the number of rows is less than the number of columns." msgstr "由于行数少于列数,SVD将自动用于PCA。" -#contributors: +# contributors: msgid "Sample Autocorrelation" msgstr "样本自相关" -#contributors: +# contributors: msgid "Sample Data" msgstr "示例数据" -#contributors: +# contributors: msgid "Sample Size:" msgstr "样本大小:" -#contributors: +# contributors: msgid "Save" msgstr "保存" -#contributors: +# contributors: msgid "Save " msgstr "保存 " -#contributors: +# contributors: msgid "Save As" msgstr "另存" -#contributors: +# contributors: msgid "Save As Datasource" msgstr "另存数据" -#contributors: +# contributors: msgid "Save As has been cancelled." msgstr "“另存”已被取消。" -#contributors: +# contributors: msgid "Save Categories" msgstr "保存分类" -#contributors: +# contributors: msgid "Save Categories to Table" msgstr "将自定义分类保存到表中" -#contributors: +# contributors: msgid "Save Centroids" msgstr "保存质心" -#contributors: +# contributors: msgid "Save Cluster in Field:" msgstr "聚类结果字段:" -#contributors: +# contributors: msgid "Save Connectivity To Table" msgstr "将连接性保存到表中" -#contributors: +# contributors: msgid "Save Details" msgstr "保存详情" -#contributors: +# contributors: msgid "Save Diff-in-Diff Test Results" msgstr "保存Diff-in-Diff测试结果" -#contributors: +# contributors: msgid "Save Dummy" msgstr "保存虚变量" -#contributors: +# contributors: msgid "Save Duplicate Thiessen Polygon Ids" msgstr "保存重复的泰森多边形ID" -#contributors: +# contributors: msgid "Save Duplicate Thiessen Polygons to Table" msgstr "将重复的泰森多边形保存到表中" -#contributors: +# contributors: msgid "Save Image As" msgstr "图像另存为" -#contributors: +# contributors: msgid "Save Image to File" msgstr "将图像保存到文件" -#contributors: +# contributors: msgid "Save Mean Centers" msgstr "保存平均中心" -#contributors: +# contributors: msgid "Save OSM roads file" msgstr "" -#contributors: +# contributors: msgid "Save OSM roads to file successfully." msgstr "" -#contributors: +# contributors: msgid "Save Project" msgstr "保存项目" -#contributors: +# contributors: msgid "Save Project File As..." msgstr "将项目文件保存为…" -#contributors: +# contributors: msgid "Save Projet File As" msgstr "将项目文件保存为" -#contributors: +# contributors: msgid "Save Rates" msgstr "保存比率值" -#contributors: +# contributors: msgid "Save Rates - %s over %s" msgstr "保存比率变量 - %s 比 %s" -#contributors: +# contributors: msgid "Save Regression Results" msgstr "保存回归结果" -#contributors: +# contributors: msgid "Save Results" msgstr "保存结果" -#contributors: +# contributors: msgid "Save Results to Table: " msgstr "" -#contributors: +# contributors: msgid "Save Results: HDBScan (Core Distances/Probabilities/Outliers)" msgstr "" -#contributors: +# contributors: msgid "Save Results: Local Join Count stats, " msgstr "" -#contributors: +# contributors: msgid "Save Results: LocalGeary" msgstr "保存结果: 局部Geary" -#contributors: +# contributors: msgid "Save Results: MDS" msgstr "保持结果: MDS" -#contributors: +# contributors: msgid "Save Results: Moran's I" msgstr "保存结果: Moran's I" -#contributors: +# contributors: msgid "Save Selected As" msgstr "保存选中的为" -#contributors: +# contributors: msgid "Save Selection" msgstr "保存选择" -#contributors: +# contributors: msgid "Save Space-Time Table/Weights" msgstr "保存时空变量和空间权重" -#contributors: +# contributors: msgid "Save Spanning Tree" msgstr "保存生成树" -#contributors: +# contributors: msgid "Save Spanning Tree to a Weights File" msgstr "将生成树保存为空间权重文件" -#contributors: +# contributors: msgid "Save Statistics file" msgstr "保存统计文件" -#contributors: +# contributors: msgid "Save Table As CSV File" msgstr "将表保存为CSV文件" -#contributors: +# contributors: msgid "Save Test Results" msgstr "保存测试结果" -#contributors: +# contributors: msgid "Save Thiessen Polygons" msgstr "保存泰森多边形" -#contributors: -msgid "Save as data source (%s) failed.\n\nDetails:" -msgstr "保存数据 (%s) 失败。\n\n详细:" +# contributors: +msgid "" +"Save as data source (%s) failed.\n" +"\n" +"Details:" +msgstr "" +"保存数据 (%s) 失败。\n" +"\n" +"详细:" -#contributors: +# contributors: msgid "Save data source progress dialog" msgstr "保存数据进度对话框" -#contributors: +# contributors: msgid "Save is not supported on current data source type: %s. Please try to use \"File->Save As\" other data source. However, the project file can still be saved as other project file." msgstr "不支持保存当前数据源类型:%s 。请尝试使用“文件 - >另存为”其他数据源。 但是,项目文件仍然可以保存为其他项目文件。" -#contributors: +# contributors: msgid "Save to File" msgstr "保存到文件" -#contributors: +# contributors: msgid "Save/Show Map" msgstr "保存/显示地图" -#contributors: +# contributors: msgid "Saved successfully." msgstr "保存成功。" -#contributors: +# contributors: msgid "Saving data source cancelled." msgstr "保存数据已被取消." -#contributors: +# contributors: msgid "Saving data..." msgstr "保存数据…" -#contributors: +# contributors: msgid "Saving failed: GeoDa can't save as empty datasource." msgstr "保存失败:GeoDa不能保存空数据源。" -#contributors: -msgid "Saving to data source (%s) failed.\n\nDetails: %s" -msgstr "保存到数据源(%s)失败。\n\n详情:%s" +# contributors: +msgid "" +"Saving to data source (%s) failed.\n" +"\n" +"Details: %s" +msgstr "" +"保存到数据源(%s)失败。\n" +"\n" +"详情:%s" -#contributors: +# contributors: msgid "Scale Basemap" msgstr "缩放底图" -#contributors: +# contributors: msgid "Scale Options" msgstr "缩放选项" -#contributors: +# contributors: msgid "Scatter Plot" msgstr "散点图" -#contributors: +# contributors: msgid "Scatter Plot - x: %s, y: %s" msgstr "散点图 - x: %s, y: %s" -#contributors: +# contributors: msgid "Scatter Plot Matrix" msgstr "散点图矩阵" -#contributors: +# contributors: msgid "Scatter Plot Matrix Help" msgstr "散点图矩阵帮助" -#contributors: +# contributors: msgid "Scatter Plot Matrix Variables Add/Remove" msgstr "散点图矩阵变量添加/删除" -#contributors: +# contributors: msgid "Scatter Plot Variables" msgstr "散点图变量" -#contributors: +# contributors: msgid "Scatter Plot- x: %s, y: %s" msgstr "散点图-x:%s, y:%s" -#contributors: +# contributors: msgid "Second Variable (Y)" msgstr "第二变量(Y)" -#contributors: +# contributors: msgid "Second Variable (Y/Latitude)" msgstr "第二个变量 (Y/纬度)" -#contributors: +# contributors: msgid "Select" msgstr "选择" -#contributors: +# contributors: msgid "Select All" msgstr "全选" -#contributors: +# contributors: msgid "Select All In Range" msgstr "选择范围内所有对象" -#contributors: +# contributors: msgid "Select All Undefined" msgstr "选择所有未定义的" -#contributors: +# contributors: msgid "Select All..." msgstr "选择所有…" -#contributors: +# contributors: msgid "Select From Current Selection" msgstr "从当前已选择对象中选取" -#contributors: +# contributors: msgid "Select ID Variable" msgstr "选择ID变量" -#contributors: +# contributors: msgid "Select ID Variable (Optional)" msgstr "选择ID变量 (可选)" -#contributors: +# contributors: msgid "Select Neighborless Observations" msgstr "选择无邻居的对象" -#contributors: +# contributors: msgid "Select Variables" msgstr "选择变量" -#contributors: +# contributors: msgid "Select Variables (Multi-Selection)" msgstr "选择变量(多选)" -#contributors: +# contributors: msgid "Select a file:" msgstr "选择文件:" -#contributors: +# contributors: msgid "Select an existing *.gdb directory, or create an New Folder named *.gdb" msgstr "选择一个现有的*.gdb目录,或者创建一个名称已*.gdb结尾的新文件夹" -#contributors: +# contributors: msgid "Select color scheme:" msgstr "选择配色方案:" -#contributors: +# contributors: msgid "Select datasource" msgstr "选择数据源" -#contributors: +# contributors: msgid "Select encoding (optional): " msgstr "选择编码(可选): " -#contributors: +# contributors: msgid "Select field is not integer type. Default record order will be used instead." msgstr "" -#contributors: +# contributors: msgid "Select fields:" msgstr "选择字段:" -#contributors: +# contributors: msgid "Select from current selection" msgstr "从当前选择中选择" -#contributors: +# contributors: msgid "Select key:" msgstr "选择键:" -#contributors: +# contributors: msgid "Select layer" msgstr "选择图层" -#contributors: +# contributors: msgid "Select the language" msgstr "选择语言" -#contributors: +# contributors: msgid "Select variable " msgstr "选择变量 " -#contributors: +# contributors: msgid "Select variable for dissolving:" msgstr "选择进行融合(dissolve)的变量:" -#contributors: +# contributors: msgid "Select variables to delete " msgstr "选择需要删除的变量名 " -#contributors: +# contributors: msgid "Select variables:" msgstr "选择变量:" -#contributors: +# contributors: msgid "Select, hold CMD for brushing" msgstr "选中,按CMD键进行动态同步选取" -#contributors: +# contributors: msgid "Select, hold CTRL for brushing" msgstr "选中,按CTRL键进行动态同步选取" -#contributors: +# contributors: msgid "Selectable Fill Color" msgstr "可选填充颜色" -#contributors: +# contributors: msgid "Selected" msgstr "选中" -#contributors: +# contributors: msgid "Selected =" msgstr "选中=" -#contributors: +# contributors: msgid "Selected vs. Unselected" msgstr "选中的与未选中的" -#contributors: +# contributors: msgid "Selection" msgstr "选择" -#contributors: +# contributors: msgid "Selection Mode" msgstr "选择模式" -#contributors: +# contributors: msgid "Selection Shape" msgstr "选择形状" -#contributors: +# contributors: msgid "Selection Tool" msgstr "选择工具" -#contributors: +# contributors: msgid "Selection Variable" msgstr "选择变量" -#contributors: +# contributors: msgid "Send Crash Report" msgstr "发送崩溃报告" -#contributors: +# contributors: msgid "September" msgstr "九月" -#contributors: +# contributors: msgid "Set Association Dialog" msgstr "图层关联设置对话框" -#contributors: +# contributors: msgid "Set Display Precision" msgstr "设置显示精度" -#contributors: +# contributors: msgid "Set Display Precision of Y-Axis" msgstr "设置Y轴显示精度" -#contributors: +# contributors: msgid "Set Display Precision on Axes" msgstr "设置轴上的显示精度" -#contributors: +# contributors: msgid "Set Display Precision:" msgstr "设置显示精度:" -#contributors: +# contributors: msgid "Set Highlight Association" msgstr "设置图层关联" -#contributors: +# contributors: msgid "Set Number Separators" msgstr "设置数字分隔符" -#contributors: +# contributors: msgid "Set Number Separators in Table" msgstr "设置表中的数分隔符" -#contributors: +# contributors: msgid "Set Number of Permutation" msgstr "设置置换次数" -#contributors: +# contributors: msgid "Set number of CPU cores manually:" msgstr "手动设置CPU(Cores)数量:" -#contributors: +# contributors: msgid "Set seed for randomization:" msgstr "设置随机操作的种子:" -#contributors: +# contributors: msgid "Set the threshold to bridge the gap between disconnected polygons (often caused by digitizing errors). The value depends on your measurement unit (e.g. 1 foot or 0.0000001 degrees). Use the weights histogram to detect neighborless observations." msgstr "由于地图数字化时的错误,相邻多边形之间的最小距离并不为0。请设置一个合适阈值(即:邻接多边形的最小距离)来保证每一个多边形都能够找到至少一个邻居。这个阈值取决于你的测量单位(例如1英尺或0.0000001度)。你可以使用权重直方图来查看哪些对象没有任何邻居。" -#contributors: +# contributors: msgid "Set transparency of highlighted objects in selection:" msgstr "设置高亮对象的透明度:" -#contributors: +# contributors: msgid "Set transparency of unhighlighted objects in selection:" msgstr "在选择中设置未突出对象的透明度:" -#contributors: +# contributors: msgid "Set value to cell failed." msgstr "" -#contributors: +# contributors: msgid "Setup Locale of GeoDa Table" msgstr "区域设置" -#contributors: +# contributors: msgid "Setup co-locations:" msgstr "设置相同值叠加地图:" -#contributors: +# contributors: msgid "Shape" msgstr "矢量数据" -#contributors: +# contributors: msgid "Shape Centers" msgstr "形状中心" -#contributors: +# contributors: msgid "Show As Conditional Map" msgstr "显示为条件地图" -#contributors: +# contributors: msgid "Show Axes" msgstr "显示轴" -#contributors: +# contributors: msgid "Show Axes Through Origin" msgstr "显示通过原点的轴" -#contributors: +# contributors: msgid "Show CSV Configuration in Merge Data Dialog:" msgstr "使用合并数据时显示CSV配置:" -#contributors: +# contributors: msgid "Show Graph" msgstr "显示图" -#contributors: +# contributors: msgid "Show LOWESS Smoother" msgstr "显示LOWESS平滑器" -#contributors: +# contributors: msgid "Show Legend" msgstr "显示图例" -#contributors: +# contributors: msgid "Show Linear Smoother" msgstr "显示线性平滑" -#contributors: +# contributors: msgid "Show Map Boundary" msgstr "显示地图边界" -#contributors: +# contributors: msgid "Show Recent/Sample Data panel in Connect Datasource Dialog:" msgstr "在连接数据源对话框中显示最近/示例数据面板:" -#contributors: +# contributors: msgid "Show Selection and Neighbors" msgstr "显示当前选中的及其邻居" -#contributors: +# contributors: msgid "Show Status Bar" msgstr "显示状态栏" -#contributors: +# contributors: msgid "Show Vertical Axis" msgstr "显示垂直轴" -#contributors: +# contributors: msgid "Show connect line" msgstr "显示关联连接线" -#contributors: +# contributors: msgid "Significance Filter" msgstr "显著性过滤器" -#contributors: +# contributors: msgid "Significance Map" msgstr "显著性地图" -#contributors: +# contributors: msgid "Simulated Annealing" msgstr "模拟退火算法" -#contributors: +# contributors: msgid "Skater Settings" msgstr "Skater设置" -#contributors: +# contributors: msgid "Smoother" msgstr "平滑器" -#contributors: +# contributors: msgid "Some calculated values were undefined and this is most likely due to neighborless observations in the weight matrix. Rate calculation successful for observations with neighbors." msgstr "一些数据为空或者未定义,可能是由于权重矩阵中有无邻域观测。" -#contributors: +# contributors: msgid "Sort" msgstr "排序" -#contributors: +# contributors: msgid "South European Latin-3 (ISO-8859-3)" msgstr "" -#contributors: +# contributors: msgid "Space-time variables with duplicate name \"%s\" found." msgstr "找到重复名称为 \"%s\" 的时空变量。" -#contributors: +# contributors: msgid "Spatial Constraint:" msgstr "空间约束:" -#contributors: +# contributors: msgid "Spatial Correlogram" msgstr "非参空间自相关分析" -#contributors: +# contributors: msgid "Spatial Empirical Bayes" msgstr "空间经验贝叶斯" -#contributors: +# contributors: msgid "Spatial Error" msgstr "空间误差模型" -#contributors: +# contributors: msgid "Spatial Join" msgstr "空间合并(Spatial Join)" -#contributors: +# contributors: msgid "Spatial Join can not be applied on two points layers. Please select another layer." msgstr "" -#contributors: +# contributors: msgid "Spatial Join can not be applied on unknonwn layers. Please select another layer." msgstr "" -#contributors: +# contributors: msgid "Spatial Join does not work with Table only datasource." msgstr "" -#contributors: +# contributors: msgid "Spatial Lag" msgstr "空间滞后模型" -#contributors: +# contributors: msgid "Spatial Rate" msgstr "空间比率" -#contributors: +# contributors: msgid "Spatial Rate Smoothed Variable Settings" msgstr "空间比率平滑变量设置" -#contributors: +# contributors: msgid "Spatial lag and error regressions require symmetric weights (not KNN). You can still use KNN weights to obtain spatial diagnostics for classic regressions." msgstr "空间滞后和误差回归需要对称权重 (不是KNN)。您仍然可以在经典回归的空间诊断中使用 KNN 权重。" -#contributors: +# contributors: msgid "Special" msgstr "特殊变量" -#contributors: +# contributors: msgid "Specified id field (%s) not found in currently loaded Table." msgstr "当前加载的表中找未到指定的ID字段(%s)。" -#contributors: +# contributors: msgid "Specified key (%d) not found in currently loaded Table." msgstr "在当前加载的表中未找到指定的键(%d)。" -#contributors: +# contributors: msgid "Specified key (%s) not found in currently loaded Table." msgstr "指定的键(%s)在当前加载的表中没有找到。" -#contributors: +# contributors: msgid "Specified key value field \"%s\" in weights file contains duplicate values in the currently loaded Table." msgstr "空间权重文件中指定的键值字段 \"%s\" 在当前的数据表中有重复的值。" -#contributors: +# contributors: msgid "Specified key value field \"%s\" on first line of weights file is not an integer type in the currently loaded Table." msgstr "空间权重文件中第一行指定的键值字段“%s”不是整数类型。" -#contributors: +# contributors: msgid "Specified key value field \"%s\" on first line of weights file not found in currently loaded Table." msgstr "在当前加载的表中找不到第一行权重文件中指定的键值字段%s。" -#contributors: +# contributors: msgid "Specify Seed..." msgstr "指定种子…" -#contributors: +# contributors: msgid "Specify bandwidth" msgstr "指定带宽" -#contributors: +# contributors: msgid "Specify manually" msgstr "手动指定" -#contributors: +# contributors: msgid "Spectral" msgstr "谱聚类(Spectral)" -#contributors: +# contributors: msgid "Spectral Clustering Map (%d clusters)" msgstr "谱聚类地图 (%d 聚类)" -#contributors: +# contributors: msgid "Spectral Clustering Settings" msgstr "谱聚类设置" -#contributors: +# contributors: msgid "Speed" msgstr "速度" -#contributors: +# contributors: msgid "Stable Version and Bug Fixes Only" msgstr "稳定版本" -#contributors: +# contributors: msgid "Stack" msgstr "堆叠" -#contributors: +# contributors: msgid "Standard Deviation" msgstr "标准差" -#contributors: +# contributors: msgid "Standard Deviation Color" msgstr "标准偏差颜色" -#contributors: +# contributors: msgid "Standard Deviation Map" msgstr "标准偏差地图" -#contributors: +# contributors: msgid "Standardized Data" msgstr "标准化数据" -#contributors: +# contributors: msgid "Statistics" msgstr "统计" -#contributors: +# contributors: msgid "Status Bar" msgstr "状态栏" -#contributors: +# contributors: msgid "Stopping criterion for power iteration:" msgstr "设置幂迭代算法停止的条件:" -#contributors: +# contributors: msgid "Strong" msgstr "粗" -#contributors: +# contributors: msgid "Submit Bug Error" msgstr "提交错误" -#contributors: +# contributors: msgid "Submit Bug Report" msgstr "提交错误报告" -#contributors: +# contributors: msgid "Success" msgstr "成功" -#contributors: +# contributors: msgid "Success / Warning" msgstr "成功/警告" -#contributors: +# contributors: msgid "Successful aggregation." msgstr "聚合成功。" -#contributors: +# contributors: msgid "Suggested field name:" msgstr "建议字段名:" -#contributors: +# contributors: msgid "Sum" msgstr "总数" -#contributors: +# contributors: msgid "Summary" msgstr "总结报告" -#contributors: +# contributors: msgid "Synchronize %s with Time Control" msgstr "将%s与时间控制同步" -#contributors: +# contributors: msgid "System" msgstr "系统" -#contributors: +# contributors: msgid "System:" msgstr "系统:" -#contributors: +# contributors: msgid "T&able" msgstr "表格" -#contributors: +# contributors: msgid "Table" msgstr "表格" -#contributors: +# contributors: msgid "Table Name" msgstr "表名" -#contributors: +# contributors: msgid "Tabu Length:" msgstr "禁忌搜索算法长度:" -#contributors: +# contributors: msgid "Tabu Search" msgstr "禁忌搜索算法(Tabu)" -#contributors: +# contributors: msgid "Tabu length for Tabu Search algorithm has to be an integer number larger than 1 (e.g. 85)." msgstr "禁忌搜索算法的禁忌长度必须是大于1的整数(例如85)。" -#contributors: +# contributors: msgid "Tabu length:" msgstr "禁忌搜索算法长度:" -#contributors: +# contributors: msgid "Target" msgstr "目标" -#contributors: +# contributors: msgid "Target Variable" msgstr "目标变量" -#contributors: -msgid "Thank you for helping us improve GeoDa with your bug report! \n\nYou can track our response and add screenshots or details here (or email us at spatial@uchicago.edu):" -msgstr "感谢您帮助我们改进 GeoDa 与您的 bug 报告!\n\n您可以跟踪我们的响应, 并在链接的网页中添加截图或细节 (或发送电子邮件至 spatial@uchicago.edu):" +# contributors: +msgid "" +"Thank you for helping us improve GeoDa with your bug report! \n" +"\n" +"You can track our response and add screenshots or details here (or email us at spatial@uchicago.edu):" +msgstr "" +"感谢您帮助我们改进 GeoDa 与您的 bug 报告!\n" +"\n" +"您可以跟踪我们的响应, 并在链接的网页中添加截图或细节 (或发送电子邮件至 spatial@uchicago.edu):" -#contributors: -msgid "The GeoDa project file cannot find one or more associated data sources.\n\nDetails: GeoDa is looking for: %s\n\nTip: You can open the .gda project file in a text editor to modify the path(s) of the data source associated with your project." -msgstr "GeoDa项目文件不能找到一个或多个相关数据源。\n详情:GeoDa找不到数据:%s\n\n提示:您可以在文本编辑器中打开.gda项目文件,以修改与您的项目关联的数据源的路径。" +# contributors: +msgid "" +"The GeoDa project file cannot find one or more associated data sources.\n" +"\n" +"Details: GeoDa is looking for: %s\n" +"\n" +"Tip: You can open the .gda project file in a text editor to modify the path(s) of the data source associated with your project." +msgstr "" +"GeoDa项目文件不能找到一个或多个相关数据源。\n" +"详情:GeoDa找不到数据:%s\n" +"\n" +"提示:您可以在文本编辑器中打开.gda项目文件,以修改与您的项目关联的数据源的路径。" -#contributors: +# contributors: msgid "The Table should always be open, although somtimes it is hidden while the project is open. This condition has been violated. Please report this to the program developers." msgstr "表格应始终打开,尽管在项目打开状态时它已隐藏。这种情况不符合标准,请将此报告给程序开发人员。" -#contributors: +# contributors: msgid "The between-cluster sum of squares:\t" msgstr "聚类间之总平方和(between-cluster S.S.):\t" -#contributors: +# contributors: msgid "The categories of the selected variables do not overlap in space. Please select other variables." msgstr "所选变量的分类在空间中不重叠,请选择其他变量。" -#contributors: +# contributors: msgid "The connectivity of selected spatial weights is incomplete, please adjust the spatial weights." msgstr "所选空间权重的连通性不完整,请调整空间权重。" -#contributors: +# contributors: msgid "The currently entered threshold value is not a valid number. Please move the slider, or enter a valid number." msgstr "当前输入的阈值不是有效的数字。请移动滑块,或输入一个有效的数值。" -#contributors: +# contributors: msgid "The currently entered threshold value is not a valid number. Please move the slider, or enter a valid number." msgstr "" -#contributors: -msgid "The currently entered threshold value of %f is less than %f which is the minimum value for which there will be no neighborless observations (isolates). \n\nPress Yes to proceed anyhow, press No to abort." -msgstr "当前输入的阈值%f小于%f(该值是保证每个对象都有至少一个邻居的最小值)。\n\n点击“是”继续进行,点击“否”中止。" +# contributors: +msgid "" +"The currently entered threshold value of %f is less than %f which is the minimum value for which there will be no neighborless observations (isolates). \n" +"\n" +"Press Yes to proceed anyhow, press No to abort." +msgstr "" +"当前输入的阈值%f小于%f(该值是保证每个对象都有至少一个邻居的最小值)。\n" +"\n" +"点击“是”继续进行,点击“否”中止。" -#contributors: +# contributors: msgid "The data source is read only. Please try to save as other data source." msgstr "数据源只读,请尝试将其导出为其他可读写数据格式." -#contributors: +# contributors: msgid "The first line should have comma separated number of rows and ID name!" msgstr "第一行应该有逗号分隔的行数和ID字段名" -#contributors: -msgid "The geometries will not be saved when exporting to a Table-only data source.\n\nDo you want to continue?" -msgstr "注意:导出到表格数据格式时矢量数据将会丢失 。\n\n继续导出吗 ?" +# contributors: +msgid "" +"The geometries will not be saved when exporting to a Table-only data source.\n" +"\n" +"Do you want to continue?" +msgstr "" +"注意:导出到表格数据格式时矢量数据将会丢失 。\n" +"\n" +"继续导出吗 ?" -#contributors: -msgid "The last seed used by the pseudo random\nnumber generator was " +# contributors: +msgid "" +"The last seed used by the pseudo random\n" +"number generator was " msgstr "伪随机数生成器使用的最后一个种子是 " -#contributors: +# contributors: msgid "The length of a string field must be at least %d and at most %d. Keeping original value." msgstr "字符串字段的长度必须至少为%d, 最多%d 个。" -#contributors: +# contributors: msgid "The length of an integral numeric field must be at least %d and at most %d. Keeping original value." msgstr "整数值字段的长度必须至少为%d, 最多为%d。" -#contributors: +# contributors: msgid "The length of an non-integral numeric field must be at least %d and at most %d. Keeping original value." msgstr "非整数数值字段的长度必须至少为%d, 最多为%d。" -#contributors: -msgid "The length of field name should be between 1 and %d.\nCurrent field length (%d) is not valid" -msgstr "字段名的长度应介于1和%d 之间。\n当前字段长度 (%d) 无效" +# contributors: +msgid "" +"The length of field name should be between 1 and %d.\n" +"Current field length (%d) is not valid" +msgstr "" +"字段名的长度应介于1和%d 之间。\n" +"当前字段长度 (%d) 无效" -#contributors: +# contributors: msgid "The new theme chosen will no longer include rates smoothing. Please use the Rates submenu to choose a theme with rates again." msgstr "请使用菜单 地图->比率计算的地图 从新选择比率平滑" -#contributors: +# contributors: msgid "The number of covariates should be more than the number of observations." msgstr "变量数应多于观察数。" -#contributors: +# contributors: msgid "The number of decimal places for a non-integral numeric field must be at least %d and at most %d. Keeping original value." msgstr "非整数数字字段的小数位数必须至少为%d, 最多为%d。" -#contributors: +# contributors: msgid "The number of displayed decimal places for a non-integral numeric field must be at least %d and at most %d. Keeping original value." msgstr "非整数数字字段的显示小数位数必须至少为%d, 最多为%d。" -#contributors: +# contributors: msgid "The number of identified clusters is less than " msgstr "识别的聚类的数目小于 " -#contributors: +# contributors: msgid "The number of observations specified in chosen weights file is %d, but the number in the current Table is %d, which is incompatible." msgstr "在所选权重文件中指定的观察值的数量是%d,但当前表中的数字是%d,它不兼容。" -#contributors: +# contributors: msgid "The number of observations specified in chosen weights file is incompatible with current Table." msgstr "空间权重文件中定义的观察对象数与当前表不一致。" -#contributors: +# contributors: msgid "The number of records in current table is larger than the number of records in import table. Please choose import table >= %d records" msgstr "当前表中的记录数大于导入表中的记录数。请选择至少有 %d 条记录的表导入" -#contributors: +# contributors: msgid "The original datasource %s is not a valid file. GeoDa \"Save\" only works on file datasource." msgstr "原始数据源%s 不是一个有效的文件。\"保存\" 功能仅适用于文件数据源。" -#contributors: +# contributors: msgid "The ratio of between to total sum of squares:\t" msgstr "聚类间之总平方和 / 总平方和 :\t" -#contributors: -msgid "The sample size for random sampling is too small.\nPlease increase the number of iterations." +# contributors: +msgid "" +"The sample size for random sampling is too small.\n" +"Please increase the number of iterations." msgstr "随机抽样的样本数太小。请增加迭代次数。" -#contributors: +# contributors: msgid "The selected database driver is not supported on this platform. Please check GeoDa website for more information about database support and connection." msgstr "此平台不支持所选的数据库驱动程序。请查看GeoDa网站以获取关于数据库支持和连接的更多信息。" -#contributors: +# contributors: msgid "The selected group variable should contains %d items. Please modify the group variable in Time Editor, or select another variable." msgstr "" -#contributors: +# contributors: msgid "The selected group variable should contains %d items. Please modify the group variable in Time->Time Editor, or select another variable." msgstr "所选的时间(分组)变量应该有%d项。请通过 时间->时间编辑器 来修改该时间(分组)变量,或指定其他的时间(分组)变量。" -#contributors: +# contributors: msgid "The selected variable %s is not valid. If it's a grouped variable, please modify it in Time->Time Editor. Or please select another variable." msgstr "所选变量%s无效。如果它是一个时间(分组)变量,请在Time-> Time Editor中进行修改。或者请选择另一个变量。" -#contributors: +# contributors: msgid "The selected variable is not numeric. Please select another variable." msgstr "所选变量不是数值类型,请选择其他变量。" -#contributors: +# contributors: msgid "The set of values in the import key fields has no match in current table. Please choose keys with matching sets of values." msgstr "导入的键字段的值集在当前表中没有匹配项。请选择具有匹配值的字段。" -#contributors: +# contributors: msgid "The total sum of squares:\t" msgstr "总平方和:\t" -#contributors: +# contributors: msgid "The total within-cluster sum of squares:\t" msgstr "The total within-cluster sum of squares:\t" -#contributors: +# contributors: msgid "Themeless" msgstr "无主题" -#contributors: +# contributors: msgid "Themeless Map" msgstr "无主题地图" -#contributors: +# contributors: msgid "There are spatial objects being counted more than once. Please check the results." msgstr "" -#contributors: +# contributors: msgid "There are unsaved data source or weights/time definition changes." msgstr "有未保存的数据,空间权重或定义的时间变量." -#contributors: +# contributors: msgid "There is a view could not be closed. Please manually close and try again." msgstr "有一个视图不能关闭。请手动关闭并重试。" -#contributors: +# contributors: msgid "There is an error during PCA calculation. Please check if the data is valid." msgstr "计算PCA过程中出现错误。请检查数据是否有效。" -#contributors: +# contributors: msgid "There is at least one neighborless observation. Check the islands in weights histogram and linked map." msgstr "" -#contributors: +# contributors: msgid "There is at least one neighborless observation. Check the weights histogram and linked map to see if the islands are real or not. If not, adjust the distance threshold (points) or the precision threshold (polygons)." msgstr "至少有一个无邻域观测。检查权重直方图和链接的地图, 看看这些孤立值是否真实。如果没有, 则调整距离阈值 (点) 或精度阈值 (多边形)。" -#contributors: +# contributors: msgid "There is at least one view could not be closed. Please manually close and try again." msgstr "至少有一个窗口无法关闭。请手动关闭并重试。" -#contributors: +# contributors: msgid "There is at least one view open that depends on this matrix. Ok to close these views and remove?" msgstr "至少有一个打开的窗口使用了该矩阵。确定关闭这些窗口并删除该矩阵?" -#contributors: +# contributors: msgid "There is one other view open that depends on this matrix. Ok to close this view and remove?" msgstr "有其他的窗口依赖于这个矩阵。 是否关闭这些窗口并继续?" -#contributors: +# contributors: msgid "There was a problem associating the weights file." msgstr "关联空间权重文件时出现问题。" -#contributors: +# contributors: msgid "There was a problem generating voronoi contiguity neighbors. Please report this." msgstr "生成Voronoi空间权重时出现问题。请报告该错误。" -#contributors: +# contributors: msgid "There was a problem reading the layer" msgstr "读取图层时出现问题" -#contributors: +# contributors: msgid "There was a problem reading the table" msgstr "读取表时出现问题" -#contributors: +# contributors: msgid "There was a problem requesting the weights file." msgstr "请求权重文件时出现问题。" -#contributors: +# contributors: msgid "These are the row numbers of the records without location information." msgstr "这些是没有位置信息的行号。" -#contributors: +# contributors: msgid "Thiessen Polygons" msgstr "泰森多边形" -#contributors: +# contributors: msgid "Third Variable (Z)" msgstr "第三变量(Z)" -#contributors: +# contributors: msgid "This datasource is not supported. Please export to other datasource that GeoDa supports first." msgstr "不支持此数据源。请先导出到 GeoDa 支持的其他数据源。" -#contributors: +# contributors: msgid "This field name already exists (non-integer type). Please input a unique name." msgstr "此字段名称已存在(非整数类型)。请输入一个唯一的名称。" -#contributors: +# contributors: msgid "This format is not supported." msgstr "不支持此格式。" -#contributors: +# contributors: msgid "This is the list of existing grouped variables. As new groups are created, they will appear on this list. You can open an existing .gda file and edit it here." msgstr "新的分组(时间)变量创建后,将出现在此列表中。您可以打开现有的.gda文件并在此处进行编辑。" -#contributors: +# contributors: msgid "This view currently supports data with at most 1000 observations. The Spatial Correlogram Scatterplot plots distances between all pairs of observations. The current data set has %d observations and %d unordered pairs of observations." msgstr "此视图目前支持最多1000个观察对象。空间 Correlogram 散点图绘制所有的对象两两之间的距离。当前数据集有%d 个对象产生%d 对距离。" -#contributors: +# contributors: msgid "Thousands:" msgstr "千位数:" -#contributors: +# contributors: msgid "Tim&e" msgstr "时间编辑" -#contributors: +# contributors: msgid "Time" msgstr "时间分析" -#contributors: +# contributors: msgid "Time Editor" msgstr "时间编辑器" -#contributors: +# contributors: msgid "Time Player" msgstr "时间播放器" -#contributors: +# contributors: msgid "Time Setup" msgstr "时间设置" -#contributors: +# contributors: msgid "Time Variable Options" msgstr "时间变量选项" -#contributors: +# contributors: msgid "Time:" msgstr "时间:" -#contributors: +# contributors: msgid "Title of Visualization" msgstr "可视化标题" -#contributors: +# contributors: msgid "Tools" msgstr "工具" -#contributors: +# contributors: msgid "Top" msgstr "" -#contributors: +# contributors: msgid "Transformation:" msgstr "数据转换:" -#contributors: +# contributors: msgid "Transformation: " msgstr "数据转换: " -#contributors: +# contributors: msgid "Transformation:\t" msgstr "数据转换:\t" -#contributors: +# contributors: msgid "Travel Distances Tool" msgstr "" -#contributors: +# contributors: msgid "Turkish (Windows-1254)" msgstr "" -#contributors: +# contributors: msgid "Turkish Latin-5 (ISO-8859-9)" msgstr "土耳其拉丁5号(ISO-859-9)" -#contributors: +# contributors: msgid "Type" msgstr "类型" -#contributors: +# contributors: msgid "Type 1" msgstr "Type 1" -#contributors: +# contributors: msgid "Type 1a" msgstr "1a型" -#contributors: +# contributors: msgid "Type 2" msgstr "Type 2" -#contributors: +# contributors: msgid "Type 2a" msgstr "Type 2a" -#contributors: +# contributors: msgid "Unable to overwrite " msgstr "无法覆盖 " -#contributors: +# contributors: msgid "Undefined" msgstr "未定义/空值" -#contributors: +# contributors: msgid "Undo" msgstr "撤销" -#contributors: +# contributors: msgid "Ungrouped Variables" msgstr "未分组变量" -#contributors: +# contributors: msgid "Unicode (UTF-16LE)" msgstr "" -#contributors: +# contributors: msgid "Unicode (UTF-8)" msgstr "Unicode(UTF-8)" -#contributors: +# contributors: msgid "Unique Values" msgstr "唯一值" -#contributors: +# contributors: msgid "Unique Values Map" msgstr "唯一值地图" -#contributors: +# contributors: msgid "Univariate" msgstr "单变量" -#contributors: +# contributors: msgid "Univariate Local Geary" msgstr "单变量局部Geary" -#contributors: +# contributors: msgid "Univariate Local Join Count" msgstr "单变量局部Joint Count" -#contributors: +# contributors: msgid "Univariate Local Moran's I" msgstr "单变量局部Moran’s I" -#contributors: +# contributors: msgid "Univariate Moran's I" msgstr "单变量Moran’s I" -#contributors: +# contributors: msgid "Unknow exception. Please contact GeoDa support." msgstr "未知异常。请联系GeoDa获取帮助。" -#contributors: +# contributors: msgid "Unselected" msgstr "未选中" -#contributors: +# contributors: msgid "Unselected =" msgstr "未选中=" -#contributors: +# contributors: msgid "Up" msgstr "向上移动" -#contributors: +# contributors: msgid "Update GeoDa completed" msgstr "更新GeoDa完成" -#contributors: +# contributors: msgid "Update GeoDa failed" msgstr "更新GeoDa失败" -#contributors: -msgid "Update project information failed. \n\nDetails: The layer information defined in project file does no match opened datasource." -msgstr "更新项目信息失败。\n\n详细信息:项目文件中定义的图层信息与打开的数据源不匹配。" +# contributors: +msgid "" +"Update project information failed. \n" +"\n" +"Details: The layer information defined in project file does no match opened datasource." +msgstr "" +"更新项目信息失败。\n" +"\n" +"详细信息:项目文件中定义的图层信息与打开的数据源不匹配。" -#contributors: +# contributors: msgid "Upper outlier" msgstr "高异常值" -#contributors: +# contributors: msgid "Upper-right corner" msgstr "右上角" -#contributors: +# contributors: msgid "Use GPU to Accelerate computation:" msgstr "使用GPU来加速计算(部分功能)" -#contributors: +# contributors: msgid "Use Power Iteration method:\tMax iterations=" msgstr "使用幂迭代法:\t最大迭代次数=" -#contributors: +# contributors: msgid "Use Power Iteration:" msgstr "使用幂迭代法:" -#contributors: +# contributors: msgid "Use Scientific Notation" msgstr "使用科学记数法" -#contributors: +# contributors: msgid "Use Specified Seed" msgstr "使用指定的随机数种子" -#contributors: +# contributors: msgid "Use Transparent Legend Background" msgstr "图例使用透明的背景" -#contributors: +# contributors: msgid "Use Weights:" msgstr "使用空间权重:" -#contributors: +# contributors: msgid "Use bounding box of input datasource" msgstr "使用输入数据的边框" -#contributors: +# contributors: msgid "Use classic yellow cross-hatching to highlight selection in maps:" msgstr "使用经典的黄色交叉阴影来高亮地图中的选中的对象:" -#contributors: +# contributors: msgid "Use existing field name" msgstr "使用现有字段名" -#contributors: +# contributors: msgid "Use geometric centroids" msgstr "使用几何质心" -#contributors: +# contributors: msgid "Use geometric centroids (weighting): \n" msgstr "使用几何质心加权: \n" -#contributors: +# contributors: msgid "Use inverse distance?" msgstr "使用反距离?" -#contributors: +# contributors: msgid "Use max knn distance as bandwidth" msgstr "使用最大KNN距离作为带宽" -#contributors: +# contributors: msgid "Use outline + motorway(~bbox) of input datasource" msgstr "" -#contributors: +# contributors: msgid "Use outline of input datasource" msgstr "" -#contributors: +# contributors: msgid "Use row-standardized weights" msgstr "使用行标准化空间权重" -#contributors: +# contributors: msgid "Use selected as specified alpha level" msgstr "使用上面选中的值为alpha值" -#contributors: +# contributors: msgid "Use specified seed:" msgstr "使用指定的种子:" -#contributors: +# contributors: msgid "Use the bounding box of shape datasource" msgstr "使用数据的边界框(bbox)" -#contributors: +# contributors: msgid "User Defined" msgstr "用户定义" -#contributors: +# contributors: msgid "User Name" msgstr "用户名" -#contributors: +# contributors: msgid "User name" msgstr "用户名" -#contributors: +# contributors: msgid "Value" msgstr "值" -#contributors: +# contributors: msgid "Values assigned to target field successfully." msgstr "成功为目标字段赋值。" -#contributors: +# contributors: msgid "Var Calc Container" msgstr "Var Calc Container" -#contributors: +# contributors: msgid "Variable" msgstr "变量" -#contributors: +# contributors: msgid "Variable %s at time %d could not be standardized." msgstr "变量 %s 在时间段 %d 无法被标准化" -#contributors: +# contributors: msgid "Variable %s at time %d is a placeholer" msgstr "变量 %s 在时间段 %d 不是一个有效变量" -#contributors: +# contributors: msgid "Variable %s is a placeholer" msgstr "变量 %s 不是一个有效变量" -#contributors: +# contributors: msgid "Variable %s is a time-grouped variable. Please ungroup this variable to delete." msgstr "变量%s 是一个时间变量。 请取消定义该时间变量后再进行删除。" -#contributors: +# contributors: msgid "Variable %s is no longer in the Table. Please close and reopen the Regression Dialog to synchronize with Table data." msgstr "变量%s已经不在表中。 请关闭并重新打开回归分析对话框。" -#contributors: +# contributors: msgid "Variable %s is no longer in the Table. Please close and reopen this dialog to synchronize with Table data." msgstr "变量%s已不在表中。 请关闭并重新打开此对话框以与表数据同步。" -#contributors: +# contributors: msgid "Variable %s is not valid. Please select another variable." msgstr "变量%s无效。请选择另一个变量。" -#contributors: +# contributors: msgid "Variable / Constant" msgstr "变量/常量" -#contributors: +# contributors: msgid "Variable %s is specified. " msgstr "变量%s已被指定. " -#contributors: +# contributors: msgid "Variable Choice" msgstr "变量选择" -#contributors: +# contributors: msgid "Variable Name" msgstr "变量名" -#contributors: +# contributors: msgid "Variable Properties" msgstr "变量属性" -#contributors: +# contributors: msgid "Variable Properties - " msgstr "变量属性- " -#contributors: +# contributors: msgid "Variable Setting" msgstr "变量设置" -#contributors: +# contributors: msgid "Variable Settings" msgstr "变量设置" -#contributors: +# contributors: msgid "Variable Type Error" msgstr "变量类型错误" -#contributors: +# contributors: msgid "Variable Value Error" msgstr "变量值错误" -#contributors: +# contributors: msgid "Variable name \"%s\" is either a duplicate or is invalid. Please enter an alternative, non-duplicate variable name." msgstr "变量名 \"%s\" 重复或无效。请重新输入一个其他的变量名。" -#contributors: +# contributors: msgid "Variable name \"%s\" is either a duplicate or is invalid. Please enter an alternative, non-duplicate variable name. The first character must be a letter, and the remaining characters can be either letters, numbers or underscores. For DBF table, a valid variable name is between one and ten characters long." msgstr "变量名 \"%s\" 重复或无效。请重新输入一个其他变量名。第一个字符必须是字母, 其余字符可以是字母、数字或下划线。对于 DBF 表, 一个有效的变量名介于十个字符之间。" -#contributors: +# contributors: msgid "Variable name can't be empty." msgstr "变量名不能为空。" -#contributors: -msgid "Variable name is either a duplicate or is invalid. Please\nenter an alternative, non-duplicate variable name.\n\n" +# contributors: +msgid "" +"Variable name is either a duplicate or is invalid. Please\n" +"enter an alternative, non-duplicate variable name.\n" +"\n" msgstr "变量名称是重复的或无效的。请重新输入一个新的变量名。\n" -#contributors: +# contributors: msgid "Variable:" msgstr "变量:" -#contributors: +# contributors: msgid "Variables" msgstr "变量" -#contributors: +# contributors: msgid "Variables:" msgstr "变量:" -#contributors: +# contributors: msgid "Vertical Bins Breaks" -msgstr "竖直方向区间(Bins)断点" +msgstr "竖向区间(Bins)断点" -#contributors: +# contributors: msgid "Vertical Cells" msgstr "垂直单元" -#contributors: +# contributors: msgid "Vietnamese (Windows-1258)" msgstr "越南语(Windows 1258)" -#contributors: +# contributors: msgid "View" msgstr "视图" -#contributors: +# contributors: msgid "View Original Data" msgstr "查看原始数据" -#contributors: +# contributors: msgid "View Standardized Data" msgstr "查看标准化的数据" -#contributors: +# contributors: msgid "Voronoi Contiguity Error" msgstr "泰森多边形有邻接性错误" -#contributors: +# contributors: msgid "WFS URL" msgstr "WFS 网址" -#contributors: +# contributors: msgid "Warning" msgstr "警告" -#contributors: +# contributors: msgid "Warning: %d observations are neighborless." msgstr "警告:%d 个对象没有找到任何邻居。" -#contributors: +# contributors: msgid "Warning: %d observations is neighborless." msgstr "警告:%d 个对象没有任何邻居。" -#contributors: +# contributors: msgid "Warning: NULL geometry" msgstr "警告:空的几何形状" -#contributors: +# contributors: msgid "Warning: loss data" msgstr "警告:数据可能会丢失" -#contributors: +# contributors: msgid "Was not able to load weights matrix." msgstr "不能加载空间权重矩阵。" -#contributors: +# contributors: msgid "Web" msgstr "网路" -#contributors: +# contributors: msgid "Weight" msgstr "空间权重" -#contributors: +# contributors: msgid "Weight matrix required for chosen spatial rate method." msgstr "空间比率地图方法需要指定空间权重矩阵。" -#contributors: +# contributors: msgid "Weighting:" msgstr "权重:" -#contributors: +# contributors: msgid "Weights" msgstr "空间权重" -#contributors: +# contributors: msgid "Weights File" msgstr "权重文件" -#contributors: +# contributors: msgid "Weights File Creation" msgstr "创建空间权重文件" -#contributors: +# contributors: msgid "Weights Intersection" msgstr "求空间权重交集" -#contributors: +# contributors: msgid "Weights Manager" msgstr "空间权重管理" -#contributors: +# contributors: msgid "Weights Name" msgstr "空间权重名称" -#contributors: +# contributors: msgid "Weights Symmetry Check" msgstr "空间权重对称性检验" -#contributors: +# contributors: msgid "Weights Union" msgstr "求空间权重并集" -#contributors: +# contributors: msgid "Weights file \"%s\" created successfully." msgstr "空间权重文件“%s”成功创建。" -#contributors: +# contributors: msgid "Weights file/format is not valid." msgstr "空间权重文件/格式无效”。" -#contributors: +# contributors: msgid "Weights:" msgstr "空间权重:" -#contributors: +# contributors: msgid "Welcome to GeoDa" msgstr "欢迎使用GeoDa" -#contributors: +# contributors: msgid "Welcome to GeoDa 1.8.16" msgstr "欢迎来到GeoDa 1.8.16" -#contributors: +# contributors: msgid "West European Latin-1 (ISO-8859-1)" msgstr "" -#contributors: +# contributors: msgid "West European Latin-9 (ISO-8859-15)" msgstr "" -#contributors: +# contributors: msgid "What windows to open?" msgstr "打开什么窗口?" -#contributors: +# contributors: msgid "When \"all times\" selected for either variable, result field must also be \"all times.\"" msgstr "当选择变量的时间为“all times”时, 保存结果的字段也必须选“all times”." -#contributors: +# contributors: msgid "When \"all times\" selected for variable, result field must also be \"all times.\"" msgstr "当选择变量的时间为“all times”时, 保存结果的字段也必须选“all times”." -#contributors: +# contributors: msgid "White Test" msgstr "White测试" -#contributors: +# contributors: msgid "Width in pixels" msgstr "像素宽度" -#contributors: +# contributors: msgid "Width:" msgstr "宽度:" -#contributors: +# contributors: msgid "Within cluster S.S." msgstr "各聚类之总平方和(Within cluster S.S.)" -#contributors: +# contributors: msgid "Within-cluster sum of squares:\n" msgstr "聚类对象的平方和(Within-cluster sum of squares):\n" -#contributors: +# contributors: msgid "Wrong number of rows!" msgstr "行数错误!" -#contributors: +# contributors: msgid "Wrote GeoDa Project File: " msgstr "写入GeoDa项目文件: " -#contributors: +# contributors: msgid "X" msgstr "X" -#contributors: +# contributors: msgid "X Variable" msgstr "X变量" -#contributors: +# contributors: msgid "X-Axis" msgstr "X轴" -#contributors: +# contributors: msgid "X-Coordinates" msgstr "X坐标" -#contributors: +# contributors: msgid "X-coord" msgstr "X坐标" -#contributors: +# contributors: msgid "X-coordinate" msgstr "X坐标" -#contributors: +# contributors: msgid "X-coordinate variable" msgstr "X坐标变量" -#contributors: +# contributors: msgid "Y" msgstr "Y" -#contributors: +# contributors: msgid "Y Variable" msgstr "Y变量" -#contributors: +# contributors: msgid "Y-Axis" msgstr "Y轴" -#contributors: +# contributors: msgid "Y-Coordinates" msgstr "Y坐标" -#contributors: +# contributors: msgid "Y-coord" msgstr "Y-坐标" -#contributors: +# contributors: msgid "Y-coordinate" msgstr "Y坐标" -#contributors: +# contributors: msgid "Y-coordinate variable" msgstr "Y坐标变量" -#contributors: +# contributors: msgid "Yes" msgstr "是" -#contributors: +# contributors: msgid "You can try to proceed but the current threshold distance value might be too large to compute. If it fails, please input a smaller distance band (which might leave some observations neighborless) or use other weights (e.g. KNN)." msgstr "当前距离阈值太大,可能需要很长时间进行计算。请输入一个较小的阈值(可能会产生一些没有邻居的观测值)或使用其他权重(例如KNN)。" -#contributors: +# contributors: msgid "You have requested to create a new file project %s while another project is open. Please close project %s and try again." msgstr "该项目文件已经打开, 请求创建新项目%s失败。请关闭项目%s 并重试。" -#contributors: +# contributors: msgid "Your Email address (Optional):" msgstr "电子邮件地址(可选):" -#contributors: +# contributors: msgid "Your GeoDa is already up-to-date." msgstr "您的GeoDa版本已经是最新的。" -#contributors: +# contributors: msgid "Your Github account (Optional):" msgstr "您的Github帐户(可选):" -#contributors: +# contributors: msgid "Your table cannot be aggregated because the key field \"%s\" is unique. Please use another key." msgstr "该表不能被聚合,因为键字段“%s”是唯一的。请使用另一个键。" -#contributors: -msgid "Your table cannot be merged because the key field \"%s\" is not unique. \nIt contains undefined or duplicate values.\n\nDetails:" -msgstr "无法合并表, 因为键字段 \"%s\" 不是唯一的。\n它包含未定义的或重复的值。\n\n详情:" +# contributors: +msgid "" +"Your table cannot be merged because the key field \"%s\" is not unique. \n" +"It contains undefined or duplicate values.\n" +"\n" +"Details:" +msgstr "" +"无法合并表, 因为键字段 \"%s\" 不是唯一的。\n" +"它包含未定义的或重复的值。\n" +"\n" +"详情:" -#contributors: +# contributors: msgid "Z" msgstr "Z" -#contributors: +# contributors: msgid "Z Variable" msgstr "Z变量" -#contributors: +# contributors: msgid "Zoom : press right-mouse button" msgstr "缩放:按鼠标右键" -#contributors: +# contributors: msgid "Zoom In" msgstr "缩小" -#contributors: +# contributors: msgid "Zoom Out" msgstr "缩小" -#contributors: +# contributors: msgid "Zooming Mode" msgstr "缩放模式" -#contributors: +# contributors: msgid "[Please briefly describe what went wrong]" msgstr "[请简要描述出错的地方]" -#contributors: +# contributors: msgid "[Steps you took before something went wrong]" msgstr "[在发生错误之前的步骤]" -#contributors: +# contributors: msgid "\"%s\" is not a valid p-value. Default p-value (0.01) is used" msgstr "“%s”不是有效的p值。默认的p值(0.01)将被使用" -#contributors: +# contributors: msgid "\"%s\" is not a valid seed. Seed unchanged." msgstr "\"%s\" 不是一个有效的种子。" -#contributors: -msgid "\". \n\nDetails: Attemp to write a readonly database, or " +# contributors: +msgid "" +"\". \n" +"\n" +"Details: Attemp to write a readonly database, or " msgstr "" -#contributors: -msgid "\nREGRESSION\n----------\n" -msgstr "\n回归分析\n----------\n" +# contributors: +msgid "" +"\n" +"REGRESSION\n" +"----------\n" +msgstr "" +"\n" +"回归分析\n" +"----------\n" -#contributors: -msgid "\nSelect whether to use periods or commas as\nseparators in numeric fields. \n\nE.g., by default, GeoDa uses commas to\nseparate thousands and periods\nfor decimals (1,000.00).\n " +# contributors: +msgid "" +"\n" +"Select whether to use periods or commas as\n" +"separators in numeric fields. \n" +"\n" +"E.g., by default, GeoDa uses commas to\n" +"separate thousands and periods\n" +"for decimals (1,000.00).\n" +" " msgstr "" -#contributors: -msgid "\n\n95% threshold criterion: " -msgstr "\n\n贡献达95%阈值准则: " +# contributors: +msgid "" +"\n" +"\n" +"95% threshold criterion: " +msgstr "" +"\n" +"\n" +"贡献达95%阈值准则: " -#contributors: -msgid "\n\nCumulative proportion:\n" -msgstr "\n\n变量累计贡献率(Cumulative proportion):\n" +# contributors: +msgid "" +"\n" +"\n" +"Cumulative proportion:\n" +msgstr "" +"\n" +"\n" +"变量累计贡献率(Cumulative proportion):\n" -#contributors: -msgid "\n\nDetails: " +# contributors: +msgid "" +"\n" +"\n" +"Details: " msgstr "" -#contributors: -msgid "\n\nEigenvalues:\n" -msgstr "\n\n特征值(Eigenvalues):\n" +# contributors: +msgid "" +"\n" +"\n" +"Eigenvalues:\n" +msgstr "" +"\n" +"\n" +"特征值(Eigenvalues):\n" -#contributors: -msgid "\n\nKaiser criterion: " -msgstr "\n\nKaiser准则(特征值>1): " +# contributors: +msgid "" +"\n" +"\n" +"Kaiser criterion: " +msgstr "" +"\n" +"\n" +"Kaiser准则(特征值>1): " -#contributors: -msgid "\n\nProportion of variance:\n" -msgstr "\n\n各变量贡献率(Proportion of variance):\n" +# contributors: +msgid "" +"\n" +"\n" +"Proportion of variance:\n" +msgstr "" +"\n" +"\n" +"各变量贡献率(Proportion of variance):\n" -#contributors: -msgid "\n\nSquared correlations:\n" -msgstr "\n\n变量与主成分平方相关系数(Squared correlations):\n" +# contributors: +msgid "" +"\n" +"\n" +"Squared correlations:\n" +msgstr "" +"\n" +"\n" +"变量与主成分平方相关系数(Squared correlations):\n" -#contributors: -msgid "\n\nStandard deviation:\n" -msgstr "\n\n标准差:\n" +# contributors: +msgid "" +"\n" +"\n" +"Standard deviation:\n" +msgstr "" +"\n" +"\n" +"标准差:\n" -#contributors: -msgid "\n\nVariable Loadings:\n" -msgstr "\n\n主成分载荷(Variable Loadings):\n" +# contributors: +msgid "" +"\n" +"\n" +"Variable Loadings:\n" +msgstr "" +"\n" +"\n" +"主成分载荷(Variable Loadings):\n" -#contributors: +# contributors: msgid "adaptive kernel" msgstr "自适应核" -#contributors: +# contributors: msgid "and field" msgstr "以及字段" -#contributors: +# contributors: msgid "autocorrelation is " msgstr "自相关系数为" -#contributors: +# contributors: msgid "bandwidth" msgstr "带宽" -#contributors: +# contributors: msgid "binary" msgstr "二进制" -#contributors: +# contributors: msgid "break 0" msgstr "间断点 0" -#contributors: +# contributors: msgid "calculating..." msgstr "计算中…" -#contributors: +# contributors: msgid "can't compute" msgstr "无法计算" -#contributors: +# contributors: msgid "category 1" msgstr "category 1" -#contributors: +# contributors: msgid "choice:" msgstr "选择:" -#contributors: +# contributors: msgid "choose a variable" msgstr "选择的变量" -#contributors: +# contributors: msgid "csv file:" msgstr "csv文件:" -#contributors: +# contributors: msgid "current table key" msgstr "当前表格键值" -#contributors: +# contributors: msgid "custom" msgstr "自定义" -#contributors: +# contributors: msgid "dBase Database File (*.dbf)|*.dbf" msgstr "dBase Database File (*.dbf)|*.dbf" -#contributors: +# contributors: msgid "datasource.type %s unknown.." msgstr "数据源类型%s未知.." -#contributors: +# contributors: msgid "day:" msgstr "天:" -#contributors: -msgid "decimal\nplaces" -msgstr "小数精度\n位数" +# contributors: +msgid "" +"decimal\n" +"places" +msgstr "" +"小数精度\n" +"位数" -#contributors: -msgid "displayed\ndecimal places" -msgstr "显示小数精度\n位数" +# contributors: +msgid "" +"displayed\n" +"decimal places" +msgstr "" +"显示小数精度\n" +"位数" -#contributors: +# contributors: msgid "distance metric" msgstr "距离度量" -#contributors: +# contributors: msgid "distance unit" msgstr "距离单位" -#contributors: +# contributors: msgid "distance vars" msgstr "距离变量" -#contributors: +# contributors: msgid "diverging" msgstr "分散型" -#contributors: +# contributors: msgid "done" msgstr "完成" -#contributors: +# contributors: msgid "ds:" msgstr "ds:" -#contributors: +# contributors: msgid "enumerate as 1, 2, 3, ..." msgstr "枚举,如:1, 2, 3,…" -#contributors: +# contributors: msgid "false" msgstr "否" -#contributors: +# contributors: msgid "field name:" msgstr "字段名:" -#contributors: +# contributors: msgid "fields:" msgstr "字段:" -#contributors: +# contributors: msgid "file" msgstr "文件" -#contributors: +# contributors: msgid "file size:" msgstr "文件大小:" -#contributors: +# contributors: msgid "from" msgstr "开始值" -#contributors: +# contributors: msgid "id variable" msgstr "id变量" -#contributors: +# contributors: msgid "import table key" msgstr "导入表的关键字段" -#contributors: +# contributors: msgid "in current layer." msgstr "在当前地图中。" -#contributors: +# contributors: msgid "inches" msgstr "英寸" -#contributors: +# contributors: msgid "include lower orders" msgstr "是否包含低阶的邻居" -#contributors: +# contributors: msgid "inverse distance" msgstr "使用反距离" -#contributors: +# contributors: msgid "is associated to" msgstr "关联于" -#contributors: +# contributors: msgid "kernel method" msgstr "核函数" -#contributors: +# contributors: msgid "kernel to diagonal" msgstr "核函数应用于对角线权重值" -#contributors: +# contributors: msgid "large" msgstr "大" -#contributors: +# contributors: msgid "length" msgstr "长度" -#contributors: +# contributors: msgid "max dist" msgstr "最大距离" -#contributors: +# contributors: msgid "max neighbors" msgstr "最大邻居数" -#contributors: +# contributors: msgid "max-p" msgstr "max-p" -#contributors: +# contributors: msgid "max:" msgstr "最大值:" -#contributors: +# contributors: msgid "maximum" msgstr "最大值" -#contributors: -msgid "maximum\npossible" +# contributors: +msgid "" +"maximum\n" +"possible" msgstr "可能最大值" -#contributors: +# contributors: msgid "mean" msgstr "平均值" -#contributors: +# contributors: msgid "mean neighbors" msgstr "平均邻居数" -#contributors: +# contributors: msgid "mean:" msgstr "平均值:" -#contributors: +# contributors: msgid "median neighbors" msgstr "中位邻居数" -#contributors: +# contributors: msgid "median:" msgstr "中位数:" -#contributors: +# contributors: msgid "min dist" msgstr "最小距离" -#contributors: +# contributors: msgid "min neighbors" msgstr "最小邻居数" -#contributors: +# contributors: msgid "min:" msgstr "最小值:" -#contributors: +# contributors: msgid "minimum" msgstr "最小值" -#contributors: -msgid "minimum\npossible" +# contributors: +msgid "" +"minimum\n" +"possible" msgstr "可能最小值" -#contributors: +# contributors: msgid "mm" msgstr "毫米" -#contributors: +# contributors: msgid "month:" msgstr "月:" -#contributors: +# contributors: msgid "name:" msgstr "名称:" -#contributors: +# contributors: msgid "need two valid regressions" msgstr "" -#contributors: +# contributors: msgid "neighbors" msgstr "邻居数" -#contributors: +# contributors: msgid "not saved" msgstr "未保存" -#contributors: +# contributors: msgid "numeric" msgstr "数值" -#contributors: +# contributors: msgid "obs " msgstr "对象 " -#contributors: +# contributors: msgid "obs#" msgstr "obs#" -#contributors: +# contributors: msgid "observation:" msgstr "观察对象:" -#contributors: +# contributors: msgid "order" msgstr "" -#contributors: +# contributors: msgid "parent group" msgstr "所在分组(时间变量)" -#contributors: +# contributors: msgid "pixels" msgstr "像素" -#contributors: +# contributors: msgid "power" msgstr "幂" -#contributors: +# contributors: msgid "range, est. distance" msgstr "范围(估计距离)" -#contributors: +# contributors: msgid "records:" msgstr "记录:" -#contributors: +# contributors: msgid "redcap" msgstr "" -#contributors: +# contributors: msgid "row-standardized" msgstr "行标准化" -#contributors: +# contributors: msgid "row:\n" msgstr "行:\n" -#contributors: +# contributors: msgid "s.d." msgstr "标准差" -#contributors: +# contributors: msgid "s.d.:" msgstr "标准差:" -#contributors: +# contributors: msgid "sd from mean" msgstr "标准差" -#contributors: +# contributors: msgid "selected:" msgstr "已选中:" -#contributors: +# contributors: msgid "sequential" msgstr "顺序的" -#contributors: +# contributors: msgid "show normal distribution p-val map" msgstr "显示p值的正态分布图" -#contributors: +# contributors: msgid "show normal distribution p-val maps" msgstr "显示p值的正态分布地图" -#contributors: +# contributors: msgid "show significance maps" msgstr "显示显著性图" -#contributors: +# contributors: msgid "skater" msgstr "" -#contributors: +# contributors: msgid "small" msgstr "小" -#contributors: +# contributors: msgid "space-time variable found with no name" msgstr "找到未命名的时空变量" -#contributors: +# contributors: msgid "standard deviation" msgstr "标准差" -#contributors: +# contributors: msgid "suggested title:" msgstr "建议标题:" -#contributors: +# contributors: msgid "symmetry" msgstr "对称空间权重" -#contributors: +# contributors: msgid "thematic" msgstr "主题的(thematic)" -#contributors: +# contributors: msgid "threshold value" msgstr "阈值" -#contributors: +# contributors: msgid "time" msgstr "时间" -#contributors: +# contributors: msgid "to" msgstr "结束值" -#contributors: +# contributors: msgid "to define weights." msgstr "定义空间权重。" -#contributors: +# contributors: msgid "to specify variable and distance parameters." msgstr "来指定变量和距离参数" -#contributors: +# contributors: msgid "total # pairs" msgstr "所有对数" -#contributors: +# contributors: msgid "true" msgstr "是" -#contributors: +# contributors: msgid "type" msgstr "类型" -#contributors: +# contributors: msgid "undefined: " msgstr "" -#contributors: +# contributors: msgid "uni. dist. Min" msgstr "均匀分布最小值" -#contributors: +# contributors: msgid "uniform distribution" msgstr "均匀分布" -#contributors: +# contributors: msgid "unknown" msgstr "未知" -#contributors: +# contributors: msgid "using row-standardized weights" msgstr "使用行标准化空间权重" -#contributors: +# contributors: msgid "value" msgstr "值" -#contributors: +# contributors: msgid "value:" msgstr "值:" -#contributors: +# contributors: msgid "var name:" msgstr "变量名:" -#contributors: +# contributors: msgid "variable name" msgstr "变量名" -#contributors: +# contributors: msgid "version:" msgstr "版本:" -#contributors: +# contributors: msgid "weights:" msgstr "空间权重:" -#contributors: +# contributors: msgid "wrong model number" msgstr "错误的模型序号" -#contributors: +# contributors: msgid "y:" msgstr "" - diff --git a/rc/dialogs.xrc b/rc/dialogs.xrc index a15c595fe..66b512f8d 100644 --- a/rc/dialogs.xrc +++ b/rc/dialogs.xrc @@ -16,6 +16,7 @@ + 105,-1d bold @@ -234,6 +235,7 @@ + 105,-1d bold @@ -3634,9 +3636,9 @@ - 60,-1d + 80,-1d - wxALIGN_CENTER|wxALL + wxALIGN_CENTER|wxALL|wxEXPAND 2 @@ -3664,9 +3666,9 @@ - 60,-1d + 80,-1d - wxALIGN_CENTER|wxALL + wxALIGN_CENTER|wxALL|wxEXPAND 2 From 6e243ec3644ab5cbb825e9fa93eabaeb3eb323cb Mon Sep 17 00:00:00 2001 From: Xun Li Date: Sat, 24 Aug 2019 21:34:31 -0700 Subject: [PATCH 60/60] update build scripts on windows --- BuildTools/windows/GeoDa.vcxproj | 2 +- BuildTools/windows/build.bat | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/BuildTools/windows/GeoDa.vcxproj b/BuildTools/windows/GeoDa.vcxproj index f33621fcc..24831e552 100644 --- a/BuildTools/windows/GeoDa.vcxproj +++ b/BuildTools/windows/GeoDa.vcxproj @@ -125,7 +125,7 @@ temp\wxWidgets-3.1.0\include;%(AdditionalIncludeDirectories) - opencl.lib;zlibstat.lib;gdal_i.lib;libcurl.lib;libboost_date_time-vc100-mt-gd-1_57.lib;libboost_thread-vc100-mt-gd-1_57.lib;BLAS.lib;clapack.lib;libf2c.lib;json_spirit_lib.lib;sqlite3_i.lib;GlU32.lib;OpenGL32.lib;wxmsw31ud.lib;wxmsw31ud_gl.lib;wxtiffd.lib;wxjpegd.lib;wxpngd.lib;wxzlibd.lib;wxregexud.lib;wxexpatd.lib;wsock32.lib;comctl32.lib;winmm.lib;rpcrt4.lib;%(AdditionalDependencies) + opencl.lib;zlibstat.lib;gdal_i.lib;libcurl.lib;libboost_date_time-vc100-mt-gd-1_57.lib;libboost_thread-vc100-mt-gd-1_57.lib;libboost_atomic-vc100-mt-gd-1_57.lib;libboost_regex-vc100-mt-gd-1_57.lib;BLAS.lib;clapack.lib;libf2c.lib;json_spirit_lib.lib;sqlite3_i.lib;GlU32.lib;OpenGL32.lib;wxmsw31ud.lib;wxmsw31ud_gl.lib;wxtiffd.lib;wxjpegd.lib;wxpngd.lib;wxzlibd.lib;wxregexud.lib;wxexpatd.lib;wsock32.lib;comctl32.lib;winmm.lib;rpcrt4.lib;%(AdditionalDependencies) C:\Intel\OpenCL\sdk\lib\x86;dep\zlib\lib;C:\OSGeo4W\lib;temp\wxWidgets-3.1.0\lib\vc_dll;temp\CLAPACK-3.1.1-VisualStudio\LIB\Win32;temp\boost_1_57_0\stage\lib;temp\json_spirit_v4.08\Debug;%(AdditionalLibraryDirectories) false %(IgnoreSpecificDefaultLibraries) diff --git a/BuildTools/windows/build.bat b/BuildTools/windows/build.bat index 65314da8a..7d02cfd3e 100644 --- a/BuildTools/windows/build.bat +++ b/BuildTools/windows/build.bat @@ -918,10 +918,9 @@ cd %BOOST_HOME% call bootstrap.bat if %GDA_BUILD% == BUILD_32 ( - call b2 --with-thread --with-date_time --with-chrono --with-system --toolset=%MSVC++% --build-type=complete stage - call b2 --with-thread --with-date_time --with-chrono --with-system --toolset=%MSVC++% --build-type=complete --debug-symbols=on stage + call b2 --with-thread --with-date_time --with-chrono --with-system --with-atomic --with-regex --toolset=%MSVC++% --build-type=complete stage ) else ( - call b2 --with-thread --with-date_time --with-chrono --with-system --with-atomic --toolset=%MSVC++% --build-type=complete architecture=x86 address-model=64 stage + call b2 --with-thread --with-date_time --with-chrono --with-system --with-atomic --with-regex --toolset=%MSVC++% --build-type=complete architecture=x86 address-model=64 stage ) cd %BUILD_HOME%