From f6e8140ed3c6af511ec493b7c84f841da96fbe0d Mon Sep 17 00:00:00 2001 From: reiter Date: Thu, 13 Nov 2025 17:11:30 +0100 Subject: [PATCH 01/16] Start line and 2D triangle testing --- examples/triangle2D/CMakeLists.txt | 7 + examples/triangle2D/lineMesh.dat | 264 + examples/triangle2D/triangle2D.cpp | 41 + examples/triangle3D/trenchMesh.dat | 25604 +++++++++--------- examples/triangle3D/triangle3D.cpp | 7 +- gpu/examples/CMakeLists.txt | 2 + gpu/examples/trenchLines.cpp | 45 +- gpu/examples/trenchTriangles.cpp | 15 +- gpu/include/raygLineGeometry.hpp | 31 +- gpu/include/raygMesh.hpp | 53 - gpu/include/raygTraceLine.hpp | 114 +- gpu/pipelines/GeneralPipelineLine.cu | 2 + include/viennaray/rayUtil.hpp | 85 +- tests/triangleGeometry/triangleGeometry.cpp | 2 +- 14 files changed, 13230 insertions(+), 13042 deletions(-) create mode 100644 examples/triangle2D/CMakeLists.txt create mode 100644 examples/triangle2D/lineMesh.dat create mode 100644 examples/triangle2D/triangle2D.cpp diff --git a/examples/triangle2D/CMakeLists.txt b/examples/triangle2D/CMakeLists.txt new file mode 100644 index 0000000..399dc1b --- /dev/null +++ b/examples/triangle2D/CMakeLists.txt @@ -0,0 +1,7 @@ +project(triangle2D LANGUAGES CXX) + +add_executable(${PROJECT_NAME} "${PROJECT_NAME}.cpp") +target_link_libraries(${PROJECT_NAME} PRIVATE ViennaRay) +configure_file(lineMesh.dat ${CMAKE_CURRENT_BINARY_DIR}/lineMesh.dat COPYONLY) + +add_dependencies(ViennaRay_Examples ${PROJECT_NAME}) diff --git a/examples/triangle2D/lineMesh.dat b/examples/triangle2D/lineMesh.dat new file mode 100644 index 0000000..5b6d4a1 --- /dev/null +++ b/examples/triangle2D/lineMesh.dat @@ -0,0 +1,264 @@ +grid_delta 0.2 +n_nodes 131 +n_elements 130 +n -2.0 -8.0 0.0 +n -2.0 -8.0 0.0 +n -1.8 -8.0 0.0 +n -1.6 -8.0 0.0 +n -1.4 -8.0 0.0 +n -1.2 -8.0 0.0 +n -1.0 -8.0 0.0 +n -0.8 -8.0 0.0 +n -0.6 -8.0 0.0 +n -0.4 -8.0 0.0 +n -0.2 -8.0 0.0 +n 0.0 -8.0 0.0 +n 0.2 -8.0 0.0 +n 0.4 -8.0 0.0 +n 0.6 -8.0 0.0 +n 0.8 -8.0 0.0 +n 1.0 -8.0 0.0 +n 1.2 -8.0 0.0 +n 1.4 -8.0 0.0 +n 1.6 -8.0 0.0 +n 1.8 -8.0 0.0 +n 2.0 -8.0 0.0 +n 2.0 -8.0 0.0 +n -2.0 -7.8 0.0 +n 2.0 -7.8 0.0 +n -2.0 -7.6 0.0 +n 2.0 -7.6 0.0 +n -2.0 -7.4 0.0 +n 2.0 -7.4 0.0 +n -2.0 -7.2 0.0 +n 2.0 -7.2 0.0 +n -2.0 -7.0 0.0 +n 2.0 -7.0 0.0 +n -2.0 -6.8 0.0 +n 2.0 -6.8 0.0 +n -2.0 -6.6 0.0 +n 2.0 -6.6 0.0 +n -2.0 -6.4 0.0 +n 2.0 -6.4 0.0 +n -2.0 -6.2 0.0 +n 2.0 -6.2 0.0 +n -2.0 -6.0 0.0 +n 2.0 -6.0 0.0 +n -2.0 -5.8 0.0 +n 2.0 -5.8 0.0 +n -2.0 -5.6 0.0 +n 2.0 -5.6 0.0 +n -2.0 -5.4 0.0 +n 2.0 -5.4 0.0 +n -2.0 -5.2 0.0 +n 2.0 -5.2 0.0 +n -2.0 -5.0 0.0 +n 2.0 -5.0 0.0 +n -2.0 -4.8 0.0 +n 2.0 -4.8 0.0 +n -2.0 -4.6 0.0 +n 2.0 -4.6 0.0 +n -2.0 -4.4 0.0 +n 2.0 -4.4 0.0 +n -2.0 -4.2 0.0 +n 2.0 -4.2 0.0 +n -2.0 -4.0 0.0 +n 2.0 -4.0 0.0 +n -2.0 -3.8 0.0 +n 2.0 -3.8 0.0 +n -2.0 -3.6 0.0 +n 2.0 -3.6 0.0 +n -2.0 -3.4 0.0 +n 2.0 -3.4 0.0 +n -2.0 -3.2 0.0 +n 2.0 -3.2 0.0 +n -2.0 -3.0 0.0 +n 2.0 -3.0 0.0 +n -2.0 -2.8 0.0 +n 2.0 -2.8 0.0 +n -2.0 -2.6 0.0 +n 2.0 -2.6 0.0 +n -2.0 -2.4 0.0 +n 2.0 -2.4 0.0 +n -2.0 -2.2 0.0 +n 2.0 -2.2 0.0 +n -2.0 -2.0 0.0 +n 2.0 -2.0 0.0 +n -2.0 -1.8 0.0 +n 2.0 -1.8 0.0 +n -2.0 -1.6 0.0 +n 2.0 -1.6 0.0 +n -2.0 -1.4 0.0 +n 2.0 -1.4 0.0 +n -2.0 -1.2 0.0 +n 2.0 -1.2 0.0 +n -2.0 -1.0 0.0 +n 2.0 -1.0 0.0 +n -2.0 -0.8 0.0 +n 2.0 -0.8 0.0 +n -2.0 -0.6 0.0 +n 2.0 -0.6 0.0 +n -2.0 -0.4 0.0 +n 2.0 -0.4 0.0 +n -2.0 -0.2 0.0 +n 2.0 -0.2 0.0 +n -5.0 -0.0 0.0 +n -4.8 -0.0 0.0 +n -4.6 -0.0 0.0 +n -4.4 -0.0 0.0 +n -4.2 -0.0 0.0 +n -4.0 -0.0 0.0 +n -3.8 -0.0 0.0 +n -3.6 -0.0 0.0 +n -3.4 -0.0 0.0 +n -3.2 -0.0 0.0 +n -3.0 -0.0 0.0 +n -2.8 -0.0 0.0 +n -2.6 -0.0 0.0 +n -2.4 -0.0 0.0 +n -2.2 -0.0 0.0 +n 2.2 -0.0 0.0 +n 2.4 -0.0 0.0 +n 2.6 -0.0 0.0 +n 2.8 -0.0 0.0 +n 3.0 -0.0 0.0 +n 3.2 -0.0 0.0 +n 3.4 -0.0 0.0 +n 3.6 -0.0 0.0 +n 3.8 -0.0 0.0 +n 4.0 -0.0 0.0 +n 4.2 -0.0 0.0 +n 4.4 -0.0 0.0 +n 4.6 -0.0 0.0 +n 4.8 -0.0 0.0 +n 5.0 -0.0 0.0 +e 0 1 +e 1 2 +e 2 3 +e 3 4 +e 4 5 +e 5 6 +e 6 7 +e 7 8 +e 8 9 +e 9 10 +e 10 11 +e 11 12 +e 12 13 +e 13 14 +e 14 15 +e 15 16 +e 16 17 +e 17 18 +e 18 19 +e 19 20 +e 20 21 +e 21 22 +e 23 0 +e 22 24 +e 25 23 +e 24 26 +e 27 25 +e 26 28 +e 29 27 +e 28 30 +e 31 29 +e 30 32 +e 33 31 +e 32 34 +e 35 33 +e 34 36 +e 37 35 +e 36 38 +e 39 37 +e 38 40 +e 41 39 +e 40 42 +e 43 41 +e 42 44 +e 45 43 +e 44 46 +e 47 45 +e 46 48 +e 49 47 +e 48 50 +e 51 49 +e 50 52 +e 53 51 +e 52 54 +e 55 53 +e 54 56 +e 57 55 +e 56 58 +e 59 57 +e 58 60 +e 61 59 +e 60 62 +e 63 61 +e 62 64 +e 65 63 +e 64 66 +e 67 65 +e 66 68 +e 69 67 +e 68 70 +e 71 69 +e 70 72 +e 73 71 +e 72 74 +e 75 73 +e 74 76 +e 77 75 +e 76 78 +e 79 77 +e 78 80 +e 81 79 +e 80 82 +e 83 81 +e 82 84 +e 85 83 +e 84 86 +e 87 85 +e 86 88 +e 89 87 +e 88 90 +e 91 89 +e 90 92 +e 93 91 +e 92 94 +e 95 93 +e 94 96 +e 97 95 +e 96 98 +e 99 97 +e 98 100 +e 101 102 +e 102 103 +e 103 104 +e 104 105 +e 105 106 +e 106 107 +e 107 108 +e 108 109 +e 109 110 +e 110 111 +e 111 112 +e 112 113 +e 113 114 +e 114 115 +e 115 99 +e 100 116 +e 116 117 +e 117 118 +e 118 119 +e 119 120 +e 120 121 +e 121 122 +e 122 123 +e 123 124 +e 124 125 +e 125 126 +e 126 127 +e 127 128 +e 128 129 +e 129 130 diff --git a/examples/triangle2D/triangle2D.cpp b/examples/triangle2D/triangle2D.cpp new file mode 100644 index 0000000..3e48005 --- /dev/null +++ b/examples/triangle2D/triangle2D.cpp @@ -0,0 +1,41 @@ +#include +#include + +#include + +#include + +using namespace viennaray; + +int main() { + omp_set_num_threads(16); + constexpr int D = 2; + using NumericType = float; + Logger::setLogLevel(LogLevel::DEBUG); + + std::vector> points; + std::vector> lines; + NumericType gridDelta; + rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, points, lines); + +// TraceTriangle tracer; +// tracer.setGeometry(points, lines, gridDelta); + +// auto particle = +// std::make_unique>(0.1, "flux"); +// tracer.setParticleType(particle); +// tracer.setNumberOfRaysPerPoint(2000); + +// Timer timer; +// timer.start(); +// tracer.apply(); +// timer.finish(); + +// std::cout << "Tracing time: " << timer.currentDuration / 1e9 << " s\n"; + +// auto &localData = tracer.getLocalData(); +// tracer.normalizeFlux(localData.getVectorData(0), NormalizationType::SOURCE); + +// rayInternal::writeVTP("triangleGeometryOutput.vtp", points, triangles, +// localData.getVectorData(0)); +} \ No newline at end of file diff --git a/examples/triangle3D/trenchMesh.dat b/examples/triangle3D/trenchMesh.dat index f611620..51ee52d 100644 --- a/examples/triangle3D/trenchMesh.dat +++ b/examples/triangle3D/trenchMesh.dat @@ -1,8 +1,6 @@ grid_delta 1 -min_extent -25 -25 -40 -max_extent 25 25 0 n_nodes 6579 -n_triangles 12800 +n_elements 12800 n -7 -24 -40 n -7 -25 -40 n -6 -25 -40 @@ -6582,12803 +6580,12803 @@ n 22 25 -1e-12 n 23 25 -1e-12 n 24 25 -1e-12 n 25 25 -1e-12 -t 2 3 1 -t 3 0 1 -t 4 5 2 -t 5 3 2 -t 6 7 4 -t 7 5 4 -t 8 9 6 -t 9 7 6 -t 10 11 8 -t 11 9 8 -t 12 13 10 -t 13 11 10 -t 14 15 12 -t 15 13 12 -t 16 17 14 -t 17 15 14 -t 18 19 16 -t 19 17 16 -t 20 21 18 -t 21 19 18 -t 22 23 20 -t 23 21 20 -t 24 25 22 -t 25 23 22 -t 26 27 24 -t 27 25 24 -t 28 29 26 -t 29 27 26 -t 3 31 0 -t 31 30 0 -t 5 32 3 -t 32 31 3 -t 7 33 5 -t 33 32 5 -t 9 34 7 -t 34 33 7 -t 11 35 9 -t 35 34 9 -t 13 36 11 -t 36 35 11 -t 15 37 13 -t 37 36 13 -t 17 38 15 -t 38 37 15 -t 19 39 17 -t 39 38 17 -t 21 40 19 -t 40 39 19 -t 23 41 21 -t 41 40 21 -t 25 42 23 -t 42 41 23 -t 27 43 25 -t 43 42 25 -t 29 44 27 -t 44 43 27 -t 31 46 30 -t 46 45 30 -t 32 47 31 -t 47 46 31 -t 33 48 32 -t 48 47 32 -t 34 49 33 -t 49 48 33 -t 35 50 34 -t 50 49 34 -t 36 51 35 -t 51 50 35 -t 37 52 36 -t 52 51 36 -t 38 53 37 -t 53 52 37 -t 39 54 38 -t 54 53 38 -t 40 55 39 -t 55 54 39 -t 41 56 40 -t 56 55 40 -t 42 57 41 -t 57 56 41 -t 43 58 42 -t 58 57 42 -t 44 59 43 -t 59 58 43 -t 46 61 45 -t 61 60 45 -t 47 62 46 -t 62 61 46 -t 48 63 47 -t 63 62 47 -t 49 64 48 -t 64 63 48 -t 50 65 49 -t 65 64 49 -t 51 66 50 -t 66 65 50 -t 52 67 51 -t 67 66 51 -t 53 68 52 -t 68 67 52 -t 54 69 53 -t 69 68 53 -t 55 70 54 -t 70 69 54 -t 56 71 55 -t 71 70 55 -t 57 72 56 -t 72 71 56 -t 58 73 57 -t 73 72 57 -t 59 74 58 -t 74 73 58 -t 61 76 60 -t 76 75 60 -t 62 77 61 -t 77 76 61 -t 63 78 62 -t 78 77 62 -t 64 79 63 -t 79 78 63 -t 65 80 64 -t 80 79 64 -t 66 81 65 -t 81 80 65 -t 67 82 66 -t 82 81 66 -t 68 83 67 -t 83 82 67 -t 69 84 68 -t 84 83 68 -t 70 85 69 -t 85 84 69 -t 71 86 70 -t 86 85 70 -t 72 87 71 -t 87 86 71 -t 73 88 72 -t 88 87 72 -t 74 89 73 -t 89 88 73 -t 76 91 75 -t 91 90 75 -t 77 92 76 -t 92 91 76 -t 78 93 77 -t 93 92 77 -t 79 94 78 -t 94 93 78 -t 80 95 79 -t 95 94 79 -t 81 96 80 -t 96 95 80 -t 82 97 81 -t 97 96 81 -t 83 98 82 -t 98 97 82 -t 84 99 83 -t 99 98 83 -t 85 100 84 -t 100 99 84 -t 86 101 85 -t 101 100 85 -t 87 102 86 -t 102 101 86 -t 88 103 87 -t 103 102 87 -t 89 104 88 -t 104 103 88 -t 91 106 90 -t 106 105 90 -t 92 107 91 -t 107 106 91 -t 93 108 92 -t 108 107 92 -t 94 109 93 -t 109 108 93 -t 95 110 94 -t 110 109 94 -t 96 111 95 -t 111 110 95 -t 97 112 96 -t 112 111 96 -t 98 113 97 -t 113 112 97 -t 99 114 98 -t 114 113 98 -t 100 115 99 -t 115 114 99 -t 101 116 100 -t 116 115 100 -t 102 117 101 -t 117 116 101 -t 103 118 102 -t 118 117 102 -t 104 119 103 -t 119 118 103 -t 106 121 105 -t 121 120 105 -t 107 122 106 -t 122 121 106 -t 108 123 107 -t 123 122 107 -t 109 124 108 -t 124 123 108 -t 110 125 109 -t 125 124 109 -t 111 126 110 -t 126 125 110 -t 112 127 111 -t 127 126 111 -t 113 128 112 -t 128 127 112 -t 114 129 113 -t 129 128 113 -t 115 130 114 -t 130 129 114 -t 116 131 115 -t 131 130 115 -t 117 132 116 -t 132 131 116 -t 118 133 117 -t 133 132 117 -t 119 134 118 -t 134 133 118 -t 121 136 120 -t 136 135 120 -t 122 137 121 -t 137 136 121 -t 123 138 122 -t 138 137 122 -t 124 139 123 -t 139 138 123 -t 125 140 124 -t 140 139 124 -t 126 141 125 -t 141 140 125 -t 127 142 126 -t 142 141 126 -t 128 143 127 -t 143 142 127 -t 129 144 128 -t 144 143 128 -t 130 145 129 -t 145 144 129 -t 131 146 130 -t 146 145 130 -t 132 147 131 -t 147 146 131 -t 133 148 132 -t 148 147 132 -t 134 149 133 -t 149 148 133 -t 136 151 135 -t 151 150 135 -t 137 152 136 -t 152 151 136 -t 138 153 137 -t 153 152 137 -t 139 154 138 -t 154 153 138 -t 140 155 139 -t 155 154 139 -t 141 156 140 -t 156 155 140 -t 142 157 141 -t 157 156 141 -t 143 158 142 -t 158 157 142 -t 144 159 143 -t 159 158 143 -t 145 160 144 -t 160 159 144 -t 146 161 145 -t 161 160 145 -t 147 162 146 -t 162 161 146 -t 148 163 147 -t 163 162 147 -t 149 164 148 -t 164 163 148 -t 151 166 150 -t 166 165 150 -t 152 167 151 -t 167 166 151 -t 153 168 152 -t 168 167 152 -t 154 169 153 -t 169 168 153 -t 155 170 154 -t 170 169 154 -t 156 171 155 -t 171 170 155 -t 157 172 156 -t 172 171 156 -t 158 173 157 -t 173 172 157 -t 159 174 158 -t 174 173 158 -t 160 175 159 -t 175 174 159 -t 161 176 160 -t 176 175 160 -t 162 177 161 -t 177 176 161 -t 163 178 162 -t 178 177 162 -t 164 179 163 -t 179 178 163 -t 166 181 165 -t 181 180 165 -t 167 182 166 -t 182 181 166 -t 168 183 167 -t 183 182 167 -t 169 184 168 -t 184 183 168 -t 170 185 169 -t 185 184 169 -t 171 186 170 -t 186 185 170 -t 172 187 171 -t 187 186 171 -t 173 188 172 -t 188 187 172 -t 174 189 173 -t 189 188 173 -t 175 190 174 -t 190 189 174 -t 176 191 175 -t 191 190 175 -t 177 192 176 -t 192 191 176 -t 178 193 177 -t 193 192 177 -t 179 194 178 -t 194 193 178 -t 181 196 180 -t 196 195 180 -t 182 197 181 -t 197 196 181 -t 183 198 182 -t 198 197 182 -t 184 199 183 -t 199 198 183 -t 185 200 184 -t 200 199 184 -t 186 201 185 -t 201 200 185 -t 187 202 186 -t 202 201 186 -t 188 203 187 -t 203 202 187 -t 189 204 188 -t 204 203 188 -t 190 205 189 -t 205 204 189 -t 191 206 190 -t 206 205 190 -t 192 207 191 -t 207 206 191 -t 193 208 192 -t 208 207 192 -t 194 209 193 -t 209 208 193 -t 196 211 195 -t 211 210 195 -t 197 212 196 -t 212 211 196 -t 198 213 197 -t 213 212 197 -t 199 214 198 -t 214 213 198 -t 200 215 199 -t 215 214 199 -t 201 216 200 -t 216 215 200 -t 202 217 201 -t 217 216 201 -t 203 218 202 -t 218 217 202 -t 204 219 203 -t 219 218 203 -t 205 220 204 -t 220 219 204 -t 206 221 205 -t 221 220 205 -t 207 222 206 -t 222 221 206 -t 208 223 207 -t 223 222 207 -t 209 224 208 -t 224 223 208 -t 211 226 210 -t 226 225 210 -t 212 227 211 -t 227 226 211 -t 213 228 212 -t 228 227 212 -t 214 229 213 -t 229 228 213 -t 215 230 214 -t 230 229 214 -t 216 231 215 -t 231 230 215 -t 217 232 216 -t 232 231 216 -t 218 233 217 -t 233 232 217 -t 219 234 218 -t 234 233 218 -t 220 235 219 -t 235 234 219 -t 221 236 220 -t 236 235 220 -t 222 237 221 -t 237 236 221 -t 223 238 222 -t 238 237 222 -t 224 239 223 -t 239 238 223 -t 226 241 225 -t 241 240 225 -t 227 242 226 -t 242 241 226 -t 228 243 227 -t 243 242 227 -t 229 244 228 -t 244 243 228 -t 230 245 229 -t 245 244 229 -t 231 246 230 -t 246 245 230 -t 232 247 231 -t 247 246 231 -t 233 248 232 -t 248 247 232 -t 234 249 233 -t 249 248 233 -t 235 250 234 -t 250 249 234 -t 236 251 235 -t 251 250 235 -t 237 252 236 -t 252 251 236 -t 238 253 237 -t 253 252 237 -t 239 254 238 -t 254 253 238 -t 241 256 240 -t 256 255 240 -t 242 257 241 -t 257 256 241 -t 243 258 242 -t 258 257 242 -t 244 259 243 -t 259 258 243 -t 245 260 244 -t 260 259 244 -t 246 261 245 -t 261 260 245 -t 247 262 246 -t 262 261 246 -t 248 263 247 -t 263 262 247 -t 249 264 248 -t 264 263 248 -t 250 265 249 -t 265 264 249 -t 251 266 250 -t 266 265 250 -t 252 267 251 -t 267 266 251 -t 253 268 252 -t 268 267 252 -t 254 269 253 -t 269 268 253 -t 256 271 255 -t 271 270 255 -t 257 272 256 -t 272 271 256 -t 258 273 257 -t 273 272 257 -t 259 274 258 -t 274 273 258 -t 260 275 259 -t 275 274 259 -t 261 276 260 -t 276 275 260 -t 262 277 261 -t 277 276 261 -t 263 278 262 -t 278 277 262 -t 264 279 263 -t 279 278 263 -t 265 280 264 -t 280 279 264 -t 266 281 265 -t 281 280 265 -t 267 282 266 -t 282 281 266 -t 268 283 267 -t 283 282 267 -t 269 284 268 -t 284 283 268 -t 271 286 270 -t 286 285 270 -t 272 287 271 -t 287 286 271 -t 273 288 272 -t 288 287 272 -t 274 289 273 -t 289 288 273 -t 275 290 274 -t 290 289 274 -t 276 291 275 -t 291 290 275 -t 277 292 276 -t 292 291 276 -t 278 293 277 -t 293 292 277 -t 279 294 278 -t 294 293 278 -t 280 295 279 -t 295 294 279 -t 281 296 280 -t 296 295 280 -t 282 297 281 -t 297 296 281 -t 283 298 282 -t 298 297 282 -t 284 299 283 -t 299 298 283 -t 286 301 285 -t 301 300 285 -t 287 302 286 -t 302 301 286 -t 288 303 287 -t 303 302 287 -t 289 304 288 -t 304 303 288 -t 290 305 289 -t 305 304 289 -t 291 306 290 -t 306 305 290 -t 292 307 291 -t 307 306 291 -t 293 308 292 -t 308 307 292 -t 294 309 293 -t 309 308 293 -t 295 310 294 -t 310 309 294 -t 296 311 295 -t 311 310 295 -t 297 312 296 -t 312 311 296 -t 298 313 297 -t 313 312 297 -t 299 314 298 -t 314 313 298 -t 301 316 300 -t 316 315 300 -t 302 317 301 -t 317 316 301 -t 303 318 302 -t 318 317 302 -t 304 319 303 -t 319 318 303 -t 305 320 304 -t 320 319 304 -t 306 321 305 -t 321 320 305 -t 307 322 306 -t 322 321 306 -t 308 323 307 -t 323 322 307 -t 309 324 308 -t 324 323 308 -t 310 325 309 -t 325 324 309 -t 311 326 310 -t 326 325 310 -t 312 327 311 -t 327 326 311 -t 313 328 312 -t 328 327 312 -t 314 329 313 -t 329 328 313 -t 316 331 315 -t 331 330 315 -t 317 332 316 -t 332 331 316 -t 318 333 317 -t 333 332 317 -t 319 334 318 -t 334 333 318 -t 320 335 319 -t 335 334 319 -t 321 336 320 -t 336 335 320 -t 322 337 321 -t 337 336 321 -t 323 338 322 -t 338 337 322 -t 324 339 323 -t 339 338 323 -t 325 340 324 -t 340 339 324 -t 326 341 325 -t 341 340 325 -t 327 342 326 -t 342 341 326 -t 328 343 327 -t 343 342 327 -t 329 344 328 -t 344 343 328 -t 331 346 330 -t 346 345 330 -t 332 347 331 -t 347 346 331 -t 333 348 332 -t 348 347 332 -t 334 349 333 -t 349 348 333 -t 335 350 334 -t 350 349 334 -t 336 351 335 -t 351 350 335 -t 337 352 336 -t 352 351 336 -t 338 353 337 -t 353 352 337 -t 339 354 338 -t 354 353 338 -t 340 355 339 -t 355 354 339 -t 341 356 340 -t 356 355 340 -t 342 357 341 -t 357 356 341 -t 343 358 342 -t 358 357 342 -t 344 359 343 -t 359 358 343 -t 346 361 345 -t 361 360 345 -t 347 362 346 -t 362 361 346 -t 348 363 347 -t 363 362 347 -t 349 364 348 -t 364 363 348 -t 350 365 349 -t 365 364 349 -t 351 366 350 -t 366 365 350 -t 352 367 351 -t 367 366 351 -t 353 368 352 -t 368 367 352 -t 354 369 353 -t 369 368 353 -t 355 370 354 -t 370 369 354 -t 356 371 355 -t 371 370 355 -t 357 372 356 -t 372 371 356 -t 358 373 357 -t 373 372 357 -t 359 374 358 -t 374 373 358 -t 361 376 360 -t 376 375 360 -t 362 377 361 -t 377 376 361 -t 363 378 362 -t 378 377 362 -t 364 379 363 -t 379 378 363 -t 365 380 364 -t 380 379 364 -t 366 381 365 -t 381 380 365 -t 367 382 366 -t 382 381 366 -t 368 383 367 -t 383 382 367 -t 369 384 368 -t 384 383 368 -t 370 385 369 -t 385 384 369 -t 371 386 370 -t 386 385 370 -t 372 387 371 -t 387 386 371 -t 373 388 372 -t 388 387 372 -t 374 389 373 -t 389 388 373 -t 376 391 375 -t 391 390 375 -t 377 392 376 -t 392 391 376 -t 378 393 377 -t 393 392 377 -t 379 394 378 -t 394 393 378 -t 380 395 379 -t 395 394 379 -t 381 396 380 -t 396 395 380 -t 382 397 381 -t 397 396 381 -t 383 398 382 -t 398 397 382 -t 384 399 383 -t 399 398 383 -t 385 400 384 -t 400 399 384 -t 386 401 385 -t 401 400 385 -t 387 402 386 -t 402 401 386 -t 388 403 387 -t 403 402 387 -t 389 404 388 -t 404 403 388 -t 391 406 390 -t 406 405 390 -t 392 407 391 -t 407 406 391 -t 393 408 392 -t 408 407 392 -t 394 409 393 -t 409 408 393 -t 395 410 394 -t 410 409 394 -t 396 411 395 -t 411 410 395 -t 397 412 396 -t 412 411 396 -t 398 413 397 -t 413 412 397 -t 399 414 398 -t 414 413 398 -t 400 415 399 -t 415 414 399 -t 401 416 400 -t 416 415 400 -t 402 417 401 -t 417 416 401 -t 403 418 402 -t 418 417 402 -t 404 419 403 -t 419 418 403 -t 406 421 405 -t 421 420 405 -t 407 422 406 -t 422 421 406 -t 408 423 407 -t 423 422 407 -t 409 424 408 -t 424 423 408 -t 410 425 409 -t 425 424 409 -t 411 426 410 -t 426 425 410 -t 412 427 411 -t 427 426 411 -t 413 428 412 -t 428 427 412 -t 414 429 413 -t 429 428 413 -t 415 430 414 -t 430 429 414 -t 416 431 415 -t 431 430 415 -t 417 432 416 -t 432 431 416 -t 418 433 417 -t 433 432 417 -t 419 434 418 -t 434 433 418 -t 421 436 420 -t 436 435 420 -t 422 437 421 -t 437 436 421 -t 423 438 422 -t 438 437 422 -t 424 439 423 -t 439 438 423 -t 425 440 424 -t 440 439 424 -t 426 441 425 -t 441 440 425 -t 427 442 426 -t 442 441 426 -t 428 443 427 -t 443 442 427 -t 429 444 428 -t 444 443 428 -t 430 445 429 -t 445 444 429 -t 431 446 430 -t 446 445 430 -t 432 447 431 -t 447 446 431 -t 433 448 432 -t 448 447 432 -t 434 449 433 -t 449 448 433 -t 436 451 435 -t 451 450 435 -t 437 452 436 -t 452 451 436 -t 438 453 437 -t 453 452 437 -t 439 454 438 -t 454 453 438 -t 440 455 439 -t 455 454 439 -t 441 456 440 -t 456 455 440 -t 442 457 441 -t 457 456 441 -t 443 458 442 -t 458 457 442 -t 444 459 443 -t 459 458 443 -t 445 460 444 -t 460 459 444 -t 446 461 445 -t 461 460 445 -t 447 462 446 -t 462 461 446 -t 448 463 447 -t 463 462 447 -t 449 464 448 -t 464 463 448 -t 451 466 450 -t 466 465 450 -t 452 467 451 -t 467 466 451 -t 453 468 452 -t 468 467 452 -t 454 469 453 -t 469 468 453 -t 455 470 454 -t 470 469 454 -t 456 471 455 -t 471 470 455 -t 457 472 456 -t 472 471 456 -t 458 473 457 -t 473 472 457 -t 459 474 458 -t 474 473 458 -t 460 475 459 -t 475 474 459 -t 461 476 460 -t 476 475 460 -t 462 477 461 -t 477 476 461 -t 463 478 462 -t 478 477 462 -t 464 479 463 -t 479 478 463 -t 466 481 465 -t 481 480 465 -t 467 482 466 -t 482 481 466 -t 468 483 467 -t 483 482 467 -t 469 484 468 -t 484 483 468 -t 470 485 469 -t 485 484 469 -t 471 486 470 -t 486 485 470 -t 472 487 471 -t 487 486 471 -t 473 488 472 -t 488 487 472 -t 474 489 473 -t 489 488 473 -t 475 490 474 -t 490 489 474 -t 476 491 475 -t 491 490 475 -t 477 492 476 -t 492 491 476 -t 478 493 477 -t 493 492 477 -t 479 494 478 -t 494 493 478 -t 481 496 480 -t 496 495 480 -t 482 497 481 -t 497 496 481 -t 483 498 482 -t 498 497 482 -t 484 499 483 -t 499 498 483 -t 485 500 484 -t 500 499 484 -t 486 501 485 -t 501 500 485 -t 487 502 486 -t 502 501 486 -t 488 503 487 -t 503 502 487 -t 489 504 488 -t 504 503 488 -t 490 505 489 -t 505 504 489 -t 491 506 490 -t 506 505 490 -t 492 507 491 -t 507 506 491 -t 493 508 492 -t 508 507 492 -t 494 509 493 -t 509 508 493 -t 496 511 495 -t 511 510 495 -t 497 512 496 -t 512 511 496 -t 498 513 497 -t 513 512 497 -t 499 514 498 -t 514 513 498 -t 500 515 499 -t 515 514 499 -t 501 516 500 -t 516 515 500 -t 502 517 501 -t 517 516 501 -t 503 518 502 -t 518 517 502 -t 504 519 503 -t 519 518 503 -t 505 520 504 -t 520 519 504 -t 506 521 505 -t 521 520 505 -t 507 522 506 -t 522 521 506 -t 508 523 507 -t 523 522 507 -t 509 524 508 -t 524 523 508 -t 511 526 510 -t 526 525 510 -t 512 527 511 -t 527 526 511 -t 513 528 512 -t 528 527 512 -t 514 529 513 -t 529 528 513 -t 515 530 514 -t 530 529 514 -t 516 531 515 -t 531 530 515 -t 517 532 516 -t 532 531 516 -t 518 533 517 -t 533 532 517 -t 519 534 518 -t 534 533 518 -t 520 535 519 -t 535 534 519 -t 521 536 520 -t 536 535 520 -t 522 537 521 -t 537 536 521 -t 523 538 522 -t 538 537 522 -t 524 539 523 -t 539 538 523 -t 526 541 525 -t 541 540 525 -t 527 542 526 -t 542 541 526 -t 528 543 527 -t 543 542 527 -t 529 544 528 -t 544 543 528 -t 530 545 529 -t 545 544 529 -t 531 546 530 -t 546 545 530 -t 532 547 531 -t 547 546 531 -t 533 548 532 -t 548 547 532 -t 534 549 533 -t 549 548 533 -t 535 550 534 -t 550 549 534 -t 536 551 535 -t 551 550 535 -t 537 552 536 -t 552 551 536 -t 538 553 537 -t 553 552 537 -t 539 554 538 -t 554 553 538 -t 541 556 540 -t 556 555 540 -t 542 557 541 -t 557 556 541 -t 543 558 542 -t 558 557 542 -t 544 559 543 -t 559 558 543 -t 545 560 544 -t 560 559 544 -t 546 561 545 -t 561 560 545 -t 547 562 546 -t 562 561 546 -t 548 563 547 -t 563 562 547 -t 549 564 548 -t 564 563 548 -t 550 565 549 -t 565 564 549 -t 551 566 550 -t 566 565 550 -t 552 567 551 -t 567 566 551 -t 553 568 552 -t 568 567 552 -t 554 569 553 -t 569 568 553 -t 556 571 555 -t 571 570 555 -t 557 572 556 -t 572 571 556 -t 558 573 557 -t 573 572 557 -t 559 574 558 -t 574 573 558 -t 560 575 559 -t 575 574 559 -t 561 576 560 -t 576 575 560 -t 562 577 561 -t 577 576 561 -t 563 578 562 -t 578 577 562 -t 564 579 563 -t 579 578 563 -t 565 580 564 -t 580 579 564 -t 566 581 565 -t 581 580 565 -t 567 582 566 -t 582 581 566 -t 568 583 567 -t 583 582 567 -t 569 584 568 -t 584 583 568 -t 571 586 570 -t 586 585 570 -t 572 587 571 -t 587 586 571 -t 573 588 572 -t 588 587 572 -t 574 589 573 -t 589 588 573 -t 575 590 574 -t 590 589 574 -t 576 591 575 -t 591 590 575 -t 577 592 576 -t 592 591 576 -t 578 593 577 -t 593 592 577 -t 579 594 578 -t 594 593 578 -t 580 595 579 -t 595 594 579 -t 581 596 580 -t 596 595 580 -t 582 597 581 -t 597 596 581 -t 583 598 582 -t 598 597 582 -t 584 599 583 -t 599 598 583 -t 586 601 585 -t 601 600 585 -t 587 602 586 -t 602 601 586 -t 588 603 587 -t 603 602 587 -t 589 604 588 -t 604 603 588 -t 590 605 589 -t 605 604 589 -t 591 606 590 -t 606 605 590 -t 592 607 591 -t 607 606 591 -t 593 608 592 -t 608 607 592 -t 594 609 593 -t 609 608 593 -t 595 610 594 -t 610 609 594 -t 596 611 595 -t 611 610 595 -t 597 612 596 -t 612 611 596 -t 598 613 597 -t 613 612 597 -t 599 614 598 -t 614 613 598 -t 601 616 600 -t 616 615 600 -t 602 617 601 -t 617 616 601 -t 603 618 602 -t 618 617 602 -t 604 619 603 -t 619 618 603 -t 605 620 604 -t 620 619 604 -t 606 621 605 -t 621 620 605 -t 607 622 606 -t 622 621 606 -t 608 623 607 -t 623 622 607 -t 609 624 608 -t 624 623 608 -t 610 625 609 -t 625 624 609 -t 611 626 610 -t 626 625 610 -t 612 627 611 -t 627 626 611 -t 613 628 612 -t 628 627 612 -t 614 629 613 -t 629 628 613 -t 616 631 615 -t 631 630 615 -t 617 632 616 -t 632 631 616 -t 618 633 617 -t 633 632 617 -t 619 634 618 -t 634 633 618 -t 620 635 619 -t 635 634 619 -t 621 636 620 -t 636 635 620 -t 622 637 621 -t 637 636 621 -t 623 638 622 -t 638 637 622 -t 624 639 623 -t 639 638 623 -t 625 640 624 -t 640 639 624 -t 626 641 625 -t 641 640 625 -t 627 642 626 -t 642 641 626 -t 628 643 627 -t 643 642 627 -t 629 644 628 -t 644 643 628 -t 631 646 630 -t 646 645 630 -t 632 647 631 -t 647 646 631 -t 633 648 632 -t 648 647 632 -t 634 649 633 -t 649 648 633 -t 635 650 634 -t 650 649 634 -t 636 651 635 -t 651 650 635 -t 637 652 636 -t 652 651 636 -t 638 653 637 -t 653 652 637 -t 639 654 638 -t 654 653 638 -t 640 655 639 -t 655 654 639 -t 641 656 640 -t 656 655 640 -t 642 657 641 -t 657 656 641 -t 643 658 642 -t 658 657 642 -t 644 659 643 -t 659 658 643 -t 646 661 645 -t 661 660 645 -t 647 662 646 -t 662 661 646 -t 648 663 647 -t 663 662 647 -t 649 664 648 -t 664 663 648 -t 650 665 649 -t 665 664 649 -t 651 666 650 -t 666 665 650 -t 652 667 651 -t 667 666 651 -t 653 668 652 -t 668 667 652 -t 654 669 653 -t 669 668 653 -t 655 670 654 -t 670 669 654 -t 656 671 655 -t 671 670 655 -t 657 672 656 -t 672 671 656 -t 658 673 657 -t 673 672 657 -t 659 674 658 -t 674 673 658 -t 661 676 660 -t 676 675 660 -t 662 677 661 -t 677 676 661 -t 663 678 662 -t 678 677 662 -t 664 679 663 -t 679 678 663 -t 665 680 664 -t 680 679 664 -t 666 681 665 -t 681 680 665 -t 667 682 666 -t 682 681 666 -t 668 683 667 -t 683 682 667 -t 669 684 668 -t 684 683 668 -t 670 685 669 -t 685 684 669 -t 671 686 670 -t 686 685 670 -t 672 687 671 -t 687 686 671 -t 673 688 672 -t 688 687 672 -t 674 689 673 -t 689 688 673 -t 676 691 675 -t 691 690 675 -t 677 692 676 -t 692 691 676 -t 678 693 677 -t 693 692 677 -t 679 694 678 -t 694 693 678 -t 680 695 679 -t 695 694 679 -t 681 696 680 -t 696 695 680 -t 682 697 681 -t 697 696 681 -t 683 698 682 -t 698 697 682 -t 684 699 683 -t 699 698 683 -t 685 700 684 -t 700 699 684 -t 686 701 685 -t 701 700 685 -t 687 702 686 -t 702 701 686 -t 688 703 687 -t 703 702 687 -t 689 704 688 -t 704 703 688 -t 691 706 690 -t 706 705 690 -t 692 707 691 -t 707 706 691 -t 693 708 692 -t 708 707 692 -t 694 709 693 -t 709 708 693 -t 695 710 694 -t 710 709 694 -t 696 711 695 -t 711 710 695 -t 697 712 696 -t 712 711 696 -t 698 713 697 -t 713 712 697 -t 699 714 698 -t 714 713 698 -t 700 715 699 -t 715 714 699 -t 701 716 700 -t 716 715 700 -t 702 717 701 -t 717 716 701 -t 703 718 702 -t 718 717 702 -t 704 719 703 -t 719 718 703 -t 706 721 705 -t 721 720 705 -t 707 722 706 -t 722 721 706 -t 708 723 707 -t 723 722 707 -t 709 724 708 -t 724 723 708 -t 710 725 709 -t 725 724 709 -t 711 726 710 -t 726 725 710 -t 712 727 711 -t 727 726 711 -t 713 728 712 -t 728 727 712 -t 714 729 713 -t 729 728 713 -t 715 730 714 -t 730 729 714 -t 716 731 715 -t 731 730 715 -t 717 732 716 -t 732 731 716 -t 718 733 717 -t 733 732 717 -t 719 734 718 -t 734 733 718 -t 721 736 720 -t 736 735 720 -t 722 737 721 -t 737 736 721 -t 723 738 722 -t 738 737 722 -t 724 739 723 -t 739 738 723 -t 725 740 724 -t 740 739 724 -t 726 741 725 -t 741 740 725 -t 727 742 726 -t 742 741 726 -t 728 743 727 -t 743 742 727 -t 729 744 728 -t 744 743 728 -t 730 745 729 -t 745 744 729 -t 731 746 730 -t 746 745 730 -t 732 747 731 -t 747 746 731 -t 733 748 732 -t 748 747 732 -t 734 749 733 -t 749 748 733 -t 736 751 735 -t 751 750 735 -t 737 752 736 -t 752 751 736 -t 738 753 737 -t 753 752 737 -t 739 754 738 -t 754 753 738 -t 740 755 739 -t 755 754 739 -t 741 756 740 -t 756 755 740 -t 742 757 741 -t 757 756 741 -t 743 758 742 -t 758 757 742 -t 744 759 743 -t 759 758 743 -t 745 760 744 -t 760 759 744 -t 746 761 745 -t 761 760 745 -t 747 762 746 -t 762 761 746 -t 748 763 747 -t 763 762 747 -t 749 764 748 -t 764 763 748 -t 1 0 765 -t 765 0 766 -t 28 767 29 -t 767 768 29 -t 0 30 766 -t 766 30 769 -t 29 768 44 -t 768 770 44 -t 30 45 769 -t 769 45 771 -t 44 770 59 -t 770 772 59 -t 45 60 771 -t 771 60 773 -t 59 772 74 -t 772 774 74 -t 60 75 773 -t 773 75 775 -t 74 774 89 -t 774 776 89 -t 75 90 775 -t 775 90 777 -t 89 776 104 -t 776 778 104 -t 90 105 777 -t 777 105 779 -t 104 778 119 -t 778 780 119 -t 105 120 779 -t 779 120 781 -t 119 780 134 -t 780 782 134 -t 120 135 781 -t 781 135 783 -t 134 782 149 -t 782 784 149 -t 135 150 783 -t 783 150 785 -t 149 784 164 -t 784 786 164 -t 150 165 785 -t 785 165 787 -t 164 786 179 -t 786 788 179 -t 165 180 787 -t 787 180 789 -t 179 788 194 -t 788 790 194 -t 180 195 789 -t 789 195 791 -t 194 790 209 -t 790 792 209 -t 195 210 791 -t 791 210 793 -t 209 792 224 -t 792 794 224 -t 210 225 793 -t 793 225 795 -t 224 794 239 -t 794 796 239 -t 225 240 795 -t 795 240 797 -t 239 796 254 -t 796 798 254 -t 240 255 797 -t 797 255 799 -t 254 798 269 -t 798 800 269 -t 255 270 799 -t 799 270 801 -t 269 800 284 -t 800 802 284 -t 270 285 801 -t 801 285 803 -t 284 802 299 -t 802 804 299 -t 285 300 803 -t 803 300 805 -t 299 804 314 -t 804 806 314 -t 300 315 805 -t 805 315 807 -t 314 806 329 -t 806 808 329 -t 315 330 807 -t 807 330 809 -t 329 808 344 -t 808 810 344 -t 330 345 809 -t 809 345 811 -t 344 810 359 -t 810 812 359 -t 345 360 811 -t 811 360 813 -t 359 812 374 -t 812 814 374 -t 360 375 813 -t 813 375 815 -t 374 814 389 -t 814 816 389 -t 375 390 815 -t 815 390 817 -t 389 816 404 -t 816 818 404 -t 390 405 817 -t 817 405 819 -t 404 818 419 -t 818 820 419 -t 405 420 819 -t 819 420 821 -t 419 820 434 -t 820 822 434 -t 420 435 821 -t 821 435 823 -t 434 822 449 -t 822 824 449 -t 435 450 823 -t 823 450 825 -t 449 824 464 -t 824 826 464 -t 450 465 825 -t 825 465 827 -t 464 826 479 -t 826 828 479 -t 465 480 827 -t 827 480 829 -t 479 828 494 -t 828 830 494 -t 480 495 829 -t 829 495 831 -t 494 830 509 -t 830 832 509 -t 495 510 831 -t 831 510 833 -t 509 832 524 -t 832 834 524 -t 510 525 833 -t 833 525 835 -t 524 834 539 -t 834 836 539 -t 525 540 835 -t 835 540 837 -t 539 836 554 -t 836 838 554 -t 540 555 837 -t 837 555 839 -t 554 838 569 -t 838 840 569 -t 555 570 839 -t 839 570 841 -t 569 840 584 -t 840 842 584 -t 570 585 841 -t 841 585 843 -t 584 842 599 -t 842 844 599 -t 585 600 843 -t 843 600 845 -t 599 844 614 -t 844 846 614 -t 600 615 845 -t 845 615 847 -t 614 846 629 -t 846 848 629 -t 615 630 847 -t 847 630 849 -t 629 848 644 -t 848 850 644 -t 630 645 849 -t 849 645 851 -t 644 850 659 -t 850 852 659 -t 645 660 851 -t 851 660 853 -t 659 852 674 -t 852 854 674 -t 660 675 853 -t 853 675 855 -t 674 854 689 -t 854 856 689 -t 675 690 855 -t 855 690 857 -t 689 856 704 -t 856 858 704 -t 690 705 857 -t 857 705 859 -t 704 858 719 -t 858 860 719 -t 705 720 859 -t 859 720 861 -t 719 860 734 -t 860 862 734 -t 720 735 861 -t 861 735 863 -t 734 862 749 -t 862 864 749 -t 735 750 863 -t 863 750 865 -t 749 864 764 -t 864 866 764 -t 765 766 867 -t 867 766 868 -t 767 869 768 -t 869 870 768 -t 766 769 868 -t 868 769 871 -t 768 870 770 -t 870 872 770 -t 769 771 871 -t 871 771 873 -t 770 872 772 -t 872 874 772 -t 771 773 873 -t 873 773 875 -t 772 874 774 -t 874 876 774 -t 773 775 875 -t 875 775 877 -t 774 876 776 -t 876 878 776 -t 775 777 877 -t 877 777 879 -t 776 878 778 -t 878 880 778 -t 777 779 879 -t 879 779 881 -t 778 880 780 -t 880 882 780 -t 779 781 881 -t 881 781 883 -t 780 882 782 -t 882 884 782 -t 781 783 883 -t 883 783 885 -t 782 884 784 -t 884 886 784 -t 783 785 885 -t 885 785 887 -t 784 886 786 -t 886 888 786 -t 785 787 887 -t 887 787 889 -t 786 888 788 -t 888 890 788 -t 787 789 889 -t 889 789 891 -t 788 890 790 -t 890 892 790 -t 789 791 891 -t 891 791 893 -t 790 892 792 -t 892 894 792 -t 791 793 893 -t 893 793 895 -t 792 894 794 -t 894 896 794 -t 793 795 895 -t 895 795 897 -t 794 896 796 -t 896 898 796 -t 795 797 897 -t 897 797 899 -t 796 898 798 -t 898 900 798 -t 797 799 899 -t 899 799 901 -t 798 900 800 -t 900 902 800 -t 799 801 901 -t 901 801 903 -t 800 902 802 -t 902 904 802 -t 801 803 903 -t 903 803 905 -t 802 904 804 -t 904 906 804 -t 803 805 905 -t 905 805 907 -t 804 906 806 -t 906 908 806 -t 805 807 907 -t 907 807 909 -t 806 908 808 -t 908 910 808 -t 807 809 909 -t 909 809 911 -t 808 910 810 -t 910 912 810 -t 809 811 911 -t 911 811 913 -t 810 912 812 -t 912 914 812 -t 811 813 913 -t 913 813 915 -t 812 914 814 -t 914 916 814 -t 813 815 915 -t 915 815 917 -t 814 916 816 -t 916 918 816 -t 815 817 917 -t 917 817 919 -t 816 918 818 -t 918 920 818 -t 817 819 919 -t 919 819 921 -t 818 920 820 -t 920 922 820 -t 819 821 921 -t 921 821 923 -t 820 922 822 -t 922 924 822 -t 821 823 923 -t 923 823 925 -t 822 924 824 -t 924 926 824 -t 823 825 925 -t 925 825 927 -t 824 926 826 -t 926 928 826 -t 825 827 927 -t 927 827 929 -t 826 928 828 -t 928 930 828 -t 827 829 929 -t 929 829 931 -t 828 930 830 -t 930 932 830 -t 829 831 931 -t 931 831 933 -t 830 932 832 -t 932 934 832 -t 831 833 933 -t 933 833 935 -t 832 934 834 -t 934 936 834 -t 833 835 935 -t 935 835 937 -t 834 936 836 -t 936 938 836 -t 835 837 937 -t 937 837 939 -t 836 938 838 -t 938 940 838 -t 837 839 939 -t 939 839 941 -t 838 940 840 -t 940 942 840 -t 839 841 941 -t 941 841 943 -t 840 942 842 -t 942 944 842 -t 841 843 943 -t 943 843 945 -t 842 944 844 -t 944 946 844 -t 843 845 945 -t 945 845 947 -t 844 946 846 -t 946 948 846 -t 845 847 947 -t 947 847 949 -t 846 948 848 -t 948 950 848 -t 847 849 949 -t 949 849 951 -t 848 950 850 -t 950 952 850 -t 849 851 951 -t 951 851 953 -t 850 952 852 -t 952 954 852 -t 851 853 953 -t 953 853 955 -t 852 954 854 -t 954 956 854 -t 853 855 955 -t 955 855 957 -t 854 956 856 -t 956 958 856 -t 855 857 957 -t 957 857 959 -t 856 958 858 -t 958 960 858 -t 857 859 959 -t 959 859 961 -t 858 960 860 -t 960 962 860 -t 859 861 961 -t 961 861 963 -t 860 962 862 -t 962 964 862 -t 861 863 963 -t 963 863 965 -t 862 964 864 -t 964 966 864 -t 863 865 965 -t 965 865 967 -t 864 966 866 -t 966 968 866 -t 867 868 969 -t 969 868 970 -t 869 971 870 -t 971 972 870 -t 868 871 970 -t 970 871 973 -t 870 972 872 -t 972 974 872 -t 871 873 973 -t 973 873 975 -t 872 974 874 -t 974 976 874 -t 873 875 975 -t 975 875 977 -t 874 976 876 -t 976 978 876 -t 875 877 977 -t 977 877 979 -t 876 978 878 -t 978 980 878 -t 877 879 979 -t 979 879 981 -t 878 980 880 -t 980 982 880 -t 879 881 981 -t 981 881 983 -t 880 982 882 -t 982 984 882 -t 881 883 983 -t 983 883 985 -t 882 984 884 -t 984 986 884 -t 883 885 985 -t 985 885 987 -t 884 986 886 -t 986 988 886 -t 885 887 987 -t 987 887 989 -t 886 988 888 -t 988 990 888 -t 887 889 989 -t 989 889 991 -t 888 990 890 -t 990 992 890 -t 889 891 991 -t 991 891 993 -t 890 992 892 -t 992 994 892 -t 891 893 993 -t 993 893 995 -t 892 994 894 -t 994 996 894 -t 893 895 995 -t 995 895 997 -t 894 996 896 -t 996 998 896 -t 895 897 997 -t 997 897 999 -t 896 998 898 -t 998 1000 898 -t 897 899 999 -t 999 899 1001 -t 898 1000 900 -t 1000 1002 900 -t 899 901 1001 -t 1001 901 1003 -t 900 1002 902 -t 1002 1004 902 -t 901 903 1003 -t 1003 903 1005 -t 902 1004 904 -t 1004 1006 904 -t 903 905 1005 -t 1005 905 1007 -t 904 1006 906 -t 1006 1008 906 -t 905 907 1007 -t 1007 907 1009 -t 906 1008 908 -t 1008 1010 908 -t 907 909 1009 -t 1009 909 1011 -t 908 1010 910 -t 1010 1012 910 -t 909 911 1011 -t 1011 911 1013 -t 910 1012 912 -t 1012 1014 912 -t 911 913 1013 -t 1013 913 1015 -t 912 1014 914 -t 1014 1016 914 -t 913 915 1015 -t 1015 915 1017 -t 914 1016 916 -t 1016 1018 916 -t 915 917 1017 -t 1017 917 1019 -t 916 1018 918 -t 1018 1020 918 -t 917 919 1019 -t 1019 919 1021 -t 918 1020 920 -t 1020 1022 920 -t 919 921 1021 -t 1021 921 1023 -t 920 1022 922 -t 1022 1024 922 -t 921 923 1023 -t 1023 923 1025 -t 922 1024 924 -t 1024 1026 924 -t 923 925 1025 -t 1025 925 1027 -t 924 1026 926 -t 1026 1028 926 -t 925 927 1027 -t 1027 927 1029 -t 926 1028 928 -t 1028 1030 928 -t 927 929 1029 -t 1029 929 1031 -t 928 1030 930 -t 1030 1032 930 -t 929 931 1031 -t 1031 931 1033 -t 930 1032 932 -t 1032 1034 932 -t 931 933 1033 -t 1033 933 1035 -t 932 1034 934 -t 1034 1036 934 -t 933 935 1035 -t 1035 935 1037 -t 934 1036 936 -t 1036 1038 936 -t 935 937 1037 -t 1037 937 1039 -t 936 1038 938 -t 1038 1040 938 -t 937 939 1039 -t 1039 939 1041 -t 938 1040 940 -t 1040 1042 940 -t 939 941 1041 -t 1041 941 1043 -t 940 1042 942 -t 1042 1044 942 -t 941 943 1043 -t 1043 943 1045 -t 942 1044 944 -t 1044 1046 944 -t 943 945 1045 -t 1045 945 1047 -t 944 1046 946 -t 1046 1048 946 -t 945 947 1047 -t 1047 947 1049 -t 946 1048 948 -t 1048 1050 948 -t 947 949 1049 -t 1049 949 1051 -t 948 1050 950 -t 1050 1052 950 -t 949 951 1051 -t 1051 951 1053 -t 950 1052 952 -t 1052 1054 952 -t 951 953 1053 -t 1053 953 1055 -t 952 1054 954 -t 1054 1056 954 -t 953 955 1055 -t 1055 955 1057 -t 954 1056 956 -t 1056 1058 956 -t 955 957 1057 -t 1057 957 1059 -t 956 1058 958 -t 1058 1060 958 -t 957 959 1059 -t 1059 959 1061 -t 958 1060 960 -t 1060 1062 960 -t 959 961 1061 -t 1061 961 1063 -t 960 1062 962 -t 1062 1064 962 -t 961 963 1063 -t 1063 963 1065 -t 962 1064 964 -t 1064 1066 964 -t 963 965 1065 -t 1065 965 1067 -t 964 1066 966 -t 1066 1068 966 -t 965 967 1067 -t 1067 967 1069 -t 966 1068 968 -t 1068 1070 968 -t 969 970 1071 -t 1071 970 1072 -t 971 1073 972 -t 1073 1074 972 -t 970 973 1072 -t 1072 973 1075 -t 972 1074 974 -t 1074 1076 974 -t 973 975 1075 -t 1075 975 1077 -t 974 1076 976 -t 1076 1078 976 -t 975 977 1077 -t 1077 977 1079 -t 976 1078 978 -t 1078 1080 978 -t 977 979 1079 -t 1079 979 1081 -t 978 1080 980 -t 1080 1082 980 -t 979 981 1081 -t 1081 981 1083 -t 980 1082 982 -t 1082 1084 982 -t 981 983 1083 -t 1083 983 1085 -t 982 1084 984 -t 1084 1086 984 -t 983 985 1085 -t 1085 985 1087 -t 984 1086 986 -t 1086 1088 986 -t 985 987 1087 -t 1087 987 1089 -t 986 1088 988 -t 1088 1090 988 -t 987 989 1089 -t 1089 989 1091 -t 988 1090 990 -t 1090 1092 990 -t 989 991 1091 -t 1091 991 1093 -t 990 1092 992 -t 1092 1094 992 -t 991 993 1093 -t 1093 993 1095 -t 992 1094 994 -t 1094 1096 994 -t 993 995 1095 -t 1095 995 1097 -t 994 1096 996 -t 1096 1098 996 -t 995 997 1097 -t 1097 997 1099 -t 996 1098 998 -t 1098 1100 998 -t 997 999 1099 -t 1099 999 1101 -t 998 1100 1000 -t 1100 1102 1000 -t 999 1001 1101 -t 1101 1001 1103 -t 1000 1102 1002 -t 1102 1104 1002 -t 1001 1003 1103 -t 1103 1003 1105 -t 1002 1104 1004 -t 1104 1106 1004 -t 1003 1005 1105 -t 1105 1005 1107 -t 1004 1106 1006 -t 1106 1108 1006 -t 1005 1007 1107 -t 1107 1007 1109 -t 1006 1108 1008 -t 1108 1110 1008 -t 1007 1009 1109 -t 1109 1009 1111 -t 1008 1110 1010 -t 1110 1112 1010 -t 1009 1011 1111 -t 1111 1011 1113 -t 1010 1112 1012 -t 1112 1114 1012 -t 1011 1013 1113 -t 1113 1013 1115 -t 1012 1114 1014 -t 1114 1116 1014 -t 1013 1015 1115 -t 1115 1015 1117 -t 1014 1116 1016 -t 1116 1118 1016 -t 1015 1017 1117 -t 1117 1017 1119 -t 1016 1118 1018 -t 1118 1120 1018 -t 1017 1019 1119 -t 1119 1019 1121 -t 1018 1120 1020 -t 1120 1122 1020 -t 1019 1021 1121 -t 1121 1021 1123 -t 1020 1122 1022 -t 1122 1124 1022 -t 1021 1023 1123 -t 1123 1023 1125 -t 1022 1124 1024 -t 1124 1126 1024 -t 1023 1025 1125 -t 1125 1025 1127 -t 1024 1126 1026 -t 1126 1128 1026 -t 1025 1027 1127 -t 1127 1027 1129 -t 1026 1128 1028 -t 1128 1130 1028 -t 1027 1029 1129 -t 1129 1029 1131 -t 1028 1130 1030 -t 1130 1132 1030 -t 1029 1031 1131 -t 1131 1031 1133 -t 1030 1132 1032 -t 1132 1134 1032 -t 1031 1033 1133 -t 1133 1033 1135 -t 1032 1134 1034 -t 1134 1136 1034 -t 1033 1035 1135 -t 1135 1035 1137 -t 1034 1136 1036 -t 1136 1138 1036 -t 1035 1037 1137 -t 1137 1037 1139 -t 1036 1138 1038 -t 1138 1140 1038 -t 1037 1039 1139 -t 1139 1039 1141 -t 1038 1140 1040 -t 1140 1142 1040 -t 1039 1041 1141 -t 1141 1041 1143 -t 1040 1142 1042 -t 1142 1144 1042 -t 1041 1043 1143 -t 1143 1043 1145 -t 1042 1144 1044 -t 1144 1146 1044 -t 1043 1045 1145 -t 1145 1045 1147 -t 1044 1146 1046 -t 1146 1148 1046 -t 1045 1047 1147 -t 1147 1047 1149 -t 1046 1148 1048 -t 1148 1150 1048 -t 1047 1049 1149 -t 1149 1049 1151 -t 1048 1150 1050 -t 1150 1152 1050 -t 1049 1051 1151 -t 1151 1051 1153 -t 1050 1152 1052 -t 1152 1154 1052 -t 1051 1053 1153 -t 1153 1053 1155 -t 1052 1154 1054 -t 1154 1156 1054 -t 1053 1055 1155 -t 1155 1055 1157 -t 1054 1156 1056 -t 1156 1158 1056 -t 1055 1057 1157 -t 1157 1057 1159 -t 1056 1158 1058 -t 1158 1160 1058 -t 1057 1059 1159 -t 1159 1059 1161 -t 1058 1160 1060 -t 1160 1162 1060 -t 1059 1061 1161 -t 1161 1061 1163 -t 1060 1162 1062 -t 1162 1164 1062 -t 1061 1063 1163 -t 1163 1063 1165 -t 1062 1164 1064 -t 1164 1166 1064 -t 1063 1065 1165 -t 1165 1065 1167 -t 1064 1166 1066 -t 1166 1168 1066 -t 1065 1067 1167 -t 1167 1067 1169 -t 1066 1168 1068 -t 1168 1170 1068 -t 1067 1069 1169 -t 1169 1069 1171 -t 1068 1170 1070 -t 1170 1172 1070 -t 1071 1072 1173 -t 1173 1072 1174 -t 1073 1175 1074 -t 1175 1176 1074 -t 1072 1075 1174 -t 1174 1075 1177 -t 1074 1176 1076 -t 1176 1178 1076 -t 1075 1077 1177 -t 1177 1077 1179 -t 1076 1178 1078 -t 1178 1180 1078 -t 1077 1079 1179 -t 1179 1079 1181 -t 1078 1180 1080 -t 1180 1182 1080 -t 1079 1081 1181 -t 1181 1081 1183 -t 1080 1182 1082 -t 1182 1184 1082 -t 1081 1083 1183 -t 1183 1083 1185 -t 1082 1184 1084 -t 1184 1186 1084 -t 1083 1085 1185 -t 1185 1085 1187 -t 1084 1186 1086 -t 1186 1188 1086 -t 1085 1087 1187 -t 1187 1087 1189 -t 1086 1188 1088 -t 1188 1190 1088 -t 1087 1089 1189 -t 1189 1089 1191 -t 1088 1190 1090 -t 1190 1192 1090 -t 1089 1091 1191 -t 1191 1091 1193 -t 1090 1192 1092 -t 1192 1194 1092 -t 1091 1093 1193 -t 1193 1093 1195 -t 1092 1194 1094 -t 1194 1196 1094 -t 1093 1095 1195 -t 1195 1095 1197 -t 1094 1196 1096 -t 1196 1198 1096 -t 1095 1097 1197 -t 1197 1097 1199 -t 1096 1198 1098 -t 1198 1200 1098 -t 1097 1099 1199 -t 1199 1099 1201 -t 1098 1200 1100 -t 1200 1202 1100 -t 1099 1101 1201 -t 1201 1101 1203 -t 1100 1202 1102 -t 1202 1204 1102 -t 1101 1103 1203 -t 1203 1103 1205 -t 1102 1204 1104 -t 1204 1206 1104 -t 1103 1105 1205 -t 1205 1105 1207 -t 1104 1206 1106 -t 1206 1208 1106 -t 1105 1107 1207 -t 1207 1107 1209 -t 1106 1208 1108 -t 1208 1210 1108 -t 1107 1109 1209 -t 1209 1109 1211 -t 1108 1210 1110 -t 1210 1212 1110 -t 1109 1111 1211 -t 1211 1111 1213 -t 1110 1212 1112 -t 1212 1214 1112 -t 1111 1113 1213 -t 1213 1113 1215 -t 1112 1214 1114 -t 1214 1216 1114 -t 1113 1115 1215 -t 1215 1115 1217 -t 1114 1216 1116 -t 1216 1218 1116 -t 1115 1117 1217 -t 1217 1117 1219 -t 1116 1218 1118 -t 1218 1220 1118 -t 1117 1119 1219 -t 1219 1119 1221 -t 1118 1220 1120 -t 1220 1222 1120 -t 1119 1121 1221 -t 1221 1121 1223 -t 1120 1222 1122 -t 1222 1224 1122 -t 1121 1123 1223 -t 1223 1123 1225 -t 1122 1224 1124 -t 1224 1226 1124 -t 1123 1125 1225 -t 1225 1125 1227 -t 1124 1226 1126 -t 1226 1228 1126 -t 1125 1127 1227 -t 1227 1127 1229 -t 1126 1228 1128 -t 1228 1230 1128 -t 1127 1129 1229 -t 1229 1129 1231 -t 1128 1230 1130 -t 1230 1232 1130 -t 1129 1131 1231 -t 1231 1131 1233 -t 1130 1232 1132 -t 1232 1234 1132 -t 1131 1133 1233 -t 1233 1133 1235 -t 1132 1234 1134 -t 1234 1236 1134 -t 1133 1135 1235 -t 1235 1135 1237 -t 1134 1236 1136 -t 1236 1238 1136 -t 1135 1137 1237 -t 1237 1137 1239 -t 1136 1238 1138 -t 1238 1240 1138 -t 1137 1139 1239 -t 1239 1139 1241 -t 1138 1240 1140 -t 1240 1242 1140 -t 1139 1141 1241 -t 1241 1141 1243 -t 1140 1242 1142 -t 1242 1244 1142 -t 1141 1143 1243 -t 1243 1143 1245 -t 1142 1244 1144 -t 1244 1246 1144 -t 1143 1145 1245 -t 1245 1145 1247 -t 1144 1246 1146 -t 1246 1248 1146 -t 1145 1147 1247 -t 1247 1147 1249 -t 1146 1248 1148 -t 1248 1250 1148 -t 1147 1149 1249 -t 1249 1149 1251 -t 1148 1250 1150 -t 1250 1252 1150 -t 1149 1151 1251 -t 1251 1151 1253 -t 1150 1252 1152 -t 1252 1254 1152 -t 1151 1153 1253 -t 1253 1153 1255 -t 1152 1254 1154 -t 1254 1256 1154 -t 1153 1155 1255 -t 1255 1155 1257 -t 1154 1256 1156 -t 1256 1258 1156 -t 1155 1157 1257 -t 1257 1157 1259 -t 1156 1258 1158 -t 1258 1260 1158 -t 1157 1159 1259 -t 1259 1159 1261 -t 1158 1260 1160 -t 1260 1262 1160 -t 1159 1161 1261 -t 1261 1161 1263 -t 1160 1262 1162 -t 1262 1264 1162 -t 1161 1163 1263 -t 1263 1163 1265 -t 1162 1264 1164 -t 1264 1266 1164 -t 1163 1165 1265 -t 1265 1165 1267 -t 1164 1266 1166 -t 1266 1268 1166 -t 1165 1167 1267 -t 1267 1167 1269 -t 1166 1268 1168 -t 1268 1270 1168 -t 1167 1169 1269 -t 1269 1169 1271 -t 1168 1270 1170 -t 1270 1272 1170 -t 1169 1171 1271 -t 1271 1171 1273 -t 1170 1272 1172 -t 1272 1274 1172 -t 1173 1174 1275 -t 1275 1174 1276 -t 1175 1277 1176 -t 1277 1278 1176 -t 1174 1177 1276 -t 1276 1177 1279 -t 1176 1278 1178 -t 1278 1280 1178 -t 1177 1179 1279 -t 1279 1179 1281 -t 1178 1280 1180 -t 1280 1282 1180 -t 1179 1181 1281 -t 1281 1181 1283 -t 1180 1282 1182 -t 1282 1284 1182 -t 1181 1183 1283 -t 1283 1183 1285 -t 1182 1284 1184 -t 1284 1286 1184 -t 1183 1185 1285 -t 1285 1185 1287 -t 1184 1286 1186 -t 1286 1288 1186 -t 1185 1187 1287 -t 1287 1187 1289 -t 1186 1288 1188 -t 1288 1290 1188 -t 1187 1189 1289 -t 1289 1189 1291 -t 1188 1290 1190 -t 1290 1292 1190 -t 1189 1191 1291 -t 1291 1191 1293 -t 1190 1292 1192 -t 1292 1294 1192 -t 1191 1193 1293 -t 1293 1193 1295 -t 1192 1294 1194 -t 1294 1296 1194 -t 1193 1195 1295 -t 1295 1195 1297 -t 1194 1296 1196 -t 1296 1298 1196 -t 1195 1197 1297 -t 1297 1197 1299 -t 1196 1298 1198 -t 1298 1300 1198 -t 1197 1199 1299 -t 1299 1199 1301 -t 1198 1300 1200 -t 1300 1302 1200 -t 1199 1201 1301 -t 1301 1201 1303 -t 1200 1302 1202 -t 1302 1304 1202 -t 1201 1203 1303 -t 1303 1203 1305 -t 1202 1304 1204 -t 1304 1306 1204 -t 1203 1205 1305 -t 1305 1205 1307 -t 1204 1306 1206 -t 1306 1308 1206 -t 1205 1207 1307 -t 1307 1207 1309 -t 1206 1308 1208 -t 1308 1310 1208 -t 1207 1209 1309 -t 1309 1209 1311 -t 1208 1310 1210 -t 1310 1312 1210 -t 1209 1211 1311 -t 1311 1211 1313 -t 1210 1312 1212 -t 1312 1314 1212 -t 1211 1213 1313 -t 1313 1213 1315 -t 1212 1314 1214 -t 1314 1316 1214 -t 1213 1215 1315 -t 1315 1215 1317 -t 1214 1316 1216 -t 1316 1318 1216 -t 1215 1217 1317 -t 1317 1217 1319 -t 1216 1318 1218 -t 1318 1320 1218 -t 1217 1219 1319 -t 1319 1219 1321 -t 1218 1320 1220 -t 1320 1322 1220 -t 1219 1221 1321 -t 1321 1221 1323 -t 1220 1322 1222 -t 1322 1324 1222 -t 1221 1223 1323 -t 1323 1223 1325 -t 1222 1324 1224 -t 1324 1326 1224 -t 1223 1225 1325 -t 1325 1225 1327 -t 1224 1326 1226 -t 1326 1328 1226 -t 1225 1227 1327 -t 1327 1227 1329 -t 1226 1328 1228 -t 1328 1330 1228 -t 1227 1229 1329 -t 1329 1229 1331 -t 1228 1330 1230 -t 1330 1332 1230 -t 1229 1231 1331 -t 1331 1231 1333 -t 1230 1332 1232 -t 1332 1334 1232 -t 1231 1233 1333 -t 1333 1233 1335 -t 1232 1334 1234 -t 1334 1336 1234 -t 1233 1235 1335 -t 1335 1235 1337 -t 1234 1336 1236 -t 1336 1338 1236 -t 1235 1237 1337 -t 1337 1237 1339 -t 1236 1338 1238 -t 1338 1340 1238 -t 1237 1239 1339 -t 1339 1239 1341 -t 1238 1340 1240 -t 1340 1342 1240 -t 1239 1241 1341 -t 1341 1241 1343 -t 1240 1342 1242 -t 1342 1344 1242 -t 1241 1243 1343 -t 1343 1243 1345 -t 1242 1344 1244 -t 1344 1346 1244 -t 1243 1245 1345 -t 1345 1245 1347 -t 1244 1346 1246 -t 1346 1348 1246 -t 1245 1247 1347 -t 1347 1247 1349 -t 1246 1348 1248 -t 1348 1350 1248 -t 1247 1249 1349 -t 1349 1249 1351 -t 1248 1350 1250 -t 1350 1352 1250 -t 1249 1251 1351 -t 1351 1251 1353 -t 1250 1352 1252 -t 1352 1354 1252 -t 1251 1253 1353 -t 1353 1253 1355 -t 1252 1354 1254 -t 1354 1356 1254 -t 1253 1255 1355 -t 1355 1255 1357 -t 1254 1356 1256 -t 1356 1358 1256 -t 1255 1257 1357 -t 1357 1257 1359 -t 1256 1358 1258 -t 1358 1360 1258 -t 1257 1259 1359 -t 1359 1259 1361 -t 1258 1360 1260 -t 1360 1362 1260 -t 1259 1261 1361 -t 1361 1261 1363 -t 1260 1362 1262 -t 1362 1364 1262 -t 1261 1263 1363 -t 1363 1263 1365 -t 1262 1364 1264 -t 1364 1366 1264 -t 1263 1265 1365 -t 1365 1265 1367 -t 1264 1366 1266 -t 1366 1368 1266 -t 1265 1267 1367 -t 1367 1267 1369 -t 1266 1368 1268 -t 1368 1370 1268 -t 1267 1269 1369 -t 1369 1269 1371 -t 1268 1370 1270 -t 1370 1372 1270 -t 1269 1271 1371 -t 1371 1271 1373 -t 1270 1372 1272 -t 1372 1374 1272 -t 1271 1273 1373 -t 1373 1273 1375 -t 1272 1374 1274 -t 1374 1376 1274 -t 1275 1276 1377 -t 1377 1276 1378 -t 1277 1379 1278 -t 1379 1380 1278 -t 1276 1279 1378 -t 1378 1279 1381 -t 1278 1380 1280 -t 1380 1382 1280 -t 1279 1281 1381 -t 1381 1281 1383 -t 1280 1382 1282 -t 1382 1384 1282 -t 1281 1283 1383 -t 1383 1283 1385 -t 1282 1384 1284 -t 1384 1386 1284 -t 1283 1285 1385 -t 1385 1285 1387 -t 1284 1386 1286 -t 1386 1388 1286 -t 1285 1287 1387 -t 1387 1287 1389 -t 1286 1388 1288 -t 1388 1390 1288 -t 1287 1289 1389 -t 1389 1289 1391 -t 1288 1390 1290 -t 1390 1392 1290 -t 1289 1291 1391 -t 1391 1291 1393 -t 1290 1392 1292 -t 1392 1394 1292 -t 1291 1293 1393 -t 1393 1293 1395 -t 1292 1394 1294 -t 1394 1396 1294 -t 1293 1295 1395 -t 1395 1295 1397 -t 1294 1396 1296 -t 1396 1398 1296 -t 1295 1297 1397 -t 1397 1297 1399 -t 1296 1398 1298 -t 1398 1400 1298 -t 1297 1299 1399 -t 1399 1299 1401 -t 1298 1400 1300 -t 1400 1402 1300 -t 1299 1301 1401 -t 1401 1301 1403 -t 1300 1402 1302 -t 1402 1404 1302 -t 1301 1303 1403 -t 1403 1303 1405 -t 1302 1404 1304 -t 1404 1406 1304 -t 1303 1305 1405 -t 1405 1305 1407 -t 1304 1406 1306 -t 1406 1408 1306 -t 1305 1307 1407 -t 1407 1307 1409 -t 1306 1408 1308 -t 1408 1410 1308 -t 1307 1309 1409 -t 1409 1309 1411 -t 1308 1410 1310 -t 1410 1412 1310 -t 1309 1311 1411 -t 1411 1311 1413 -t 1310 1412 1312 -t 1412 1414 1312 -t 1311 1313 1413 -t 1413 1313 1415 -t 1312 1414 1314 -t 1414 1416 1314 -t 1313 1315 1415 -t 1415 1315 1417 -t 1314 1416 1316 -t 1416 1418 1316 -t 1315 1317 1417 -t 1417 1317 1419 -t 1316 1418 1318 -t 1418 1420 1318 -t 1317 1319 1419 -t 1419 1319 1421 -t 1318 1420 1320 -t 1420 1422 1320 -t 1319 1321 1421 -t 1421 1321 1423 -t 1320 1422 1322 -t 1422 1424 1322 -t 1321 1323 1423 -t 1423 1323 1425 -t 1322 1424 1324 -t 1424 1426 1324 -t 1323 1325 1425 -t 1425 1325 1427 -t 1324 1426 1326 -t 1426 1428 1326 -t 1325 1327 1427 -t 1427 1327 1429 -t 1326 1428 1328 -t 1428 1430 1328 -t 1327 1329 1429 -t 1429 1329 1431 -t 1328 1430 1330 -t 1430 1432 1330 -t 1329 1331 1431 -t 1431 1331 1433 -t 1330 1432 1332 -t 1432 1434 1332 -t 1331 1333 1433 -t 1433 1333 1435 -t 1332 1434 1334 -t 1434 1436 1334 -t 1333 1335 1435 -t 1435 1335 1437 -t 1334 1436 1336 -t 1436 1438 1336 -t 1335 1337 1437 -t 1437 1337 1439 -t 1336 1438 1338 -t 1438 1440 1338 -t 1337 1339 1439 -t 1439 1339 1441 -t 1338 1440 1340 -t 1440 1442 1340 -t 1339 1341 1441 -t 1441 1341 1443 -t 1340 1442 1342 -t 1442 1444 1342 -t 1341 1343 1443 -t 1443 1343 1445 -t 1342 1444 1344 -t 1444 1446 1344 -t 1343 1345 1445 -t 1445 1345 1447 -t 1344 1446 1346 -t 1446 1448 1346 -t 1345 1347 1447 -t 1447 1347 1449 -t 1346 1448 1348 -t 1448 1450 1348 -t 1347 1349 1449 -t 1449 1349 1451 -t 1348 1450 1350 -t 1450 1452 1350 -t 1349 1351 1451 -t 1451 1351 1453 -t 1350 1452 1352 -t 1452 1454 1352 -t 1351 1353 1453 -t 1453 1353 1455 -t 1352 1454 1354 -t 1454 1456 1354 -t 1353 1355 1455 -t 1455 1355 1457 -t 1354 1456 1356 -t 1456 1458 1356 -t 1355 1357 1457 -t 1457 1357 1459 -t 1356 1458 1358 -t 1458 1460 1358 -t 1357 1359 1459 -t 1459 1359 1461 -t 1358 1460 1360 -t 1460 1462 1360 -t 1359 1361 1461 -t 1461 1361 1463 -t 1360 1462 1362 -t 1462 1464 1362 -t 1361 1363 1463 -t 1463 1363 1465 -t 1362 1464 1364 -t 1464 1466 1364 -t 1363 1365 1465 -t 1465 1365 1467 -t 1364 1466 1366 -t 1466 1468 1366 -t 1365 1367 1467 -t 1467 1367 1469 -t 1366 1468 1368 -t 1468 1470 1368 -t 1367 1369 1469 -t 1469 1369 1471 -t 1368 1470 1370 -t 1470 1472 1370 -t 1369 1371 1471 -t 1471 1371 1473 -t 1370 1472 1372 -t 1472 1474 1372 -t 1371 1373 1473 -t 1473 1373 1475 -t 1372 1474 1374 -t 1474 1476 1374 -t 1373 1375 1475 -t 1475 1375 1477 -t 1374 1476 1376 -t 1476 1478 1376 -t 1377 1378 1479 -t 1479 1378 1480 -t 1379 1481 1380 -t 1481 1482 1380 -t 1378 1381 1480 -t 1480 1381 1483 -t 1380 1482 1382 -t 1482 1484 1382 -t 1381 1383 1483 -t 1483 1383 1485 -t 1382 1484 1384 -t 1484 1486 1384 -t 1383 1385 1485 -t 1485 1385 1487 -t 1384 1486 1386 -t 1486 1488 1386 -t 1385 1387 1487 -t 1487 1387 1489 -t 1386 1488 1388 -t 1488 1490 1388 -t 1387 1389 1489 -t 1489 1389 1491 -t 1388 1490 1390 -t 1490 1492 1390 -t 1389 1391 1491 -t 1491 1391 1493 -t 1390 1492 1392 -t 1492 1494 1392 -t 1391 1393 1493 -t 1493 1393 1495 -t 1392 1494 1394 -t 1494 1496 1394 -t 1393 1395 1495 -t 1495 1395 1497 -t 1394 1496 1396 -t 1496 1498 1396 -t 1395 1397 1497 -t 1497 1397 1499 -t 1396 1498 1398 -t 1498 1500 1398 -t 1397 1399 1499 -t 1499 1399 1501 -t 1398 1500 1400 -t 1500 1502 1400 -t 1399 1401 1501 -t 1501 1401 1503 -t 1400 1502 1402 -t 1502 1504 1402 -t 1401 1403 1503 -t 1503 1403 1505 -t 1402 1504 1404 -t 1504 1506 1404 -t 1403 1405 1505 -t 1505 1405 1507 -t 1404 1506 1406 -t 1506 1508 1406 -t 1405 1407 1507 -t 1507 1407 1509 -t 1406 1508 1408 -t 1508 1510 1408 -t 1407 1409 1509 -t 1509 1409 1511 -t 1408 1510 1410 -t 1510 1512 1410 -t 1409 1411 1511 -t 1511 1411 1513 -t 1410 1512 1412 -t 1512 1514 1412 -t 1411 1413 1513 -t 1513 1413 1515 -t 1412 1514 1414 -t 1514 1516 1414 -t 1413 1415 1515 -t 1515 1415 1517 -t 1414 1516 1416 -t 1516 1518 1416 -t 1415 1417 1517 -t 1517 1417 1519 -t 1416 1518 1418 -t 1518 1520 1418 -t 1417 1419 1519 -t 1519 1419 1521 -t 1418 1520 1420 -t 1520 1522 1420 -t 1419 1421 1521 -t 1521 1421 1523 -t 1420 1522 1422 -t 1522 1524 1422 -t 1421 1423 1523 -t 1523 1423 1525 -t 1422 1524 1424 -t 1524 1526 1424 -t 1423 1425 1525 -t 1525 1425 1527 -t 1424 1526 1426 -t 1526 1528 1426 -t 1425 1427 1527 -t 1527 1427 1529 -t 1426 1528 1428 -t 1528 1530 1428 -t 1427 1429 1529 -t 1529 1429 1531 -t 1428 1530 1430 -t 1530 1532 1430 -t 1429 1431 1531 -t 1531 1431 1533 -t 1430 1532 1432 -t 1532 1534 1432 -t 1431 1433 1533 -t 1533 1433 1535 -t 1432 1534 1434 -t 1534 1536 1434 -t 1433 1435 1535 -t 1535 1435 1537 -t 1434 1536 1436 -t 1536 1538 1436 -t 1435 1437 1537 -t 1537 1437 1539 -t 1436 1538 1438 -t 1538 1540 1438 -t 1437 1439 1539 -t 1539 1439 1541 -t 1438 1540 1440 -t 1540 1542 1440 -t 1439 1441 1541 -t 1541 1441 1543 -t 1440 1542 1442 -t 1542 1544 1442 -t 1441 1443 1543 -t 1543 1443 1545 -t 1442 1544 1444 -t 1544 1546 1444 -t 1443 1445 1545 -t 1545 1445 1547 -t 1444 1546 1446 -t 1546 1548 1446 -t 1445 1447 1547 -t 1547 1447 1549 -t 1446 1548 1448 -t 1548 1550 1448 -t 1447 1449 1549 -t 1549 1449 1551 -t 1448 1550 1450 -t 1550 1552 1450 -t 1449 1451 1551 -t 1551 1451 1553 -t 1450 1552 1452 -t 1552 1554 1452 -t 1451 1453 1553 -t 1553 1453 1555 -t 1452 1554 1454 -t 1554 1556 1454 -t 1453 1455 1555 -t 1555 1455 1557 -t 1454 1556 1456 -t 1556 1558 1456 -t 1455 1457 1557 -t 1557 1457 1559 -t 1456 1558 1458 -t 1558 1560 1458 -t 1457 1459 1559 -t 1559 1459 1561 -t 1458 1560 1460 -t 1560 1562 1460 -t 1459 1461 1561 -t 1561 1461 1563 -t 1460 1562 1462 -t 1562 1564 1462 -t 1461 1463 1563 -t 1563 1463 1565 -t 1462 1564 1464 -t 1564 1566 1464 -t 1463 1465 1565 -t 1565 1465 1567 -t 1464 1566 1466 -t 1566 1568 1466 -t 1465 1467 1567 -t 1567 1467 1569 -t 1466 1568 1468 -t 1568 1570 1468 -t 1467 1469 1569 -t 1569 1469 1571 -t 1468 1570 1470 -t 1570 1572 1470 -t 1469 1471 1571 -t 1571 1471 1573 -t 1470 1572 1472 -t 1572 1574 1472 -t 1471 1473 1573 -t 1573 1473 1575 -t 1472 1574 1474 -t 1574 1576 1474 -t 1473 1475 1575 -t 1575 1475 1577 -t 1474 1576 1476 -t 1576 1578 1476 -t 1475 1477 1577 -t 1577 1477 1579 -t 1476 1578 1478 -t 1578 1580 1478 -t 1479 1480 1581 -t 1581 1480 1582 -t 1481 1583 1482 -t 1583 1584 1482 -t 1480 1483 1582 -t 1582 1483 1585 -t 1482 1584 1484 -t 1584 1586 1484 -t 1483 1485 1585 -t 1585 1485 1587 -t 1484 1586 1486 -t 1586 1588 1486 -t 1485 1487 1587 -t 1587 1487 1589 -t 1486 1588 1488 -t 1588 1590 1488 -t 1487 1489 1589 -t 1589 1489 1591 -t 1488 1590 1490 -t 1590 1592 1490 -t 1489 1491 1591 -t 1591 1491 1593 -t 1490 1592 1492 -t 1592 1594 1492 -t 1491 1493 1593 -t 1593 1493 1595 -t 1492 1594 1494 -t 1594 1596 1494 -t 1493 1495 1595 -t 1595 1495 1597 -t 1494 1596 1496 -t 1596 1598 1496 -t 1495 1497 1597 -t 1597 1497 1599 -t 1496 1598 1498 -t 1598 1600 1498 -t 1497 1499 1599 -t 1599 1499 1601 -t 1498 1600 1500 -t 1600 1602 1500 -t 1499 1501 1601 -t 1601 1501 1603 -t 1500 1602 1502 -t 1602 1604 1502 -t 1501 1503 1603 -t 1603 1503 1605 -t 1502 1604 1504 -t 1604 1606 1504 -t 1503 1505 1605 -t 1605 1505 1607 -t 1504 1606 1506 -t 1606 1608 1506 -t 1505 1507 1607 -t 1607 1507 1609 -t 1506 1608 1508 -t 1608 1610 1508 -t 1507 1509 1609 -t 1609 1509 1611 -t 1508 1610 1510 -t 1610 1612 1510 -t 1509 1511 1611 -t 1611 1511 1613 -t 1510 1612 1512 -t 1612 1614 1512 -t 1511 1513 1613 -t 1613 1513 1615 -t 1512 1614 1514 -t 1614 1616 1514 -t 1513 1515 1615 -t 1615 1515 1617 -t 1514 1616 1516 -t 1616 1618 1516 -t 1515 1517 1617 -t 1617 1517 1619 -t 1516 1618 1518 -t 1618 1620 1518 -t 1517 1519 1619 -t 1619 1519 1621 -t 1518 1620 1520 -t 1620 1622 1520 -t 1519 1521 1621 -t 1621 1521 1623 -t 1520 1622 1522 -t 1622 1624 1522 -t 1521 1523 1623 -t 1623 1523 1625 -t 1522 1624 1524 -t 1624 1626 1524 -t 1523 1525 1625 -t 1625 1525 1627 -t 1524 1626 1526 -t 1626 1628 1526 -t 1525 1527 1627 -t 1627 1527 1629 -t 1526 1628 1528 -t 1628 1630 1528 -t 1527 1529 1629 -t 1629 1529 1631 -t 1528 1630 1530 -t 1630 1632 1530 -t 1529 1531 1631 -t 1631 1531 1633 -t 1530 1632 1532 -t 1632 1634 1532 -t 1531 1533 1633 -t 1633 1533 1635 -t 1532 1634 1534 -t 1634 1636 1534 -t 1533 1535 1635 -t 1635 1535 1637 -t 1534 1636 1536 -t 1636 1638 1536 -t 1535 1537 1637 -t 1637 1537 1639 -t 1536 1638 1538 -t 1638 1640 1538 -t 1537 1539 1639 -t 1639 1539 1641 -t 1538 1640 1540 -t 1640 1642 1540 -t 1539 1541 1641 -t 1641 1541 1643 -t 1540 1642 1542 -t 1642 1644 1542 -t 1541 1543 1643 -t 1643 1543 1645 -t 1542 1644 1544 -t 1644 1646 1544 -t 1543 1545 1645 -t 1645 1545 1647 -t 1544 1646 1546 -t 1646 1648 1546 -t 1545 1547 1647 -t 1647 1547 1649 -t 1546 1648 1548 -t 1648 1650 1548 -t 1547 1549 1649 -t 1649 1549 1651 -t 1548 1650 1550 -t 1650 1652 1550 -t 1549 1551 1651 -t 1651 1551 1653 -t 1550 1652 1552 -t 1652 1654 1552 -t 1551 1553 1653 -t 1653 1553 1655 -t 1552 1654 1554 -t 1654 1656 1554 -t 1553 1555 1655 -t 1655 1555 1657 -t 1554 1656 1556 -t 1656 1658 1556 -t 1555 1557 1657 -t 1657 1557 1659 -t 1556 1658 1558 -t 1658 1660 1558 -t 1557 1559 1659 -t 1659 1559 1661 -t 1558 1660 1560 -t 1660 1662 1560 -t 1559 1561 1661 -t 1661 1561 1663 -t 1560 1662 1562 -t 1662 1664 1562 -t 1561 1563 1663 -t 1663 1563 1665 -t 1562 1664 1564 -t 1664 1666 1564 -t 1563 1565 1665 -t 1665 1565 1667 -t 1564 1666 1566 -t 1666 1668 1566 -t 1565 1567 1667 -t 1667 1567 1669 -t 1566 1668 1568 -t 1668 1670 1568 -t 1567 1569 1669 -t 1669 1569 1671 -t 1568 1670 1570 -t 1670 1672 1570 -t 1569 1571 1671 -t 1671 1571 1673 -t 1570 1672 1572 -t 1672 1674 1572 -t 1571 1573 1673 -t 1673 1573 1675 -t 1572 1674 1574 -t 1674 1676 1574 -t 1573 1575 1675 -t 1675 1575 1677 -t 1574 1676 1576 -t 1676 1678 1576 -t 1575 1577 1677 -t 1677 1577 1679 -t 1576 1678 1578 -t 1678 1680 1578 -t 1577 1579 1679 -t 1679 1579 1681 -t 1578 1680 1580 -t 1680 1682 1580 -t 1581 1582 1683 -t 1683 1582 1684 -t 1583 1685 1584 -t 1685 1686 1584 -t 1582 1585 1684 -t 1684 1585 1687 -t 1584 1686 1586 -t 1686 1688 1586 -t 1585 1587 1687 -t 1687 1587 1689 -t 1586 1688 1588 -t 1688 1690 1588 -t 1587 1589 1689 -t 1689 1589 1691 -t 1588 1690 1590 -t 1690 1692 1590 -t 1589 1591 1691 -t 1691 1591 1693 -t 1590 1692 1592 -t 1692 1694 1592 -t 1591 1593 1693 -t 1693 1593 1695 -t 1592 1694 1594 -t 1694 1696 1594 -t 1593 1595 1695 -t 1695 1595 1697 -t 1594 1696 1596 -t 1696 1698 1596 -t 1595 1597 1697 -t 1697 1597 1699 -t 1596 1698 1598 -t 1698 1700 1598 -t 1597 1599 1699 -t 1699 1599 1701 -t 1598 1700 1600 -t 1700 1702 1600 -t 1599 1601 1701 -t 1701 1601 1703 -t 1600 1702 1602 -t 1702 1704 1602 -t 1601 1603 1703 -t 1703 1603 1705 -t 1602 1704 1604 -t 1704 1706 1604 -t 1603 1605 1705 -t 1705 1605 1707 -t 1604 1706 1606 -t 1706 1708 1606 -t 1605 1607 1707 -t 1707 1607 1709 -t 1606 1708 1608 -t 1708 1710 1608 -t 1607 1609 1709 -t 1709 1609 1711 -t 1608 1710 1610 -t 1710 1712 1610 -t 1609 1611 1711 -t 1711 1611 1713 -t 1610 1712 1612 -t 1712 1714 1612 -t 1611 1613 1713 -t 1713 1613 1715 -t 1612 1714 1614 -t 1714 1716 1614 -t 1613 1615 1715 -t 1715 1615 1717 -t 1614 1716 1616 -t 1716 1718 1616 -t 1615 1617 1717 -t 1717 1617 1719 -t 1616 1718 1618 -t 1718 1720 1618 -t 1617 1619 1719 -t 1719 1619 1721 -t 1618 1720 1620 -t 1720 1722 1620 -t 1619 1621 1721 -t 1721 1621 1723 -t 1620 1722 1622 -t 1722 1724 1622 -t 1621 1623 1723 -t 1723 1623 1725 -t 1622 1724 1624 -t 1724 1726 1624 -t 1623 1625 1725 -t 1725 1625 1727 -t 1624 1726 1626 -t 1726 1728 1626 -t 1625 1627 1727 -t 1727 1627 1729 -t 1626 1728 1628 -t 1728 1730 1628 -t 1627 1629 1729 -t 1729 1629 1731 -t 1628 1730 1630 -t 1730 1732 1630 -t 1629 1631 1731 -t 1731 1631 1733 -t 1630 1732 1632 -t 1732 1734 1632 -t 1631 1633 1733 -t 1733 1633 1735 -t 1632 1734 1634 -t 1734 1736 1634 -t 1633 1635 1735 -t 1735 1635 1737 -t 1634 1736 1636 -t 1736 1738 1636 -t 1635 1637 1737 -t 1737 1637 1739 -t 1636 1738 1638 -t 1738 1740 1638 -t 1637 1639 1739 -t 1739 1639 1741 -t 1638 1740 1640 -t 1740 1742 1640 -t 1639 1641 1741 -t 1741 1641 1743 -t 1640 1742 1642 -t 1742 1744 1642 -t 1641 1643 1743 -t 1743 1643 1745 -t 1642 1744 1644 -t 1744 1746 1644 -t 1643 1645 1745 -t 1745 1645 1747 -t 1644 1746 1646 -t 1746 1748 1646 -t 1645 1647 1747 -t 1747 1647 1749 -t 1646 1748 1648 -t 1748 1750 1648 -t 1647 1649 1749 -t 1749 1649 1751 -t 1648 1750 1650 -t 1750 1752 1650 -t 1649 1651 1751 -t 1751 1651 1753 -t 1650 1752 1652 -t 1752 1754 1652 -t 1651 1653 1753 -t 1753 1653 1755 -t 1652 1754 1654 -t 1754 1756 1654 -t 1653 1655 1755 -t 1755 1655 1757 -t 1654 1756 1656 -t 1756 1758 1656 -t 1655 1657 1757 -t 1757 1657 1759 -t 1656 1758 1658 -t 1758 1760 1658 -t 1657 1659 1759 -t 1759 1659 1761 -t 1658 1760 1660 -t 1760 1762 1660 -t 1659 1661 1761 -t 1761 1661 1763 -t 1660 1762 1662 -t 1762 1764 1662 -t 1661 1663 1763 -t 1763 1663 1765 -t 1662 1764 1664 -t 1764 1766 1664 -t 1663 1665 1765 -t 1765 1665 1767 -t 1664 1766 1666 -t 1766 1768 1666 -t 1665 1667 1767 -t 1767 1667 1769 -t 1666 1768 1668 -t 1768 1770 1668 -t 1667 1669 1769 -t 1769 1669 1771 -t 1668 1770 1670 -t 1770 1772 1670 -t 1669 1671 1771 -t 1771 1671 1773 -t 1670 1772 1672 -t 1772 1774 1672 -t 1671 1673 1773 -t 1773 1673 1775 -t 1672 1774 1674 -t 1774 1776 1674 -t 1673 1675 1775 -t 1775 1675 1777 -t 1674 1776 1676 -t 1776 1778 1676 -t 1675 1677 1777 -t 1777 1677 1779 -t 1676 1778 1678 -t 1778 1780 1678 -t 1677 1679 1779 -t 1779 1679 1781 -t 1678 1780 1680 -t 1780 1782 1680 -t 1679 1681 1781 -t 1781 1681 1783 -t 1680 1782 1682 -t 1782 1784 1682 -t 1683 1684 1785 -t 1785 1684 1786 -t 1685 1787 1686 -t 1787 1788 1686 -t 1684 1687 1786 -t 1786 1687 1789 -t 1686 1788 1688 -t 1788 1790 1688 -t 1687 1689 1789 -t 1789 1689 1791 -t 1688 1790 1690 -t 1790 1792 1690 -t 1689 1691 1791 -t 1791 1691 1793 -t 1690 1792 1692 -t 1792 1794 1692 -t 1691 1693 1793 -t 1793 1693 1795 -t 1692 1794 1694 -t 1794 1796 1694 -t 1693 1695 1795 -t 1795 1695 1797 -t 1694 1796 1696 -t 1796 1798 1696 -t 1695 1697 1797 -t 1797 1697 1799 -t 1696 1798 1698 -t 1798 1800 1698 -t 1697 1699 1799 -t 1799 1699 1801 -t 1698 1800 1700 -t 1800 1802 1700 -t 1699 1701 1801 -t 1801 1701 1803 -t 1700 1802 1702 -t 1802 1804 1702 -t 1701 1703 1803 -t 1803 1703 1805 -t 1702 1804 1704 -t 1804 1806 1704 -t 1703 1705 1805 -t 1805 1705 1807 -t 1704 1806 1706 -t 1806 1808 1706 -t 1705 1707 1807 -t 1807 1707 1809 -t 1706 1808 1708 -t 1808 1810 1708 -t 1707 1709 1809 -t 1809 1709 1811 -t 1708 1810 1710 -t 1810 1812 1710 -t 1709 1711 1811 -t 1811 1711 1813 -t 1710 1812 1712 -t 1812 1814 1712 -t 1711 1713 1813 -t 1813 1713 1815 -t 1712 1814 1714 -t 1814 1816 1714 -t 1713 1715 1815 -t 1815 1715 1817 -t 1714 1816 1716 -t 1816 1818 1716 -t 1715 1717 1817 -t 1817 1717 1819 -t 1716 1818 1718 -t 1818 1820 1718 -t 1717 1719 1819 -t 1819 1719 1821 -t 1718 1820 1720 -t 1820 1822 1720 -t 1719 1721 1821 -t 1821 1721 1823 -t 1720 1822 1722 -t 1822 1824 1722 -t 1721 1723 1823 -t 1823 1723 1825 -t 1722 1824 1724 -t 1824 1826 1724 -t 1723 1725 1825 -t 1825 1725 1827 -t 1724 1826 1726 -t 1826 1828 1726 -t 1725 1727 1827 -t 1827 1727 1829 -t 1726 1828 1728 -t 1828 1830 1728 -t 1727 1729 1829 -t 1829 1729 1831 -t 1728 1830 1730 -t 1830 1832 1730 -t 1729 1731 1831 -t 1831 1731 1833 -t 1730 1832 1732 -t 1832 1834 1732 -t 1731 1733 1833 -t 1833 1733 1835 -t 1732 1834 1734 -t 1834 1836 1734 -t 1733 1735 1835 -t 1835 1735 1837 -t 1734 1836 1736 -t 1836 1838 1736 -t 1735 1737 1837 -t 1837 1737 1839 -t 1736 1838 1738 -t 1838 1840 1738 -t 1737 1739 1839 -t 1839 1739 1841 -t 1738 1840 1740 -t 1840 1842 1740 -t 1739 1741 1841 -t 1841 1741 1843 -t 1740 1842 1742 -t 1842 1844 1742 -t 1741 1743 1843 -t 1843 1743 1845 -t 1742 1844 1744 -t 1844 1846 1744 -t 1743 1745 1845 -t 1845 1745 1847 -t 1744 1846 1746 -t 1846 1848 1746 -t 1745 1747 1847 -t 1847 1747 1849 -t 1746 1848 1748 -t 1848 1850 1748 -t 1747 1749 1849 -t 1849 1749 1851 -t 1748 1850 1750 -t 1850 1852 1750 -t 1749 1751 1851 -t 1851 1751 1853 -t 1750 1852 1752 -t 1852 1854 1752 -t 1751 1753 1853 -t 1853 1753 1855 -t 1752 1854 1754 -t 1854 1856 1754 -t 1753 1755 1855 -t 1855 1755 1857 -t 1754 1856 1756 -t 1856 1858 1756 -t 1755 1757 1857 -t 1857 1757 1859 -t 1756 1858 1758 -t 1858 1860 1758 -t 1757 1759 1859 -t 1859 1759 1861 -t 1758 1860 1760 -t 1860 1862 1760 -t 1759 1761 1861 -t 1861 1761 1863 -t 1760 1862 1762 -t 1862 1864 1762 -t 1761 1763 1863 -t 1863 1763 1865 -t 1762 1864 1764 -t 1864 1866 1764 -t 1763 1765 1865 -t 1865 1765 1867 -t 1764 1866 1766 -t 1866 1868 1766 -t 1765 1767 1867 -t 1867 1767 1869 -t 1766 1868 1768 -t 1868 1870 1768 -t 1767 1769 1869 -t 1869 1769 1871 -t 1768 1870 1770 -t 1870 1872 1770 -t 1769 1771 1871 -t 1871 1771 1873 -t 1770 1872 1772 -t 1872 1874 1772 -t 1771 1773 1873 -t 1873 1773 1875 -t 1772 1874 1774 -t 1874 1876 1774 -t 1773 1775 1875 -t 1875 1775 1877 -t 1774 1876 1776 -t 1876 1878 1776 -t 1775 1777 1877 -t 1877 1777 1879 -t 1776 1878 1778 -t 1878 1880 1778 -t 1777 1779 1879 -t 1879 1779 1881 -t 1778 1880 1780 -t 1880 1882 1780 -t 1779 1781 1881 -t 1881 1781 1883 -t 1780 1882 1782 -t 1882 1884 1782 -t 1781 1783 1883 -t 1883 1783 1885 -t 1782 1884 1784 -t 1884 1886 1784 -t 1785 1786 1887 -t 1887 1786 1888 -t 1787 1889 1788 -t 1889 1890 1788 -t 1786 1789 1888 -t 1888 1789 1891 -t 1788 1890 1790 -t 1890 1892 1790 -t 1789 1791 1891 -t 1891 1791 1893 -t 1790 1892 1792 -t 1892 1894 1792 -t 1791 1793 1893 -t 1893 1793 1895 -t 1792 1894 1794 -t 1894 1896 1794 -t 1793 1795 1895 -t 1895 1795 1897 -t 1794 1896 1796 -t 1896 1898 1796 -t 1795 1797 1897 -t 1897 1797 1899 -t 1796 1898 1798 -t 1898 1900 1798 -t 1797 1799 1899 -t 1899 1799 1901 -t 1798 1900 1800 -t 1900 1902 1800 -t 1799 1801 1901 -t 1901 1801 1903 -t 1800 1902 1802 -t 1902 1904 1802 -t 1801 1803 1903 -t 1903 1803 1905 -t 1802 1904 1804 -t 1904 1906 1804 -t 1803 1805 1905 -t 1905 1805 1907 -t 1804 1906 1806 -t 1906 1908 1806 -t 1805 1807 1907 -t 1907 1807 1909 -t 1806 1908 1808 -t 1908 1910 1808 -t 1807 1809 1909 -t 1909 1809 1911 -t 1808 1910 1810 -t 1910 1912 1810 -t 1809 1811 1911 -t 1911 1811 1913 -t 1810 1912 1812 -t 1912 1914 1812 -t 1811 1813 1913 -t 1913 1813 1915 -t 1812 1914 1814 -t 1914 1916 1814 -t 1813 1815 1915 -t 1915 1815 1917 -t 1814 1916 1816 -t 1916 1918 1816 -t 1815 1817 1917 -t 1917 1817 1919 -t 1816 1918 1818 -t 1918 1920 1818 -t 1817 1819 1919 -t 1919 1819 1921 -t 1818 1920 1820 -t 1920 1922 1820 -t 1819 1821 1921 -t 1921 1821 1923 -t 1820 1922 1822 -t 1922 1924 1822 -t 1821 1823 1923 -t 1923 1823 1925 -t 1822 1924 1824 -t 1924 1926 1824 -t 1823 1825 1925 -t 1925 1825 1927 -t 1824 1926 1826 -t 1926 1928 1826 -t 1825 1827 1927 -t 1927 1827 1929 -t 1826 1928 1828 -t 1928 1930 1828 -t 1827 1829 1929 -t 1929 1829 1931 -t 1828 1930 1830 -t 1930 1932 1830 -t 1829 1831 1931 -t 1931 1831 1933 -t 1830 1932 1832 -t 1932 1934 1832 -t 1831 1833 1933 -t 1933 1833 1935 -t 1832 1934 1834 -t 1934 1936 1834 -t 1833 1835 1935 -t 1935 1835 1937 -t 1834 1936 1836 -t 1936 1938 1836 -t 1835 1837 1937 -t 1937 1837 1939 -t 1836 1938 1838 -t 1938 1940 1838 -t 1837 1839 1939 -t 1939 1839 1941 -t 1838 1940 1840 -t 1940 1942 1840 -t 1839 1841 1941 -t 1941 1841 1943 -t 1840 1942 1842 -t 1942 1944 1842 -t 1841 1843 1943 -t 1943 1843 1945 -t 1842 1944 1844 -t 1944 1946 1844 -t 1843 1845 1945 -t 1945 1845 1947 -t 1844 1946 1846 -t 1946 1948 1846 -t 1845 1847 1947 -t 1947 1847 1949 -t 1846 1948 1848 -t 1948 1950 1848 -t 1847 1849 1949 -t 1949 1849 1951 -t 1848 1950 1850 -t 1950 1952 1850 -t 1849 1851 1951 -t 1951 1851 1953 -t 1850 1952 1852 -t 1952 1954 1852 -t 1851 1853 1953 -t 1953 1853 1955 -t 1852 1954 1854 -t 1954 1956 1854 -t 1853 1855 1955 -t 1955 1855 1957 -t 1854 1956 1856 -t 1956 1958 1856 -t 1855 1857 1957 -t 1957 1857 1959 -t 1856 1958 1858 -t 1958 1960 1858 -t 1857 1859 1959 -t 1959 1859 1961 -t 1858 1960 1860 -t 1960 1962 1860 -t 1859 1861 1961 -t 1961 1861 1963 -t 1860 1962 1862 -t 1962 1964 1862 -t 1861 1863 1963 -t 1963 1863 1965 -t 1862 1964 1864 -t 1964 1966 1864 -t 1863 1865 1965 -t 1965 1865 1967 -t 1864 1966 1866 -t 1966 1968 1866 -t 1865 1867 1967 -t 1967 1867 1969 -t 1866 1968 1868 -t 1968 1970 1868 -t 1867 1869 1969 -t 1969 1869 1971 -t 1868 1970 1870 -t 1970 1972 1870 -t 1869 1871 1971 -t 1971 1871 1973 -t 1870 1972 1872 -t 1972 1974 1872 -t 1871 1873 1973 -t 1973 1873 1975 -t 1872 1974 1874 -t 1974 1976 1874 -t 1873 1875 1975 -t 1975 1875 1977 -t 1874 1976 1876 -t 1976 1978 1876 -t 1875 1877 1977 -t 1977 1877 1979 -t 1876 1978 1878 -t 1978 1980 1878 -t 1877 1879 1979 -t 1979 1879 1981 -t 1878 1980 1880 -t 1980 1982 1880 -t 1879 1881 1981 -t 1981 1881 1983 -t 1880 1982 1882 -t 1982 1984 1882 -t 1881 1883 1983 -t 1983 1883 1985 -t 1882 1984 1884 -t 1984 1986 1884 -t 1883 1885 1985 -t 1985 1885 1987 -t 1884 1986 1886 -t 1986 1988 1886 -t 1887 1888 1989 -t 1989 1888 1990 -t 1889 1991 1890 -t 1991 1992 1890 -t 1888 1891 1990 -t 1990 1891 1993 -t 1890 1992 1892 -t 1992 1994 1892 -t 1891 1893 1993 -t 1993 1893 1995 -t 1892 1994 1894 -t 1994 1996 1894 -t 1893 1895 1995 -t 1995 1895 1997 -t 1894 1996 1896 -t 1996 1998 1896 -t 1895 1897 1997 -t 1997 1897 1999 -t 1896 1998 1898 -t 1998 2000 1898 -t 1897 1899 1999 -t 1999 1899 2001 -t 1898 2000 1900 -t 2000 2002 1900 -t 1899 1901 2001 -t 2001 1901 2003 -t 1900 2002 1902 -t 2002 2004 1902 -t 1901 1903 2003 -t 2003 1903 2005 -t 1902 2004 1904 -t 2004 2006 1904 -t 1903 1905 2005 -t 2005 1905 2007 -t 1904 2006 1906 -t 2006 2008 1906 -t 1905 1907 2007 -t 2007 1907 2009 -t 1906 2008 1908 -t 2008 2010 1908 -t 1907 1909 2009 -t 2009 1909 2011 -t 1908 2010 1910 -t 2010 2012 1910 -t 1909 1911 2011 -t 2011 1911 2013 -t 1910 2012 1912 -t 2012 2014 1912 -t 1911 1913 2013 -t 2013 1913 2015 -t 1912 2014 1914 -t 2014 2016 1914 -t 1913 1915 2015 -t 2015 1915 2017 -t 1914 2016 1916 -t 2016 2018 1916 -t 1915 1917 2017 -t 2017 1917 2019 -t 1916 2018 1918 -t 2018 2020 1918 -t 1917 1919 2019 -t 2019 1919 2021 -t 1918 2020 1920 -t 2020 2022 1920 -t 1919 1921 2021 -t 2021 1921 2023 -t 1920 2022 1922 -t 2022 2024 1922 -t 1921 1923 2023 -t 2023 1923 2025 -t 1922 2024 1924 -t 2024 2026 1924 -t 1923 1925 2025 -t 2025 1925 2027 -t 1924 2026 1926 -t 2026 2028 1926 -t 1925 1927 2027 -t 2027 1927 2029 -t 1926 2028 1928 -t 2028 2030 1928 -t 1927 1929 2029 -t 2029 1929 2031 -t 1928 2030 1930 -t 2030 2032 1930 -t 1929 1931 2031 -t 2031 1931 2033 -t 1930 2032 1932 -t 2032 2034 1932 -t 1931 1933 2033 -t 2033 1933 2035 -t 1932 2034 1934 -t 2034 2036 1934 -t 1933 1935 2035 -t 2035 1935 2037 -t 1934 2036 1936 -t 2036 2038 1936 -t 1935 1937 2037 -t 2037 1937 2039 -t 1936 2038 1938 -t 2038 2040 1938 -t 1937 1939 2039 -t 2039 1939 2041 -t 1938 2040 1940 -t 2040 2042 1940 -t 1939 1941 2041 -t 2041 1941 2043 -t 1940 2042 1942 -t 2042 2044 1942 -t 1941 1943 2043 -t 2043 1943 2045 -t 1942 2044 1944 -t 2044 2046 1944 -t 1943 1945 2045 -t 2045 1945 2047 -t 1944 2046 1946 -t 2046 2048 1946 -t 1945 1947 2047 -t 2047 1947 2049 -t 1946 2048 1948 -t 2048 2050 1948 -t 1947 1949 2049 -t 2049 1949 2051 -t 1948 2050 1950 -t 2050 2052 1950 -t 1949 1951 2051 -t 2051 1951 2053 -t 1950 2052 1952 -t 2052 2054 1952 -t 1951 1953 2053 -t 2053 1953 2055 -t 1952 2054 1954 -t 2054 2056 1954 -t 1953 1955 2055 -t 2055 1955 2057 -t 1954 2056 1956 -t 2056 2058 1956 -t 1955 1957 2057 -t 2057 1957 2059 -t 1956 2058 1958 -t 2058 2060 1958 -t 1957 1959 2059 -t 2059 1959 2061 -t 1958 2060 1960 -t 2060 2062 1960 -t 1959 1961 2061 -t 2061 1961 2063 -t 1960 2062 1962 -t 2062 2064 1962 -t 1961 1963 2063 -t 2063 1963 2065 -t 1962 2064 1964 -t 2064 2066 1964 -t 1963 1965 2065 -t 2065 1965 2067 -t 1964 2066 1966 -t 2066 2068 1966 -t 1965 1967 2067 -t 2067 1967 2069 -t 1966 2068 1968 -t 2068 2070 1968 -t 1967 1969 2069 -t 2069 1969 2071 -t 1968 2070 1970 -t 2070 2072 1970 -t 1969 1971 2071 -t 2071 1971 2073 -t 1970 2072 1972 -t 2072 2074 1972 -t 1971 1973 2073 -t 2073 1973 2075 -t 1972 2074 1974 -t 2074 2076 1974 -t 1973 1975 2075 -t 2075 1975 2077 -t 1974 2076 1976 -t 2076 2078 1976 -t 1975 1977 2077 -t 2077 1977 2079 -t 1976 2078 1978 -t 2078 2080 1978 -t 1977 1979 2079 -t 2079 1979 2081 -t 1978 2080 1980 -t 2080 2082 1980 -t 1979 1981 2081 -t 2081 1981 2083 -t 1980 2082 1982 -t 2082 2084 1982 -t 1981 1983 2083 -t 2083 1983 2085 -t 1982 2084 1984 -t 2084 2086 1984 -t 1983 1985 2085 -t 2085 1985 2087 -t 1984 2086 1986 -t 2086 2088 1986 -t 1985 1987 2087 -t 2087 1987 2089 -t 1986 2088 1988 -t 2088 2090 1988 -t 1989 1990 2091 -t 2091 1990 2092 -t 1991 2093 1992 -t 2093 2094 1992 -t 1990 1993 2092 -t 2092 1993 2095 -t 1992 2094 1994 -t 2094 2096 1994 -t 1993 1995 2095 -t 2095 1995 2097 -t 1994 2096 1996 -t 2096 2098 1996 -t 1995 1997 2097 -t 2097 1997 2099 -t 1996 2098 1998 -t 2098 2100 1998 -t 1997 1999 2099 -t 2099 1999 2101 -t 1998 2100 2000 -t 2100 2102 2000 -t 1999 2001 2101 -t 2101 2001 2103 -t 2000 2102 2002 -t 2102 2104 2002 -t 2001 2003 2103 -t 2103 2003 2105 -t 2002 2104 2004 -t 2104 2106 2004 -t 2003 2005 2105 -t 2105 2005 2107 -t 2004 2106 2006 -t 2106 2108 2006 -t 2005 2007 2107 -t 2107 2007 2109 -t 2006 2108 2008 -t 2108 2110 2008 -t 2007 2009 2109 -t 2109 2009 2111 -t 2008 2110 2010 -t 2110 2112 2010 -t 2009 2011 2111 -t 2111 2011 2113 -t 2010 2112 2012 -t 2112 2114 2012 -t 2011 2013 2113 -t 2113 2013 2115 -t 2012 2114 2014 -t 2114 2116 2014 -t 2013 2015 2115 -t 2115 2015 2117 -t 2014 2116 2016 -t 2116 2118 2016 -t 2015 2017 2117 -t 2117 2017 2119 -t 2016 2118 2018 -t 2118 2120 2018 -t 2017 2019 2119 -t 2119 2019 2121 -t 2018 2120 2020 -t 2120 2122 2020 -t 2019 2021 2121 -t 2121 2021 2123 -t 2020 2122 2022 -t 2122 2124 2022 -t 2021 2023 2123 -t 2123 2023 2125 -t 2022 2124 2024 -t 2124 2126 2024 -t 2023 2025 2125 -t 2125 2025 2127 -t 2024 2126 2026 -t 2126 2128 2026 -t 2025 2027 2127 -t 2127 2027 2129 -t 2026 2128 2028 -t 2128 2130 2028 -t 2027 2029 2129 -t 2129 2029 2131 -t 2028 2130 2030 -t 2130 2132 2030 -t 2029 2031 2131 -t 2131 2031 2133 -t 2030 2132 2032 -t 2132 2134 2032 -t 2031 2033 2133 -t 2133 2033 2135 -t 2032 2134 2034 -t 2134 2136 2034 -t 2033 2035 2135 -t 2135 2035 2137 -t 2034 2136 2036 -t 2136 2138 2036 -t 2035 2037 2137 -t 2137 2037 2139 -t 2036 2138 2038 -t 2138 2140 2038 -t 2037 2039 2139 -t 2139 2039 2141 -t 2038 2140 2040 -t 2140 2142 2040 -t 2039 2041 2141 -t 2141 2041 2143 -t 2040 2142 2042 -t 2142 2144 2042 -t 2041 2043 2143 -t 2143 2043 2145 -t 2042 2144 2044 -t 2144 2146 2044 -t 2043 2045 2145 -t 2145 2045 2147 -t 2044 2146 2046 -t 2146 2148 2046 -t 2045 2047 2147 -t 2147 2047 2149 -t 2046 2148 2048 -t 2148 2150 2048 -t 2047 2049 2149 -t 2149 2049 2151 -t 2048 2150 2050 -t 2150 2152 2050 -t 2049 2051 2151 -t 2151 2051 2153 -t 2050 2152 2052 -t 2152 2154 2052 -t 2051 2053 2153 -t 2153 2053 2155 -t 2052 2154 2054 -t 2154 2156 2054 -t 2053 2055 2155 -t 2155 2055 2157 -t 2054 2156 2056 -t 2156 2158 2056 -t 2055 2057 2157 -t 2157 2057 2159 -t 2056 2158 2058 -t 2158 2160 2058 -t 2057 2059 2159 -t 2159 2059 2161 -t 2058 2160 2060 -t 2160 2162 2060 -t 2059 2061 2161 -t 2161 2061 2163 -t 2060 2162 2062 -t 2162 2164 2062 -t 2061 2063 2163 -t 2163 2063 2165 -t 2062 2164 2064 -t 2164 2166 2064 -t 2063 2065 2165 -t 2165 2065 2167 -t 2064 2166 2066 -t 2166 2168 2066 -t 2065 2067 2167 -t 2167 2067 2169 -t 2066 2168 2068 -t 2168 2170 2068 -t 2067 2069 2169 -t 2169 2069 2171 -t 2068 2170 2070 -t 2170 2172 2070 -t 2069 2071 2171 -t 2171 2071 2173 -t 2070 2172 2072 -t 2172 2174 2072 -t 2071 2073 2173 -t 2173 2073 2175 -t 2072 2174 2074 -t 2174 2176 2074 -t 2073 2075 2175 -t 2175 2075 2177 -t 2074 2176 2076 -t 2176 2178 2076 -t 2075 2077 2177 -t 2177 2077 2179 -t 2076 2178 2078 -t 2178 2180 2078 -t 2077 2079 2179 -t 2179 2079 2181 -t 2078 2180 2080 -t 2180 2182 2080 -t 2079 2081 2181 -t 2181 2081 2183 -t 2080 2182 2082 -t 2182 2184 2082 -t 2081 2083 2183 -t 2183 2083 2185 -t 2082 2184 2084 -t 2184 2186 2084 -t 2083 2085 2185 -t 2185 2085 2187 -t 2084 2186 2086 -t 2186 2188 2086 -t 2085 2087 2187 -t 2187 2087 2189 -t 2086 2188 2088 -t 2188 2190 2088 -t 2087 2089 2189 -t 2189 2089 2191 -t 2088 2190 2090 -t 2190 2192 2090 -t 2091 2092 2193 -t 2193 2092 2194 -t 2093 2195 2094 -t 2195 2196 2094 -t 2092 2095 2194 -t 2194 2095 2197 -t 2094 2196 2096 -t 2196 2198 2096 -t 2095 2097 2197 -t 2197 2097 2199 -t 2096 2198 2098 -t 2198 2200 2098 -t 2097 2099 2199 -t 2199 2099 2201 -t 2098 2200 2100 -t 2200 2202 2100 -t 2099 2101 2201 -t 2201 2101 2203 -t 2100 2202 2102 -t 2202 2204 2102 -t 2101 2103 2203 -t 2203 2103 2205 -t 2102 2204 2104 -t 2204 2206 2104 -t 2103 2105 2205 -t 2205 2105 2207 -t 2104 2206 2106 -t 2206 2208 2106 -t 2105 2107 2207 -t 2207 2107 2209 -t 2106 2208 2108 -t 2208 2210 2108 -t 2107 2109 2209 -t 2209 2109 2211 -t 2108 2210 2110 -t 2210 2212 2110 -t 2109 2111 2211 -t 2211 2111 2213 -t 2110 2212 2112 -t 2212 2214 2112 -t 2111 2113 2213 -t 2213 2113 2215 -t 2112 2214 2114 -t 2214 2216 2114 -t 2113 2115 2215 -t 2215 2115 2217 -t 2114 2216 2116 -t 2216 2218 2116 -t 2115 2117 2217 -t 2217 2117 2219 -t 2116 2218 2118 -t 2218 2220 2118 -t 2117 2119 2219 -t 2219 2119 2221 -t 2118 2220 2120 -t 2220 2222 2120 -t 2119 2121 2221 -t 2221 2121 2223 -t 2120 2222 2122 -t 2222 2224 2122 -t 2121 2123 2223 -t 2223 2123 2225 -t 2122 2224 2124 -t 2224 2226 2124 -t 2123 2125 2225 -t 2225 2125 2227 -t 2124 2226 2126 -t 2226 2228 2126 -t 2125 2127 2227 -t 2227 2127 2229 -t 2126 2228 2128 -t 2228 2230 2128 -t 2127 2129 2229 -t 2229 2129 2231 -t 2128 2230 2130 -t 2230 2232 2130 -t 2129 2131 2231 -t 2231 2131 2233 -t 2130 2232 2132 -t 2232 2234 2132 -t 2131 2133 2233 -t 2233 2133 2235 -t 2132 2234 2134 -t 2234 2236 2134 -t 2133 2135 2235 -t 2235 2135 2237 -t 2134 2236 2136 -t 2236 2238 2136 -t 2135 2137 2237 -t 2237 2137 2239 -t 2136 2238 2138 -t 2238 2240 2138 -t 2137 2139 2239 -t 2239 2139 2241 -t 2138 2240 2140 -t 2240 2242 2140 -t 2139 2141 2241 -t 2241 2141 2243 -t 2140 2242 2142 -t 2242 2244 2142 -t 2141 2143 2243 -t 2243 2143 2245 -t 2142 2244 2144 -t 2244 2246 2144 -t 2143 2145 2245 -t 2245 2145 2247 -t 2144 2246 2146 -t 2246 2248 2146 -t 2145 2147 2247 -t 2247 2147 2249 -t 2146 2248 2148 -t 2248 2250 2148 -t 2147 2149 2249 -t 2249 2149 2251 -t 2148 2250 2150 -t 2250 2252 2150 -t 2149 2151 2251 -t 2251 2151 2253 -t 2150 2252 2152 -t 2252 2254 2152 -t 2151 2153 2253 -t 2253 2153 2255 -t 2152 2254 2154 -t 2254 2256 2154 -t 2153 2155 2255 -t 2255 2155 2257 -t 2154 2256 2156 -t 2256 2258 2156 -t 2155 2157 2257 -t 2257 2157 2259 -t 2156 2258 2158 -t 2258 2260 2158 -t 2157 2159 2259 -t 2259 2159 2261 -t 2158 2260 2160 -t 2260 2262 2160 -t 2159 2161 2261 -t 2261 2161 2263 -t 2160 2262 2162 -t 2262 2264 2162 -t 2161 2163 2263 -t 2263 2163 2265 -t 2162 2264 2164 -t 2264 2266 2164 -t 2163 2165 2265 -t 2265 2165 2267 -t 2164 2266 2166 -t 2266 2268 2166 -t 2165 2167 2267 -t 2267 2167 2269 -t 2166 2268 2168 -t 2268 2270 2168 -t 2167 2169 2269 -t 2269 2169 2271 -t 2168 2270 2170 -t 2270 2272 2170 -t 2169 2171 2271 -t 2271 2171 2273 -t 2170 2272 2172 -t 2272 2274 2172 -t 2171 2173 2273 -t 2273 2173 2275 -t 2172 2274 2174 -t 2274 2276 2174 -t 2173 2175 2275 -t 2275 2175 2277 -t 2174 2276 2176 -t 2276 2278 2176 -t 2175 2177 2277 -t 2277 2177 2279 -t 2176 2278 2178 -t 2278 2280 2178 -t 2177 2179 2279 -t 2279 2179 2281 -t 2178 2280 2180 -t 2280 2282 2180 -t 2179 2181 2281 -t 2281 2181 2283 -t 2180 2282 2182 -t 2282 2284 2182 -t 2181 2183 2283 -t 2283 2183 2285 -t 2182 2284 2184 -t 2284 2286 2184 -t 2183 2185 2285 -t 2285 2185 2287 -t 2184 2286 2186 -t 2286 2288 2186 -t 2185 2187 2287 -t 2287 2187 2289 -t 2186 2288 2188 -t 2288 2290 2188 -t 2187 2189 2289 -t 2289 2189 2291 -t 2188 2290 2190 -t 2290 2292 2190 -t 2189 2191 2291 -t 2291 2191 2293 -t 2190 2292 2192 -t 2292 2294 2192 -t 2193 2194 2295 -t 2295 2194 2296 -t 2195 2297 2196 -t 2297 2298 2196 -t 2194 2197 2296 -t 2296 2197 2299 -t 2196 2298 2198 -t 2298 2300 2198 -t 2197 2199 2299 -t 2299 2199 2301 -t 2198 2300 2200 -t 2300 2302 2200 -t 2199 2201 2301 -t 2301 2201 2303 -t 2200 2302 2202 -t 2302 2304 2202 -t 2201 2203 2303 -t 2303 2203 2305 -t 2202 2304 2204 -t 2304 2306 2204 -t 2203 2205 2305 -t 2305 2205 2307 -t 2204 2306 2206 -t 2306 2308 2206 -t 2205 2207 2307 -t 2307 2207 2309 -t 2206 2308 2208 -t 2308 2310 2208 -t 2207 2209 2309 -t 2309 2209 2311 -t 2208 2310 2210 -t 2310 2312 2210 -t 2209 2211 2311 -t 2311 2211 2313 -t 2210 2312 2212 -t 2312 2314 2212 -t 2211 2213 2313 -t 2313 2213 2315 -t 2212 2314 2214 -t 2314 2316 2214 -t 2213 2215 2315 -t 2315 2215 2317 -t 2214 2316 2216 -t 2316 2318 2216 -t 2215 2217 2317 -t 2317 2217 2319 -t 2216 2318 2218 -t 2318 2320 2218 -t 2217 2219 2319 -t 2319 2219 2321 -t 2218 2320 2220 -t 2320 2322 2220 -t 2219 2221 2321 -t 2321 2221 2323 -t 2220 2322 2222 -t 2322 2324 2222 -t 2221 2223 2323 -t 2323 2223 2325 -t 2222 2324 2224 -t 2324 2326 2224 -t 2223 2225 2325 -t 2325 2225 2327 -t 2224 2326 2226 -t 2326 2328 2226 -t 2225 2227 2327 -t 2327 2227 2329 -t 2226 2328 2228 -t 2328 2330 2228 -t 2227 2229 2329 -t 2329 2229 2331 -t 2228 2330 2230 -t 2330 2332 2230 -t 2229 2231 2331 -t 2331 2231 2333 -t 2230 2332 2232 -t 2332 2334 2232 -t 2231 2233 2333 -t 2333 2233 2335 -t 2232 2334 2234 -t 2334 2336 2234 -t 2233 2235 2335 -t 2335 2235 2337 -t 2234 2336 2236 -t 2336 2338 2236 -t 2235 2237 2337 -t 2337 2237 2339 -t 2236 2338 2238 -t 2338 2340 2238 -t 2237 2239 2339 -t 2339 2239 2341 -t 2238 2340 2240 -t 2340 2342 2240 -t 2239 2241 2341 -t 2341 2241 2343 -t 2240 2342 2242 -t 2342 2344 2242 -t 2241 2243 2343 -t 2343 2243 2345 -t 2242 2344 2244 -t 2344 2346 2244 -t 2243 2245 2345 -t 2345 2245 2347 -t 2244 2346 2246 -t 2346 2348 2246 -t 2245 2247 2347 -t 2347 2247 2349 -t 2246 2348 2248 -t 2348 2350 2248 -t 2247 2249 2349 -t 2349 2249 2351 -t 2248 2350 2250 -t 2350 2352 2250 -t 2249 2251 2351 -t 2351 2251 2353 -t 2250 2352 2252 -t 2352 2354 2252 -t 2251 2253 2353 -t 2353 2253 2355 -t 2252 2354 2254 -t 2354 2356 2254 -t 2253 2255 2355 -t 2355 2255 2357 -t 2254 2356 2256 -t 2356 2358 2256 -t 2255 2257 2357 -t 2357 2257 2359 -t 2256 2358 2258 -t 2358 2360 2258 -t 2257 2259 2359 -t 2359 2259 2361 -t 2258 2360 2260 -t 2360 2362 2260 -t 2259 2261 2361 -t 2361 2261 2363 -t 2260 2362 2262 -t 2362 2364 2262 -t 2261 2263 2363 -t 2363 2263 2365 -t 2262 2364 2264 -t 2364 2366 2264 -t 2263 2265 2365 -t 2365 2265 2367 -t 2264 2366 2266 -t 2366 2368 2266 -t 2265 2267 2367 -t 2367 2267 2369 -t 2266 2368 2268 -t 2368 2370 2268 -t 2267 2269 2369 -t 2369 2269 2371 -t 2268 2370 2270 -t 2370 2372 2270 -t 2269 2271 2371 -t 2371 2271 2373 -t 2270 2372 2272 -t 2372 2374 2272 -t 2271 2273 2373 -t 2373 2273 2375 -t 2272 2374 2274 -t 2374 2376 2274 -t 2273 2275 2375 -t 2375 2275 2377 -t 2274 2376 2276 -t 2376 2378 2276 -t 2275 2277 2377 -t 2377 2277 2379 -t 2276 2378 2278 -t 2378 2380 2278 -t 2277 2279 2379 -t 2379 2279 2381 -t 2278 2380 2280 -t 2380 2382 2280 -t 2279 2281 2381 -t 2381 2281 2383 -t 2280 2382 2282 -t 2382 2384 2282 -t 2281 2283 2383 -t 2383 2283 2385 -t 2282 2384 2284 -t 2384 2386 2284 -t 2283 2285 2385 -t 2385 2285 2387 -t 2284 2386 2286 -t 2386 2388 2286 -t 2285 2287 2387 -t 2387 2287 2389 -t 2286 2388 2288 -t 2388 2390 2288 -t 2287 2289 2389 -t 2389 2289 2391 -t 2288 2390 2290 -t 2390 2392 2290 -t 2289 2291 2391 -t 2391 2291 2393 -t 2290 2392 2292 -t 2392 2394 2292 -t 2291 2293 2393 -t 2393 2293 2395 -t 2292 2394 2294 -t 2394 2396 2294 -t 2295 2296 2397 -t 2397 2296 2398 -t 2297 2399 2298 -t 2399 2400 2298 -t 2296 2299 2398 -t 2398 2299 2401 -t 2298 2400 2300 -t 2400 2402 2300 -t 2299 2301 2401 -t 2401 2301 2403 -t 2300 2402 2302 -t 2402 2404 2302 -t 2301 2303 2403 -t 2403 2303 2405 -t 2302 2404 2304 -t 2404 2406 2304 -t 2303 2305 2405 -t 2405 2305 2407 -t 2304 2406 2306 -t 2406 2408 2306 -t 2305 2307 2407 -t 2407 2307 2409 -t 2306 2408 2308 -t 2408 2410 2308 -t 2307 2309 2409 -t 2409 2309 2411 -t 2308 2410 2310 -t 2410 2412 2310 -t 2309 2311 2411 -t 2411 2311 2413 -t 2310 2412 2312 -t 2412 2414 2312 -t 2311 2313 2413 -t 2413 2313 2415 -t 2312 2414 2314 -t 2414 2416 2314 -t 2313 2315 2415 -t 2415 2315 2417 -t 2314 2416 2316 -t 2416 2418 2316 -t 2315 2317 2417 -t 2417 2317 2419 -t 2316 2418 2318 -t 2418 2420 2318 -t 2317 2319 2419 -t 2419 2319 2421 -t 2318 2420 2320 -t 2420 2422 2320 -t 2319 2321 2421 -t 2421 2321 2423 -t 2320 2422 2322 -t 2422 2424 2322 -t 2321 2323 2423 -t 2423 2323 2425 -t 2322 2424 2324 -t 2424 2426 2324 -t 2323 2325 2425 -t 2425 2325 2427 -t 2324 2426 2326 -t 2426 2428 2326 -t 2325 2327 2427 -t 2427 2327 2429 -t 2326 2428 2328 -t 2428 2430 2328 -t 2327 2329 2429 -t 2429 2329 2431 -t 2328 2430 2330 -t 2430 2432 2330 -t 2329 2331 2431 -t 2431 2331 2433 -t 2330 2432 2332 -t 2432 2434 2332 -t 2331 2333 2433 -t 2433 2333 2435 -t 2332 2434 2334 -t 2434 2436 2334 -t 2333 2335 2435 -t 2435 2335 2437 -t 2334 2436 2336 -t 2436 2438 2336 -t 2335 2337 2437 -t 2437 2337 2439 -t 2336 2438 2338 -t 2438 2440 2338 -t 2337 2339 2439 -t 2439 2339 2441 -t 2338 2440 2340 -t 2440 2442 2340 -t 2339 2341 2441 -t 2441 2341 2443 -t 2340 2442 2342 -t 2442 2444 2342 -t 2341 2343 2443 -t 2443 2343 2445 -t 2342 2444 2344 -t 2444 2446 2344 -t 2343 2345 2445 -t 2445 2345 2447 -t 2344 2446 2346 -t 2446 2448 2346 -t 2345 2347 2447 -t 2447 2347 2449 -t 2346 2448 2348 -t 2448 2450 2348 -t 2347 2349 2449 -t 2449 2349 2451 -t 2348 2450 2350 -t 2450 2452 2350 -t 2349 2351 2451 -t 2451 2351 2453 -t 2350 2452 2352 -t 2452 2454 2352 -t 2351 2353 2453 -t 2453 2353 2455 -t 2352 2454 2354 -t 2454 2456 2354 -t 2353 2355 2455 -t 2455 2355 2457 -t 2354 2456 2356 -t 2456 2458 2356 -t 2355 2357 2457 -t 2457 2357 2459 -t 2356 2458 2358 -t 2458 2460 2358 -t 2357 2359 2459 -t 2459 2359 2461 -t 2358 2460 2360 -t 2460 2462 2360 -t 2359 2361 2461 -t 2461 2361 2463 -t 2360 2462 2362 -t 2462 2464 2362 -t 2361 2363 2463 -t 2463 2363 2465 -t 2362 2464 2364 -t 2464 2466 2364 -t 2363 2365 2465 -t 2465 2365 2467 -t 2364 2466 2366 -t 2466 2468 2366 -t 2365 2367 2467 -t 2467 2367 2469 -t 2366 2468 2368 -t 2468 2470 2368 -t 2367 2369 2469 -t 2469 2369 2471 -t 2368 2470 2370 -t 2470 2472 2370 -t 2369 2371 2471 -t 2471 2371 2473 -t 2370 2472 2372 -t 2472 2474 2372 -t 2371 2373 2473 -t 2473 2373 2475 -t 2372 2474 2374 -t 2474 2476 2374 -t 2373 2375 2475 -t 2475 2375 2477 -t 2374 2476 2376 -t 2476 2478 2376 -t 2375 2377 2477 -t 2477 2377 2479 -t 2376 2478 2378 -t 2478 2480 2378 -t 2377 2379 2479 -t 2479 2379 2481 -t 2378 2480 2380 -t 2480 2482 2380 -t 2379 2381 2481 -t 2481 2381 2483 -t 2380 2482 2382 -t 2482 2484 2382 -t 2381 2383 2483 -t 2483 2383 2485 -t 2382 2484 2384 -t 2484 2486 2384 -t 2383 2385 2485 -t 2485 2385 2487 -t 2384 2486 2386 -t 2486 2488 2386 -t 2385 2387 2487 -t 2487 2387 2489 -t 2386 2488 2388 -t 2488 2490 2388 -t 2387 2389 2489 -t 2489 2389 2491 -t 2388 2490 2390 -t 2490 2492 2390 -t 2389 2391 2491 -t 2491 2391 2493 -t 2390 2492 2392 -t 2492 2494 2392 -t 2391 2393 2493 -t 2493 2393 2495 -t 2392 2494 2394 -t 2494 2496 2394 -t 2393 2395 2495 -t 2495 2395 2497 -t 2394 2496 2396 -t 2496 2498 2396 -t 2397 2398 2499 -t 2499 2398 2500 -t 2399 2501 2400 -t 2501 2502 2400 -t 2398 2401 2500 -t 2500 2401 2503 -t 2400 2502 2402 -t 2502 2504 2402 -t 2401 2403 2503 -t 2503 2403 2505 -t 2402 2504 2404 -t 2504 2506 2404 -t 2403 2405 2505 -t 2505 2405 2507 -t 2404 2506 2406 -t 2506 2508 2406 -t 2405 2407 2507 -t 2507 2407 2509 -t 2406 2508 2408 -t 2508 2510 2408 -t 2407 2409 2509 -t 2509 2409 2511 -t 2408 2510 2410 -t 2510 2512 2410 -t 2409 2411 2511 -t 2511 2411 2513 -t 2410 2512 2412 -t 2512 2514 2412 -t 2411 2413 2513 -t 2513 2413 2515 -t 2412 2514 2414 -t 2514 2516 2414 -t 2413 2415 2515 -t 2515 2415 2517 -t 2414 2516 2416 -t 2516 2518 2416 -t 2415 2417 2517 -t 2517 2417 2519 -t 2416 2518 2418 -t 2518 2520 2418 -t 2417 2419 2519 -t 2519 2419 2521 -t 2418 2520 2420 -t 2520 2522 2420 -t 2419 2421 2521 -t 2521 2421 2523 -t 2420 2522 2422 -t 2522 2524 2422 -t 2421 2423 2523 -t 2523 2423 2525 -t 2422 2524 2424 -t 2524 2526 2424 -t 2423 2425 2525 -t 2525 2425 2527 -t 2424 2526 2426 -t 2526 2528 2426 -t 2425 2427 2527 -t 2527 2427 2529 -t 2426 2528 2428 -t 2528 2530 2428 -t 2427 2429 2529 -t 2529 2429 2531 -t 2428 2530 2430 -t 2530 2532 2430 -t 2429 2431 2531 -t 2531 2431 2533 -t 2430 2532 2432 -t 2532 2534 2432 -t 2431 2433 2533 -t 2533 2433 2535 -t 2432 2534 2434 -t 2534 2536 2434 -t 2433 2435 2535 -t 2535 2435 2537 -t 2434 2536 2436 -t 2536 2538 2436 -t 2435 2437 2537 -t 2537 2437 2539 -t 2436 2538 2438 -t 2538 2540 2438 -t 2437 2439 2539 -t 2539 2439 2541 -t 2438 2540 2440 -t 2540 2542 2440 -t 2439 2441 2541 -t 2541 2441 2543 -t 2440 2542 2442 -t 2542 2544 2442 -t 2441 2443 2543 -t 2543 2443 2545 -t 2442 2544 2444 -t 2544 2546 2444 -t 2443 2445 2545 -t 2545 2445 2547 -t 2444 2546 2446 -t 2546 2548 2446 -t 2445 2447 2547 -t 2547 2447 2549 -t 2446 2548 2448 -t 2548 2550 2448 -t 2447 2449 2549 -t 2549 2449 2551 -t 2448 2550 2450 -t 2550 2552 2450 -t 2449 2451 2551 -t 2551 2451 2553 -t 2450 2552 2452 -t 2552 2554 2452 -t 2451 2453 2553 -t 2553 2453 2555 -t 2452 2554 2454 -t 2554 2556 2454 -t 2453 2455 2555 -t 2555 2455 2557 -t 2454 2556 2456 -t 2556 2558 2456 -t 2455 2457 2557 -t 2557 2457 2559 -t 2456 2558 2458 -t 2558 2560 2458 -t 2457 2459 2559 -t 2559 2459 2561 -t 2458 2560 2460 -t 2560 2562 2460 -t 2459 2461 2561 -t 2561 2461 2563 -t 2460 2562 2462 -t 2562 2564 2462 -t 2461 2463 2563 -t 2563 2463 2565 -t 2462 2564 2464 -t 2564 2566 2464 -t 2463 2465 2565 -t 2565 2465 2567 -t 2464 2566 2466 -t 2566 2568 2466 -t 2465 2467 2567 -t 2567 2467 2569 -t 2466 2568 2468 -t 2568 2570 2468 -t 2467 2469 2569 -t 2569 2469 2571 -t 2468 2570 2470 -t 2570 2572 2470 -t 2469 2471 2571 -t 2571 2471 2573 -t 2470 2572 2472 -t 2572 2574 2472 -t 2471 2473 2573 -t 2573 2473 2575 -t 2472 2574 2474 -t 2574 2576 2474 -t 2473 2475 2575 -t 2575 2475 2577 -t 2474 2576 2476 -t 2576 2578 2476 -t 2475 2477 2577 -t 2577 2477 2579 -t 2476 2578 2478 -t 2578 2580 2478 -t 2477 2479 2579 -t 2579 2479 2581 -t 2478 2580 2480 -t 2580 2582 2480 -t 2479 2481 2581 -t 2581 2481 2583 -t 2480 2582 2482 -t 2582 2584 2482 -t 2481 2483 2583 -t 2583 2483 2585 -t 2482 2584 2484 -t 2584 2586 2484 -t 2483 2485 2585 -t 2585 2485 2587 -t 2484 2586 2486 -t 2586 2588 2486 -t 2485 2487 2587 -t 2587 2487 2589 -t 2486 2588 2488 -t 2588 2590 2488 -t 2487 2489 2589 -t 2589 2489 2591 -t 2488 2590 2490 -t 2590 2592 2490 -t 2489 2491 2591 -t 2591 2491 2593 -t 2490 2592 2492 -t 2592 2594 2492 -t 2491 2493 2593 -t 2593 2493 2595 -t 2492 2594 2494 -t 2594 2596 2494 -t 2493 2495 2595 -t 2595 2495 2597 -t 2494 2596 2496 -t 2596 2598 2496 -t 2495 2497 2597 -t 2597 2497 2599 -t 2496 2598 2498 -t 2598 2600 2498 -t 2499 2500 2601 -t 2601 2500 2602 -t 2501 2603 2502 -t 2603 2604 2502 -t 2500 2503 2602 -t 2602 2503 2605 -t 2502 2604 2504 -t 2604 2606 2504 -t 2503 2505 2605 -t 2605 2505 2607 -t 2504 2606 2506 -t 2606 2608 2506 -t 2505 2507 2607 -t 2607 2507 2609 -t 2506 2608 2508 -t 2608 2610 2508 -t 2507 2509 2609 -t 2609 2509 2611 -t 2508 2610 2510 -t 2610 2612 2510 -t 2509 2511 2611 -t 2611 2511 2613 -t 2510 2612 2512 -t 2612 2614 2512 -t 2511 2513 2613 -t 2613 2513 2615 -t 2512 2614 2514 -t 2614 2616 2514 -t 2513 2515 2615 -t 2615 2515 2617 -t 2514 2616 2516 -t 2616 2618 2516 -t 2515 2517 2617 -t 2617 2517 2619 -t 2516 2618 2518 -t 2618 2620 2518 -t 2517 2519 2619 -t 2619 2519 2621 -t 2518 2620 2520 -t 2620 2622 2520 -t 2519 2521 2621 -t 2621 2521 2623 -t 2520 2622 2522 -t 2622 2624 2522 -t 2521 2523 2623 -t 2623 2523 2625 -t 2522 2624 2524 -t 2624 2626 2524 -t 2523 2525 2625 -t 2625 2525 2627 -t 2524 2626 2526 -t 2626 2628 2526 -t 2525 2527 2627 -t 2627 2527 2629 -t 2526 2628 2528 -t 2628 2630 2528 -t 2527 2529 2629 -t 2629 2529 2631 -t 2528 2630 2530 -t 2630 2632 2530 -t 2529 2531 2631 -t 2631 2531 2633 -t 2530 2632 2532 -t 2632 2634 2532 -t 2531 2533 2633 -t 2633 2533 2635 -t 2532 2634 2534 -t 2634 2636 2534 -t 2533 2535 2635 -t 2635 2535 2637 -t 2534 2636 2536 -t 2636 2638 2536 -t 2535 2537 2637 -t 2637 2537 2639 -t 2536 2638 2538 -t 2638 2640 2538 -t 2537 2539 2639 -t 2639 2539 2641 -t 2538 2640 2540 -t 2640 2642 2540 -t 2539 2541 2641 -t 2641 2541 2643 -t 2540 2642 2542 -t 2642 2644 2542 -t 2541 2543 2643 -t 2643 2543 2645 -t 2542 2644 2544 -t 2644 2646 2544 -t 2543 2545 2645 -t 2645 2545 2647 -t 2544 2646 2546 -t 2646 2648 2546 -t 2545 2547 2647 -t 2647 2547 2649 -t 2546 2648 2548 -t 2648 2650 2548 -t 2547 2549 2649 -t 2649 2549 2651 -t 2548 2650 2550 -t 2650 2652 2550 -t 2549 2551 2651 -t 2651 2551 2653 -t 2550 2652 2552 -t 2652 2654 2552 -t 2551 2553 2653 -t 2653 2553 2655 -t 2552 2654 2554 -t 2654 2656 2554 -t 2553 2555 2655 -t 2655 2555 2657 -t 2554 2656 2556 -t 2656 2658 2556 -t 2555 2557 2657 -t 2657 2557 2659 -t 2556 2658 2558 -t 2658 2660 2558 -t 2557 2559 2659 -t 2659 2559 2661 -t 2558 2660 2560 -t 2660 2662 2560 -t 2559 2561 2661 -t 2661 2561 2663 -t 2560 2662 2562 -t 2662 2664 2562 -t 2561 2563 2663 -t 2663 2563 2665 -t 2562 2664 2564 -t 2664 2666 2564 -t 2563 2565 2665 -t 2665 2565 2667 -t 2564 2666 2566 -t 2666 2668 2566 -t 2565 2567 2667 -t 2667 2567 2669 -t 2566 2668 2568 -t 2668 2670 2568 -t 2567 2569 2669 -t 2669 2569 2671 -t 2568 2670 2570 -t 2670 2672 2570 -t 2569 2571 2671 -t 2671 2571 2673 -t 2570 2672 2572 -t 2672 2674 2572 -t 2571 2573 2673 -t 2673 2573 2675 -t 2572 2674 2574 -t 2674 2676 2574 -t 2573 2575 2675 -t 2675 2575 2677 -t 2574 2676 2576 -t 2676 2678 2576 -t 2575 2577 2677 -t 2677 2577 2679 -t 2576 2678 2578 -t 2678 2680 2578 -t 2577 2579 2679 -t 2679 2579 2681 -t 2578 2680 2580 -t 2680 2682 2580 -t 2579 2581 2681 -t 2681 2581 2683 -t 2580 2682 2582 -t 2682 2684 2582 -t 2581 2583 2683 -t 2683 2583 2685 -t 2582 2684 2584 -t 2684 2686 2584 -t 2583 2585 2685 -t 2685 2585 2687 -t 2584 2686 2586 -t 2686 2688 2586 -t 2585 2587 2687 -t 2687 2587 2689 -t 2586 2688 2588 -t 2688 2690 2588 -t 2587 2589 2689 -t 2689 2589 2691 -t 2588 2690 2590 -t 2690 2692 2590 -t 2589 2591 2691 -t 2691 2591 2693 -t 2590 2692 2592 -t 2692 2694 2592 -t 2591 2593 2693 -t 2693 2593 2695 -t 2592 2694 2594 -t 2694 2696 2594 -t 2593 2595 2695 -t 2695 2595 2697 -t 2594 2696 2596 -t 2696 2698 2596 -t 2595 2597 2697 -t 2697 2597 2699 -t 2596 2698 2598 -t 2698 2700 2598 -t 2597 2599 2699 -t 2699 2599 2701 -t 2598 2700 2600 -t 2700 2702 2600 -t 2601 2602 2703 -t 2703 2602 2704 -t 2603 2705 2604 -t 2705 2706 2604 -t 2602 2605 2704 -t 2704 2605 2707 -t 2604 2706 2606 -t 2706 2708 2606 -t 2605 2607 2707 -t 2707 2607 2709 -t 2606 2708 2608 -t 2708 2710 2608 -t 2607 2609 2709 -t 2709 2609 2711 -t 2608 2710 2610 -t 2710 2712 2610 -t 2609 2611 2711 -t 2711 2611 2713 -t 2610 2712 2612 -t 2712 2714 2612 -t 2611 2613 2713 -t 2713 2613 2715 -t 2612 2714 2614 -t 2714 2716 2614 -t 2613 2615 2715 -t 2715 2615 2717 -t 2614 2716 2616 -t 2716 2718 2616 -t 2615 2617 2717 -t 2717 2617 2719 -t 2616 2718 2618 -t 2718 2720 2618 -t 2617 2619 2719 -t 2719 2619 2721 -t 2618 2720 2620 -t 2720 2722 2620 -t 2619 2621 2721 -t 2721 2621 2723 -t 2620 2722 2622 -t 2722 2724 2622 -t 2621 2623 2723 -t 2723 2623 2725 -t 2622 2724 2624 -t 2724 2726 2624 -t 2623 2625 2725 -t 2725 2625 2727 -t 2624 2726 2626 -t 2726 2728 2626 -t 2625 2627 2727 -t 2727 2627 2729 -t 2626 2728 2628 -t 2728 2730 2628 -t 2627 2629 2729 -t 2729 2629 2731 -t 2628 2730 2630 -t 2730 2732 2630 -t 2629 2631 2731 -t 2731 2631 2733 -t 2630 2732 2632 -t 2732 2734 2632 -t 2631 2633 2733 -t 2733 2633 2735 -t 2632 2734 2634 -t 2734 2736 2634 -t 2633 2635 2735 -t 2735 2635 2737 -t 2634 2736 2636 -t 2736 2738 2636 -t 2635 2637 2737 -t 2737 2637 2739 -t 2636 2738 2638 -t 2738 2740 2638 -t 2637 2639 2739 -t 2739 2639 2741 -t 2638 2740 2640 -t 2740 2742 2640 -t 2639 2641 2741 -t 2741 2641 2743 -t 2640 2742 2642 -t 2742 2744 2642 -t 2641 2643 2743 -t 2743 2643 2745 -t 2642 2744 2644 -t 2744 2746 2644 -t 2643 2645 2745 -t 2745 2645 2747 -t 2644 2746 2646 -t 2746 2748 2646 -t 2645 2647 2747 -t 2747 2647 2749 -t 2646 2748 2648 -t 2748 2750 2648 -t 2647 2649 2749 -t 2749 2649 2751 -t 2648 2750 2650 -t 2750 2752 2650 -t 2649 2651 2751 -t 2751 2651 2753 -t 2650 2752 2652 -t 2752 2754 2652 -t 2651 2653 2753 -t 2753 2653 2755 -t 2652 2754 2654 -t 2754 2756 2654 -t 2653 2655 2755 -t 2755 2655 2757 -t 2654 2756 2656 -t 2756 2758 2656 -t 2655 2657 2757 -t 2757 2657 2759 -t 2656 2758 2658 -t 2758 2760 2658 -t 2657 2659 2759 -t 2759 2659 2761 -t 2658 2760 2660 -t 2760 2762 2660 -t 2659 2661 2761 -t 2761 2661 2763 -t 2660 2762 2662 -t 2762 2764 2662 -t 2661 2663 2763 -t 2763 2663 2765 -t 2662 2764 2664 -t 2764 2766 2664 -t 2663 2665 2765 -t 2765 2665 2767 -t 2664 2766 2666 -t 2766 2768 2666 -t 2665 2667 2767 -t 2767 2667 2769 -t 2666 2768 2668 -t 2768 2770 2668 -t 2667 2669 2769 -t 2769 2669 2771 -t 2668 2770 2670 -t 2770 2772 2670 -t 2669 2671 2771 -t 2771 2671 2773 -t 2670 2772 2672 -t 2772 2774 2672 -t 2671 2673 2773 -t 2773 2673 2775 -t 2672 2774 2674 -t 2774 2776 2674 -t 2673 2675 2775 -t 2775 2675 2777 -t 2674 2776 2676 -t 2776 2778 2676 -t 2675 2677 2777 -t 2777 2677 2779 -t 2676 2778 2678 -t 2778 2780 2678 -t 2677 2679 2779 -t 2779 2679 2781 -t 2678 2780 2680 -t 2780 2782 2680 -t 2679 2681 2781 -t 2781 2681 2783 -t 2680 2782 2682 -t 2782 2784 2682 -t 2681 2683 2783 -t 2783 2683 2785 -t 2682 2784 2684 -t 2784 2786 2684 -t 2683 2685 2785 -t 2785 2685 2787 -t 2684 2786 2686 -t 2786 2788 2686 -t 2685 2687 2787 -t 2787 2687 2789 -t 2686 2788 2688 -t 2788 2790 2688 -t 2687 2689 2789 -t 2789 2689 2791 -t 2688 2790 2690 -t 2790 2792 2690 -t 2689 2691 2791 -t 2791 2691 2793 -t 2690 2792 2692 -t 2792 2794 2692 -t 2691 2693 2793 -t 2793 2693 2795 -t 2692 2794 2694 -t 2794 2796 2694 -t 2693 2695 2795 -t 2795 2695 2797 -t 2694 2796 2696 -t 2796 2798 2696 -t 2695 2697 2797 -t 2797 2697 2799 -t 2696 2798 2698 -t 2798 2800 2698 -t 2697 2699 2799 -t 2799 2699 2801 -t 2698 2800 2700 -t 2800 2802 2700 -t 2699 2701 2801 -t 2801 2701 2803 -t 2700 2802 2702 -t 2802 2804 2702 -t 2703 2704 2805 -t 2805 2704 2806 -t 2705 2807 2706 -t 2807 2808 2706 -t 2704 2707 2806 -t 2806 2707 2809 -t 2706 2808 2708 -t 2808 2810 2708 -t 2707 2709 2809 -t 2809 2709 2811 -t 2708 2810 2710 -t 2810 2812 2710 -t 2709 2711 2811 -t 2811 2711 2813 -t 2710 2812 2712 -t 2812 2814 2712 -t 2711 2713 2813 -t 2813 2713 2815 -t 2712 2814 2714 -t 2814 2816 2714 -t 2713 2715 2815 -t 2815 2715 2817 -t 2714 2816 2716 -t 2816 2818 2716 -t 2715 2717 2817 -t 2817 2717 2819 -t 2716 2818 2718 -t 2818 2820 2718 -t 2717 2719 2819 -t 2819 2719 2821 -t 2718 2820 2720 -t 2820 2822 2720 -t 2719 2721 2821 -t 2821 2721 2823 -t 2720 2822 2722 -t 2822 2824 2722 -t 2721 2723 2823 -t 2823 2723 2825 -t 2722 2824 2724 -t 2824 2826 2724 -t 2723 2725 2825 -t 2825 2725 2827 -t 2724 2826 2726 -t 2826 2828 2726 -t 2725 2727 2827 -t 2827 2727 2829 -t 2726 2828 2728 -t 2828 2830 2728 -t 2727 2729 2829 -t 2829 2729 2831 -t 2728 2830 2730 -t 2830 2832 2730 -t 2729 2731 2831 -t 2831 2731 2833 -t 2730 2832 2732 -t 2832 2834 2732 -t 2731 2733 2833 -t 2833 2733 2835 -t 2732 2834 2734 -t 2834 2836 2734 -t 2733 2735 2835 -t 2835 2735 2837 -t 2734 2836 2736 -t 2836 2838 2736 -t 2735 2737 2837 -t 2837 2737 2839 -t 2736 2838 2738 -t 2838 2840 2738 -t 2737 2739 2839 -t 2839 2739 2841 -t 2738 2840 2740 -t 2840 2842 2740 -t 2739 2741 2841 -t 2841 2741 2843 -t 2740 2842 2742 -t 2842 2844 2742 -t 2741 2743 2843 -t 2843 2743 2845 -t 2742 2844 2744 -t 2844 2846 2744 -t 2743 2745 2845 -t 2845 2745 2847 -t 2744 2846 2746 -t 2846 2848 2746 -t 2745 2747 2847 -t 2847 2747 2849 -t 2746 2848 2748 -t 2848 2850 2748 -t 2747 2749 2849 -t 2849 2749 2851 -t 2748 2850 2750 -t 2850 2852 2750 -t 2749 2751 2851 -t 2851 2751 2853 -t 2750 2852 2752 -t 2852 2854 2752 -t 2751 2753 2853 -t 2853 2753 2855 -t 2752 2854 2754 -t 2854 2856 2754 -t 2753 2755 2855 -t 2855 2755 2857 -t 2754 2856 2756 -t 2856 2858 2756 -t 2755 2757 2857 -t 2857 2757 2859 -t 2756 2858 2758 -t 2858 2860 2758 -t 2757 2759 2859 -t 2859 2759 2861 -t 2758 2860 2760 -t 2860 2862 2760 -t 2759 2761 2861 -t 2861 2761 2863 -t 2760 2862 2762 -t 2862 2864 2762 -t 2761 2763 2863 -t 2863 2763 2865 -t 2762 2864 2764 -t 2864 2866 2764 -t 2763 2765 2865 -t 2865 2765 2867 -t 2764 2866 2766 -t 2866 2868 2766 -t 2765 2767 2867 -t 2867 2767 2869 -t 2766 2868 2768 -t 2868 2870 2768 -t 2767 2769 2869 -t 2869 2769 2871 -t 2768 2870 2770 -t 2870 2872 2770 -t 2769 2771 2871 -t 2871 2771 2873 -t 2770 2872 2772 -t 2872 2874 2772 -t 2771 2773 2873 -t 2873 2773 2875 -t 2772 2874 2774 -t 2874 2876 2774 -t 2773 2775 2875 -t 2875 2775 2877 -t 2774 2876 2776 -t 2876 2878 2776 -t 2775 2777 2877 -t 2877 2777 2879 -t 2776 2878 2778 -t 2878 2880 2778 -t 2777 2779 2879 -t 2879 2779 2881 -t 2778 2880 2780 -t 2880 2882 2780 -t 2779 2781 2881 -t 2881 2781 2883 -t 2780 2882 2782 -t 2882 2884 2782 -t 2781 2783 2883 -t 2883 2783 2885 -t 2782 2884 2784 -t 2884 2886 2784 -t 2783 2785 2885 -t 2885 2785 2887 -t 2784 2886 2786 -t 2886 2888 2786 -t 2785 2787 2887 -t 2887 2787 2889 -t 2786 2888 2788 -t 2888 2890 2788 -t 2787 2789 2889 -t 2889 2789 2891 -t 2788 2890 2790 -t 2890 2892 2790 -t 2789 2791 2891 -t 2891 2791 2893 -t 2790 2892 2792 -t 2892 2894 2792 -t 2791 2793 2893 -t 2893 2793 2895 -t 2792 2894 2794 -t 2894 2896 2794 -t 2793 2795 2895 -t 2895 2795 2897 -t 2794 2896 2796 -t 2896 2898 2796 -t 2795 2797 2897 -t 2897 2797 2899 -t 2796 2898 2798 -t 2898 2900 2798 -t 2797 2799 2899 -t 2899 2799 2901 -t 2798 2900 2800 -t 2900 2902 2800 -t 2799 2801 2901 -t 2901 2801 2903 -t 2800 2902 2802 -t 2902 2904 2802 -t 2801 2803 2903 -t 2903 2803 2905 -t 2802 2904 2804 -t 2904 2906 2804 -t 2805 2806 2907 -t 2907 2806 2908 -t 2807 2909 2808 -t 2909 2910 2808 -t 2806 2809 2908 -t 2908 2809 2911 -t 2808 2910 2810 -t 2910 2912 2810 -t 2809 2811 2911 -t 2911 2811 2913 -t 2810 2912 2812 -t 2912 2914 2812 -t 2811 2813 2913 -t 2913 2813 2915 -t 2812 2914 2814 -t 2914 2916 2814 -t 2813 2815 2915 -t 2915 2815 2917 -t 2814 2916 2816 -t 2916 2918 2816 -t 2815 2817 2917 -t 2917 2817 2919 -t 2816 2918 2818 -t 2918 2920 2818 -t 2817 2819 2919 -t 2919 2819 2921 -t 2818 2920 2820 -t 2920 2922 2820 -t 2819 2821 2921 -t 2921 2821 2923 -t 2820 2922 2822 -t 2922 2924 2822 -t 2821 2823 2923 -t 2923 2823 2925 -t 2822 2924 2824 -t 2924 2926 2824 -t 2823 2825 2925 -t 2925 2825 2927 -t 2824 2926 2826 -t 2926 2928 2826 -t 2825 2827 2927 -t 2927 2827 2929 -t 2826 2928 2828 -t 2928 2930 2828 -t 2827 2829 2929 -t 2929 2829 2931 -t 2828 2930 2830 -t 2930 2932 2830 -t 2829 2831 2931 -t 2931 2831 2933 -t 2830 2932 2832 -t 2932 2934 2832 -t 2831 2833 2933 -t 2933 2833 2935 -t 2832 2934 2834 -t 2934 2936 2834 -t 2833 2835 2935 -t 2935 2835 2937 -t 2834 2936 2836 -t 2936 2938 2836 -t 2835 2837 2937 -t 2937 2837 2939 -t 2836 2938 2838 -t 2938 2940 2838 -t 2837 2839 2939 -t 2939 2839 2941 -t 2838 2940 2840 -t 2940 2942 2840 -t 2839 2841 2941 -t 2941 2841 2943 -t 2840 2942 2842 -t 2942 2944 2842 -t 2841 2843 2943 -t 2943 2843 2945 -t 2842 2944 2844 -t 2944 2946 2844 -t 2843 2845 2945 -t 2945 2845 2947 -t 2844 2946 2846 -t 2946 2948 2846 -t 2845 2847 2947 -t 2947 2847 2949 -t 2846 2948 2848 -t 2948 2950 2848 -t 2847 2849 2949 -t 2949 2849 2951 -t 2848 2950 2850 -t 2950 2952 2850 -t 2849 2851 2951 -t 2951 2851 2953 -t 2850 2952 2852 -t 2952 2954 2852 -t 2851 2853 2953 -t 2953 2853 2955 -t 2852 2954 2854 -t 2954 2956 2854 -t 2853 2855 2955 -t 2955 2855 2957 -t 2854 2956 2856 -t 2956 2958 2856 -t 2855 2857 2957 -t 2957 2857 2959 -t 2856 2958 2858 -t 2958 2960 2858 -t 2857 2859 2959 -t 2959 2859 2961 -t 2858 2960 2860 -t 2960 2962 2860 -t 2859 2861 2961 -t 2961 2861 2963 -t 2860 2962 2862 -t 2962 2964 2862 -t 2861 2863 2963 -t 2963 2863 2965 -t 2862 2964 2864 -t 2964 2966 2864 -t 2863 2865 2965 -t 2965 2865 2967 -t 2864 2966 2866 -t 2966 2968 2866 -t 2865 2867 2967 -t 2967 2867 2969 -t 2866 2968 2868 -t 2968 2970 2868 -t 2867 2869 2969 -t 2969 2869 2971 -t 2868 2970 2870 -t 2970 2972 2870 -t 2869 2871 2971 -t 2971 2871 2973 -t 2870 2972 2872 -t 2972 2974 2872 -t 2871 2873 2973 -t 2973 2873 2975 -t 2872 2974 2874 -t 2974 2976 2874 -t 2873 2875 2975 -t 2975 2875 2977 -t 2874 2976 2876 -t 2976 2978 2876 -t 2875 2877 2977 -t 2977 2877 2979 -t 2876 2978 2878 -t 2978 2980 2878 -t 2877 2879 2979 -t 2979 2879 2981 -t 2878 2980 2880 -t 2980 2982 2880 -t 2879 2881 2981 -t 2981 2881 2983 -t 2880 2982 2882 -t 2982 2984 2882 -t 2881 2883 2983 -t 2983 2883 2985 -t 2882 2984 2884 -t 2984 2986 2884 -t 2883 2885 2985 -t 2985 2885 2987 -t 2884 2986 2886 -t 2986 2988 2886 -t 2885 2887 2987 -t 2987 2887 2989 -t 2886 2988 2888 -t 2988 2990 2888 -t 2887 2889 2989 -t 2989 2889 2991 -t 2888 2990 2890 -t 2990 2992 2890 -t 2889 2891 2991 -t 2991 2891 2993 -t 2890 2992 2892 -t 2992 2994 2892 -t 2891 2893 2993 -t 2993 2893 2995 -t 2892 2994 2894 -t 2994 2996 2894 -t 2893 2895 2995 -t 2995 2895 2997 -t 2894 2996 2896 -t 2996 2998 2896 -t 2895 2897 2997 -t 2997 2897 2999 -t 2896 2998 2898 -t 2998 3000 2898 -t 2897 2899 2999 -t 2999 2899 3001 -t 2898 3000 2900 -t 3000 3002 2900 -t 2899 2901 3001 -t 3001 2901 3003 -t 2900 3002 2902 -t 3002 3004 2902 -t 2901 2903 3003 -t 3003 2903 3005 -t 2902 3004 2904 -t 3004 3006 2904 -t 2903 2905 3005 -t 3005 2905 3007 -t 2904 3006 2906 -t 3006 3008 2906 -t 2907 2908 3009 -t 3009 2908 3010 -t 2909 3011 2910 -t 3011 3012 2910 -t 2908 2911 3010 -t 3010 2911 3013 -t 2910 3012 2912 -t 3012 3014 2912 -t 2911 2913 3013 -t 3013 2913 3015 -t 2912 3014 2914 -t 3014 3016 2914 -t 2913 2915 3015 -t 3015 2915 3017 -t 2914 3016 2916 -t 3016 3018 2916 -t 2915 2917 3017 -t 3017 2917 3019 -t 2916 3018 2918 -t 3018 3020 2918 -t 2917 2919 3019 -t 3019 2919 3021 -t 2918 3020 2920 -t 3020 3022 2920 -t 2919 2921 3021 -t 3021 2921 3023 -t 2920 3022 2922 -t 3022 3024 2922 -t 2921 2923 3023 -t 3023 2923 3025 -t 2922 3024 2924 -t 3024 3026 2924 -t 2923 2925 3025 -t 3025 2925 3027 -t 2924 3026 2926 -t 3026 3028 2926 -t 2925 2927 3027 -t 3027 2927 3029 -t 2926 3028 2928 -t 3028 3030 2928 -t 2927 2929 3029 -t 3029 2929 3031 -t 2928 3030 2930 -t 3030 3032 2930 -t 2929 2931 3031 -t 3031 2931 3033 -t 2930 3032 2932 -t 3032 3034 2932 -t 2931 2933 3033 -t 3033 2933 3035 -t 2932 3034 2934 -t 3034 3036 2934 -t 2933 2935 3035 -t 3035 2935 3037 -t 2934 3036 2936 -t 3036 3038 2936 -t 2935 2937 3037 -t 3037 2937 3039 -t 2936 3038 2938 -t 3038 3040 2938 -t 2937 2939 3039 -t 3039 2939 3041 -t 2938 3040 2940 -t 3040 3042 2940 -t 2939 2941 3041 -t 3041 2941 3043 -t 2940 3042 2942 -t 3042 3044 2942 -t 2941 2943 3043 -t 3043 2943 3045 -t 2942 3044 2944 -t 3044 3046 2944 -t 2943 2945 3045 -t 3045 2945 3047 -t 2944 3046 2946 -t 3046 3048 2946 -t 2945 2947 3047 -t 3047 2947 3049 -t 2946 3048 2948 -t 3048 3050 2948 -t 2947 2949 3049 -t 3049 2949 3051 -t 2948 3050 2950 -t 3050 3052 2950 -t 2949 2951 3051 -t 3051 2951 3053 -t 2950 3052 2952 -t 3052 3054 2952 -t 2951 2953 3053 -t 3053 2953 3055 -t 2952 3054 2954 -t 3054 3056 2954 -t 2953 2955 3055 -t 3055 2955 3057 -t 2954 3056 2956 -t 3056 3058 2956 -t 2955 2957 3057 -t 3057 2957 3059 -t 2956 3058 2958 -t 3058 3060 2958 -t 2957 2959 3059 -t 3059 2959 3061 -t 2958 3060 2960 -t 3060 3062 2960 -t 2959 2961 3061 -t 3061 2961 3063 -t 2960 3062 2962 -t 3062 3064 2962 -t 2961 2963 3063 -t 3063 2963 3065 -t 2962 3064 2964 -t 3064 3066 2964 -t 2963 2965 3065 -t 3065 2965 3067 -t 2964 3066 2966 -t 3066 3068 2966 -t 2965 2967 3067 -t 3067 2967 3069 -t 2966 3068 2968 -t 3068 3070 2968 -t 2967 2969 3069 -t 3069 2969 3071 -t 2968 3070 2970 -t 3070 3072 2970 -t 2969 2971 3071 -t 3071 2971 3073 -t 2970 3072 2972 -t 3072 3074 2972 -t 2971 2973 3073 -t 3073 2973 3075 -t 2972 3074 2974 -t 3074 3076 2974 -t 2973 2975 3075 -t 3075 2975 3077 -t 2974 3076 2976 -t 3076 3078 2976 -t 2975 2977 3077 -t 3077 2977 3079 -t 2976 3078 2978 -t 3078 3080 2978 -t 2977 2979 3079 -t 3079 2979 3081 -t 2978 3080 2980 -t 3080 3082 2980 -t 2979 2981 3081 -t 3081 2981 3083 -t 2980 3082 2982 -t 3082 3084 2982 -t 2981 2983 3083 -t 3083 2983 3085 -t 2982 3084 2984 -t 3084 3086 2984 -t 2983 2985 3085 -t 3085 2985 3087 -t 2984 3086 2986 -t 3086 3088 2986 -t 2985 2987 3087 -t 3087 2987 3089 -t 2986 3088 2988 -t 3088 3090 2988 -t 2987 2989 3089 -t 3089 2989 3091 -t 2988 3090 2990 -t 3090 3092 2990 -t 2989 2991 3091 -t 3091 2991 3093 -t 2990 3092 2992 -t 3092 3094 2992 -t 2991 2993 3093 -t 3093 2993 3095 -t 2992 3094 2994 -t 3094 3096 2994 -t 2993 2995 3095 -t 3095 2995 3097 -t 2994 3096 2996 -t 3096 3098 2996 -t 2995 2997 3097 -t 3097 2997 3099 -t 2996 3098 2998 -t 3098 3100 2998 -t 2997 2999 3099 -t 3099 2999 3101 -t 2998 3100 3000 -t 3100 3102 3000 -t 2999 3001 3101 -t 3101 3001 3103 -t 3000 3102 3002 -t 3102 3104 3002 -t 3001 3003 3103 -t 3103 3003 3105 -t 3002 3104 3004 -t 3104 3106 3004 -t 3003 3005 3105 -t 3105 3005 3107 -t 3004 3106 3006 -t 3106 3108 3006 -t 3005 3007 3107 -t 3107 3007 3109 -t 3006 3108 3008 -t 3108 3110 3008 -t 3009 3010 3111 -t 3111 3010 3112 -t 3011 3113 3012 -t 3113 3114 3012 -t 3010 3013 3112 -t 3112 3013 3115 -t 3012 3114 3014 -t 3114 3116 3014 -t 3013 3015 3115 -t 3115 3015 3117 -t 3014 3116 3016 -t 3116 3118 3016 -t 3015 3017 3117 -t 3117 3017 3119 -t 3016 3118 3018 -t 3118 3120 3018 -t 3017 3019 3119 -t 3119 3019 3121 -t 3018 3120 3020 -t 3120 3122 3020 -t 3019 3021 3121 -t 3121 3021 3123 -t 3020 3122 3022 -t 3122 3124 3022 -t 3021 3023 3123 -t 3123 3023 3125 -t 3022 3124 3024 -t 3124 3126 3024 -t 3023 3025 3125 -t 3125 3025 3127 -t 3024 3126 3026 -t 3126 3128 3026 -t 3025 3027 3127 -t 3127 3027 3129 -t 3026 3128 3028 -t 3128 3130 3028 -t 3027 3029 3129 -t 3129 3029 3131 -t 3028 3130 3030 -t 3130 3132 3030 -t 3029 3031 3131 -t 3131 3031 3133 -t 3030 3132 3032 -t 3132 3134 3032 -t 3031 3033 3133 -t 3133 3033 3135 -t 3032 3134 3034 -t 3134 3136 3034 -t 3033 3035 3135 -t 3135 3035 3137 -t 3034 3136 3036 -t 3136 3138 3036 -t 3035 3037 3137 -t 3137 3037 3139 -t 3036 3138 3038 -t 3138 3140 3038 -t 3037 3039 3139 -t 3139 3039 3141 -t 3038 3140 3040 -t 3140 3142 3040 -t 3039 3041 3141 -t 3141 3041 3143 -t 3040 3142 3042 -t 3142 3144 3042 -t 3041 3043 3143 -t 3143 3043 3145 -t 3042 3144 3044 -t 3144 3146 3044 -t 3043 3045 3145 -t 3145 3045 3147 -t 3044 3146 3046 -t 3146 3148 3046 -t 3045 3047 3147 -t 3147 3047 3149 -t 3046 3148 3048 -t 3148 3150 3048 -t 3047 3049 3149 -t 3149 3049 3151 -t 3048 3150 3050 -t 3150 3152 3050 -t 3049 3051 3151 -t 3151 3051 3153 -t 3050 3152 3052 -t 3152 3154 3052 -t 3051 3053 3153 -t 3153 3053 3155 -t 3052 3154 3054 -t 3154 3156 3054 -t 3053 3055 3155 -t 3155 3055 3157 -t 3054 3156 3056 -t 3156 3158 3056 -t 3055 3057 3157 -t 3157 3057 3159 -t 3056 3158 3058 -t 3158 3160 3058 -t 3057 3059 3159 -t 3159 3059 3161 -t 3058 3160 3060 -t 3160 3162 3060 -t 3059 3061 3161 -t 3161 3061 3163 -t 3060 3162 3062 -t 3162 3164 3062 -t 3061 3063 3163 -t 3163 3063 3165 -t 3062 3164 3064 -t 3164 3166 3064 -t 3063 3065 3165 -t 3165 3065 3167 -t 3064 3166 3066 -t 3166 3168 3066 -t 3065 3067 3167 -t 3167 3067 3169 -t 3066 3168 3068 -t 3168 3170 3068 -t 3067 3069 3169 -t 3169 3069 3171 -t 3068 3170 3070 -t 3170 3172 3070 -t 3069 3071 3171 -t 3171 3071 3173 -t 3070 3172 3072 -t 3172 3174 3072 -t 3071 3073 3173 -t 3173 3073 3175 -t 3072 3174 3074 -t 3174 3176 3074 -t 3073 3075 3175 -t 3175 3075 3177 -t 3074 3176 3076 -t 3176 3178 3076 -t 3075 3077 3177 -t 3177 3077 3179 -t 3076 3178 3078 -t 3178 3180 3078 -t 3077 3079 3179 -t 3179 3079 3181 -t 3078 3180 3080 -t 3180 3182 3080 -t 3079 3081 3181 -t 3181 3081 3183 -t 3080 3182 3082 -t 3182 3184 3082 -t 3081 3083 3183 -t 3183 3083 3185 -t 3082 3184 3084 -t 3184 3186 3084 -t 3083 3085 3185 -t 3185 3085 3187 -t 3084 3186 3086 -t 3186 3188 3086 -t 3085 3087 3187 -t 3187 3087 3189 -t 3086 3188 3088 -t 3188 3190 3088 -t 3087 3089 3189 -t 3189 3089 3191 -t 3088 3190 3090 -t 3190 3192 3090 -t 3089 3091 3191 -t 3191 3091 3193 -t 3090 3192 3092 -t 3192 3194 3092 -t 3091 3093 3193 -t 3193 3093 3195 -t 3092 3194 3094 -t 3194 3196 3094 -t 3093 3095 3195 -t 3195 3095 3197 -t 3094 3196 3096 -t 3196 3198 3096 -t 3095 3097 3197 -t 3197 3097 3199 -t 3096 3198 3098 -t 3198 3200 3098 -t 3097 3099 3199 -t 3199 3099 3201 -t 3098 3200 3100 -t 3200 3202 3100 -t 3099 3101 3201 -t 3201 3101 3203 -t 3100 3202 3102 -t 3202 3204 3102 -t 3101 3103 3203 -t 3203 3103 3205 -t 3102 3204 3104 -t 3204 3206 3104 -t 3103 3105 3205 -t 3205 3105 3207 -t 3104 3206 3106 -t 3206 3208 3106 -t 3105 3107 3207 -t 3207 3107 3209 -t 3106 3208 3108 -t 3208 3210 3108 -t 3107 3109 3209 -t 3209 3109 3211 -t 3108 3210 3110 -t 3210 3212 3110 -t 3111 3112 3213 -t 3213 3112 3214 -t 3113 3215 3114 -t 3215 3216 3114 -t 3112 3115 3214 -t 3214 3115 3217 -t 3114 3216 3116 -t 3216 3218 3116 -t 3115 3117 3217 -t 3217 3117 3219 -t 3116 3218 3118 -t 3218 3220 3118 -t 3117 3119 3219 -t 3219 3119 3221 -t 3118 3220 3120 -t 3220 3222 3120 -t 3119 3121 3221 -t 3221 3121 3223 -t 3120 3222 3122 -t 3222 3224 3122 -t 3121 3123 3223 -t 3223 3123 3225 -t 3122 3224 3124 -t 3224 3226 3124 -t 3123 3125 3225 -t 3225 3125 3227 -t 3124 3226 3126 -t 3226 3228 3126 -t 3125 3127 3227 -t 3227 3127 3229 -t 3126 3228 3128 -t 3228 3230 3128 -t 3127 3129 3229 -t 3229 3129 3231 -t 3128 3230 3130 -t 3230 3232 3130 -t 3129 3131 3231 -t 3231 3131 3233 -t 3130 3232 3132 -t 3232 3234 3132 -t 3131 3133 3233 -t 3233 3133 3235 -t 3132 3234 3134 -t 3234 3236 3134 -t 3133 3135 3235 -t 3235 3135 3237 -t 3134 3236 3136 -t 3236 3238 3136 -t 3135 3137 3237 -t 3237 3137 3239 -t 3136 3238 3138 -t 3238 3240 3138 -t 3137 3139 3239 -t 3239 3139 3241 -t 3138 3240 3140 -t 3240 3242 3140 -t 3139 3141 3241 -t 3241 3141 3243 -t 3140 3242 3142 -t 3242 3244 3142 -t 3141 3143 3243 -t 3243 3143 3245 -t 3142 3244 3144 -t 3244 3246 3144 -t 3143 3145 3245 -t 3245 3145 3247 -t 3144 3246 3146 -t 3246 3248 3146 -t 3145 3147 3247 -t 3247 3147 3249 -t 3146 3248 3148 -t 3248 3250 3148 -t 3147 3149 3249 -t 3249 3149 3251 -t 3148 3250 3150 -t 3250 3252 3150 -t 3149 3151 3251 -t 3251 3151 3253 -t 3150 3252 3152 -t 3252 3254 3152 -t 3151 3153 3253 -t 3253 3153 3255 -t 3152 3254 3154 -t 3254 3256 3154 -t 3153 3155 3255 -t 3255 3155 3257 -t 3154 3256 3156 -t 3256 3258 3156 -t 3155 3157 3257 -t 3257 3157 3259 -t 3156 3258 3158 -t 3258 3260 3158 -t 3157 3159 3259 -t 3259 3159 3261 -t 3158 3260 3160 -t 3260 3262 3160 -t 3159 3161 3261 -t 3261 3161 3263 -t 3160 3262 3162 -t 3262 3264 3162 -t 3161 3163 3263 -t 3263 3163 3265 -t 3162 3264 3164 -t 3264 3266 3164 -t 3163 3165 3265 -t 3265 3165 3267 -t 3164 3266 3166 -t 3266 3268 3166 -t 3165 3167 3267 -t 3267 3167 3269 -t 3166 3268 3168 -t 3268 3270 3168 -t 3167 3169 3269 -t 3269 3169 3271 -t 3168 3270 3170 -t 3270 3272 3170 -t 3169 3171 3271 -t 3271 3171 3273 -t 3170 3272 3172 -t 3272 3274 3172 -t 3171 3173 3273 -t 3273 3173 3275 -t 3172 3274 3174 -t 3274 3276 3174 -t 3173 3175 3275 -t 3275 3175 3277 -t 3174 3276 3176 -t 3276 3278 3176 -t 3175 3177 3277 -t 3277 3177 3279 -t 3176 3278 3178 -t 3278 3280 3178 -t 3177 3179 3279 -t 3279 3179 3281 -t 3178 3280 3180 -t 3280 3282 3180 -t 3179 3181 3281 -t 3281 3181 3283 -t 3180 3282 3182 -t 3282 3284 3182 -t 3181 3183 3283 -t 3283 3183 3285 -t 3182 3284 3184 -t 3284 3286 3184 -t 3183 3185 3285 -t 3285 3185 3287 -t 3184 3286 3186 -t 3286 3288 3186 -t 3185 3187 3287 -t 3287 3187 3289 -t 3186 3288 3188 -t 3288 3290 3188 -t 3187 3189 3289 -t 3289 3189 3291 -t 3188 3290 3190 -t 3290 3292 3190 -t 3189 3191 3291 -t 3291 3191 3293 -t 3190 3292 3192 -t 3292 3294 3192 -t 3191 3193 3293 -t 3293 3193 3295 -t 3192 3294 3194 -t 3294 3296 3194 -t 3193 3195 3295 -t 3295 3195 3297 -t 3194 3296 3196 -t 3296 3298 3196 -t 3195 3197 3297 -t 3297 3197 3299 -t 3196 3298 3198 -t 3298 3300 3198 -t 3197 3199 3299 -t 3299 3199 3301 -t 3198 3300 3200 -t 3300 3302 3200 -t 3199 3201 3301 -t 3301 3201 3303 -t 3200 3302 3202 -t 3302 3304 3202 -t 3201 3203 3303 -t 3303 3203 3305 -t 3202 3304 3204 -t 3304 3306 3204 -t 3203 3205 3305 -t 3305 3205 3307 -t 3204 3306 3206 -t 3306 3308 3206 -t 3205 3207 3307 -t 3307 3207 3309 -t 3206 3308 3208 -t 3308 3310 3208 -t 3207 3209 3309 -t 3309 3209 3311 -t 3208 3310 3210 -t 3310 3312 3210 -t 3209 3211 3311 -t 3311 3211 3313 -t 3210 3312 3212 -t 3312 3314 3212 -t 3213 3214 3315 -t 3315 3214 3316 -t 3215 3317 3216 -t 3317 3318 3216 -t 3214 3217 3316 -t 3316 3217 3319 -t 3216 3318 3218 -t 3318 3320 3218 -t 3217 3219 3319 -t 3319 3219 3321 -t 3218 3320 3220 -t 3320 3322 3220 -t 3219 3221 3321 -t 3321 3221 3323 -t 3220 3322 3222 -t 3322 3324 3222 -t 3221 3223 3323 -t 3323 3223 3325 -t 3222 3324 3224 -t 3324 3326 3224 -t 3223 3225 3325 -t 3325 3225 3327 -t 3224 3326 3226 -t 3326 3328 3226 -t 3225 3227 3327 -t 3327 3227 3329 -t 3226 3328 3228 -t 3328 3330 3228 -t 3227 3229 3329 -t 3329 3229 3331 -t 3228 3330 3230 -t 3330 3332 3230 -t 3229 3231 3331 -t 3331 3231 3333 -t 3230 3332 3232 -t 3332 3334 3232 -t 3231 3233 3333 -t 3333 3233 3335 -t 3232 3334 3234 -t 3334 3336 3234 -t 3233 3235 3335 -t 3335 3235 3337 -t 3234 3336 3236 -t 3336 3338 3236 -t 3235 3237 3337 -t 3337 3237 3339 -t 3236 3338 3238 -t 3338 3340 3238 -t 3237 3239 3339 -t 3339 3239 3341 -t 3238 3340 3240 -t 3340 3342 3240 -t 3239 3241 3341 -t 3341 3241 3343 -t 3240 3342 3242 -t 3342 3344 3242 -t 3241 3243 3343 -t 3343 3243 3345 -t 3242 3344 3244 -t 3344 3346 3244 -t 3243 3245 3345 -t 3345 3245 3347 -t 3244 3346 3246 -t 3346 3348 3246 -t 3245 3247 3347 -t 3347 3247 3349 -t 3246 3348 3248 -t 3348 3350 3248 -t 3247 3249 3349 -t 3349 3249 3351 -t 3248 3350 3250 -t 3350 3352 3250 -t 3249 3251 3351 -t 3351 3251 3353 -t 3250 3352 3252 -t 3352 3354 3252 -t 3251 3253 3353 -t 3353 3253 3355 -t 3252 3354 3254 -t 3354 3356 3254 -t 3253 3255 3355 -t 3355 3255 3357 -t 3254 3356 3256 -t 3356 3358 3256 -t 3255 3257 3357 -t 3357 3257 3359 -t 3256 3358 3258 -t 3358 3360 3258 -t 3257 3259 3359 -t 3359 3259 3361 -t 3258 3360 3260 -t 3360 3362 3260 -t 3259 3261 3361 -t 3361 3261 3363 -t 3260 3362 3262 -t 3362 3364 3262 -t 3261 3263 3363 -t 3363 3263 3365 -t 3262 3364 3264 -t 3364 3366 3264 -t 3263 3265 3365 -t 3365 3265 3367 -t 3264 3366 3266 -t 3366 3368 3266 -t 3265 3267 3367 -t 3367 3267 3369 -t 3266 3368 3268 -t 3368 3370 3268 -t 3267 3269 3369 -t 3369 3269 3371 -t 3268 3370 3270 -t 3370 3372 3270 -t 3269 3271 3371 -t 3371 3271 3373 -t 3270 3372 3272 -t 3372 3374 3272 -t 3271 3273 3373 -t 3373 3273 3375 -t 3272 3374 3274 -t 3374 3376 3274 -t 3273 3275 3375 -t 3375 3275 3377 -t 3274 3376 3276 -t 3376 3378 3276 -t 3275 3277 3377 -t 3377 3277 3379 -t 3276 3378 3278 -t 3378 3380 3278 -t 3277 3279 3379 -t 3379 3279 3381 -t 3278 3380 3280 -t 3380 3382 3280 -t 3279 3281 3381 -t 3381 3281 3383 -t 3280 3382 3282 -t 3382 3384 3282 -t 3281 3283 3383 -t 3383 3283 3385 -t 3282 3384 3284 -t 3384 3386 3284 -t 3283 3285 3385 -t 3385 3285 3387 -t 3284 3386 3286 -t 3386 3388 3286 -t 3285 3287 3387 -t 3387 3287 3389 -t 3286 3388 3288 -t 3388 3390 3288 -t 3287 3289 3389 -t 3389 3289 3391 -t 3288 3390 3290 -t 3390 3392 3290 -t 3289 3291 3391 -t 3391 3291 3393 -t 3290 3392 3292 -t 3392 3394 3292 -t 3291 3293 3393 -t 3393 3293 3395 -t 3292 3394 3294 -t 3394 3396 3294 -t 3293 3295 3395 -t 3395 3295 3397 -t 3294 3396 3296 -t 3396 3398 3296 -t 3295 3297 3397 -t 3397 3297 3399 -t 3296 3398 3298 -t 3398 3400 3298 -t 3297 3299 3399 -t 3399 3299 3401 -t 3298 3400 3300 -t 3400 3402 3300 -t 3299 3301 3401 -t 3401 3301 3403 -t 3300 3402 3302 -t 3402 3404 3302 -t 3301 3303 3403 -t 3403 3303 3405 -t 3302 3404 3304 -t 3404 3406 3304 -t 3303 3305 3405 -t 3405 3305 3407 -t 3304 3406 3306 -t 3406 3408 3306 -t 3305 3307 3407 -t 3407 3307 3409 -t 3306 3408 3308 -t 3408 3410 3308 -t 3307 3309 3409 -t 3409 3309 3411 -t 3308 3410 3310 -t 3410 3412 3310 -t 3309 3311 3411 -t 3411 3311 3413 -t 3310 3412 3312 -t 3412 3414 3312 -t 3311 3313 3413 -t 3413 3313 3415 -t 3312 3414 3314 -t 3414 3416 3314 -t 3315 3316 3417 -t 3417 3316 3418 -t 3317 3419 3318 -t 3419 3420 3318 -t 3316 3319 3418 -t 3418 3319 3421 -t 3318 3420 3320 -t 3420 3422 3320 -t 3319 3321 3421 -t 3421 3321 3423 -t 3320 3422 3322 -t 3422 3424 3322 -t 3321 3323 3423 -t 3423 3323 3425 -t 3322 3424 3324 -t 3424 3426 3324 -t 3323 3325 3425 -t 3425 3325 3427 -t 3324 3426 3326 -t 3426 3428 3326 -t 3325 3327 3427 -t 3427 3327 3429 -t 3326 3428 3328 -t 3428 3430 3328 -t 3327 3329 3429 -t 3429 3329 3431 -t 3328 3430 3330 -t 3430 3432 3330 -t 3329 3331 3431 -t 3431 3331 3433 -t 3330 3432 3332 -t 3432 3434 3332 -t 3331 3333 3433 -t 3433 3333 3435 -t 3332 3434 3334 -t 3434 3436 3334 -t 3333 3335 3435 -t 3435 3335 3437 -t 3334 3436 3336 -t 3436 3438 3336 -t 3335 3337 3437 -t 3437 3337 3439 -t 3336 3438 3338 -t 3438 3440 3338 -t 3337 3339 3439 -t 3439 3339 3441 -t 3338 3440 3340 -t 3440 3442 3340 -t 3339 3341 3441 -t 3441 3341 3443 -t 3340 3442 3342 -t 3442 3444 3342 -t 3341 3343 3443 -t 3443 3343 3445 -t 3342 3444 3344 -t 3444 3446 3344 -t 3343 3345 3445 -t 3445 3345 3447 -t 3344 3446 3346 -t 3446 3448 3346 -t 3345 3347 3447 -t 3447 3347 3449 -t 3346 3448 3348 -t 3448 3450 3348 -t 3347 3349 3449 -t 3449 3349 3451 -t 3348 3450 3350 -t 3450 3452 3350 -t 3349 3351 3451 -t 3451 3351 3453 -t 3350 3452 3352 -t 3452 3454 3352 -t 3351 3353 3453 -t 3453 3353 3455 -t 3352 3454 3354 -t 3454 3456 3354 -t 3353 3355 3455 -t 3455 3355 3457 -t 3354 3456 3356 -t 3456 3458 3356 -t 3355 3357 3457 -t 3457 3357 3459 -t 3356 3458 3358 -t 3458 3460 3358 -t 3357 3359 3459 -t 3459 3359 3461 -t 3358 3460 3360 -t 3460 3462 3360 -t 3359 3361 3461 -t 3461 3361 3463 -t 3360 3462 3362 -t 3462 3464 3362 -t 3361 3363 3463 -t 3463 3363 3465 -t 3362 3464 3364 -t 3464 3466 3364 -t 3363 3365 3465 -t 3465 3365 3467 -t 3364 3466 3366 -t 3466 3468 3366 -t 3365 3367 3467 -t 3467 3367 3469 -t 3366 3468 3368 -t 3468 3470 3368 -t 3367 3369 3469 -t 3469 3369 3471 -t 3368 3470 3370 -t 3470 3472 3370 -t 3369 3371 3471 -t 3471 3371 3473 -t 3370 3472 3372 -t 3472 3474 3372 -t 3371 3373 3473 -t 3473 3373 3475 -t 3372 3474 3374 -t 3474 3476 3374 -t 3373 3375 3475 -t 3475 3375 3477 -t 3374 3476 3376 -t 3476 3478 3376 -t 3375 3377 3477 -t 3477 3377 3479 -t 3376 3478 3378 -t 3478 3480 3378 -t 3377 3379 3479 -t 3479 3379 3481 -t 3378 3480 3380 -t 3480 3482 3380 -t 3379 3381 3481 -t 3481 3381 3483 -t 3380 3482 3382 -t 3482 3484 3382 -t 3381 3383 3483 -t 3483 3383 3485 -t 3382 3484 3384 -t 3484 3486 3384 -t 3383 3385 3485 -t 3485 3385 3487 -t 3384 3486 3386 -t 3486 3488 3386 -t 3385 3387 3487 -t 3487 3387 3489 -t 3386 3488 3388 -t 3488 3490 3388 -t 3387 3389 3489 -t 3489 3389 3491 -t 3388 3490 3390 -t 3490 3492 3390 -t 3389 3391 3491 -t 3491 3391 3493 -t 3390 3492 3392 -t 3492 3494 3392 -t 3391 3393 3493 -t 3493 3393 3495 -t 3392 3494 3394 -t 3494 3496 3394 -t 3393 3395 3495 -t 3495 3395 3497 -t 3394 3496 3396 -t 3496 3498 3396 -t 3395 3397 3497 -t 3497 3397 3499 -t 3396 3498 3398 -t 3498 3500 3398 -t 3397 3399 3499 -t 3499 3399 3501 -t 3398 3500 3400 -t 3500 3502 3400 -t 3399 3401 3501 -t 3501 3401 3503 -t 3400 3502 3402 -t 3502 3504 3402 -t 3401 3403 3503 -t 3503 3403 3505 -t 3402 3504 3404 -t 3504 3506 3404 -t 3403 3405 3505 -t 3505 3405 3507 -t 3404 3506 3406 -t 3506 3508 3406 -t 3405 3407 3507 -t 3507 3407 3509 -t 3406 3508 3408 -t 3508 3510 3408 -t 3407 3409 3509 -t 3509 3409 3511 -t 3408 3510 3410 -t 3510 3512 3410 -t 3409 3411 3511 -t 3511 3411 3513 -t 3410 3512 3412 -t 3512 3514 3412 -t 3411 3413 3513 -t 3513 3413 3515 -t 3412 3514 3414 -t 3514 3516 3414 -t 3413 3415 3515 -t 3515 3415 3517 -t 3414 3516 3416 -t 3516 3518 3416 -t 3417 3418 3519 -t 3519 3418 3520 -t 3419 3521 3420 -t 3521 3522 3420 -t 3418 3421 3520 -t 3520 3421 3523 -t 3420 3522 3422 -t 3522 3524 3422 -t 3421 3423 3523 -t 3523 3423 3525 -t 3422 3524 3424 -t 3524 3526 3424 -t 3423 3425 3525 -t 3525 3425 3527 -t 3424 3526 3426 -t 3526 3528 3426 -t 3425 3427 3527 -t 3527 3427 3529 -t 3426 3528 3428 -t 3528 3530 3428 -t 3427 3429 3529 -t 3529 3429 3531 -t 3428 3530 3430 -t 3530 3532 3430 -t 3429 3431 3531 -t 3531 3431 3533 -t 3430 3532 3432 -t 3532 3534 3432 -t 3431 3433 3533 -t 3533 3433 3535 -t 3432 3534 3434 -t 3534 3536 3434 -t 3433 3435 3535 -t 3535 3435 3537 -t 3434 3536 3436 -t 3536 3538 3436 -t 3435 3437 3537 -t 3537 3437 3539 -t 3436 3538 3438 -t 3538 3540 3438 -t 3437 3439 3539 -t 3539 3439 3541 -t 3438 3540 3440 -t 3540 3542 3440 -t 3439 3441 3541 -t 3541 3441 3543 -t 3440 3542 3442 -t 3542 3544 3442 -t 3441 3443 3543 -t 3543 3443 3545 -t 3442 3544 3444 -t 3544 3546 3444 -t 3443 3445 3545 -t 3545 3445 3547 -t 3444 3546 3446 -t 3546 3548 3446 -t 3445 3447 3547 -t 3547 3447 3549 -t 3446 3548 3448 -t 3548 3550 3448 -t 3447 3449 3549 -t 3549 3449 3551 -t 3448 3550 3450 -t 3550 3552 3450 -t 3449 3451 3551 -t 3551 3451 3553 -t 3450 3552 3452 -t 3552 3554 3452 -t 3451 3453 3553 -t 3553 3453 3555 -t 3452 3554 3454 -t 3554 3556 3454 -t 3453 3455 3555 -t 3555 3455 3557 -t 3454 3556 3456 -t 3556 3558 3456 -t 3455 3457 3557 -t 3557 3457 3559 -t 3456 3558 3458 -t 3558 3560 3458 -t 3457 3459 3559 -t 3559 3459 3561 -t 3458 3560 3460 -t 3560 3562 3460 -t 3459 3461 3561 -t 3561 3461 3563 -t 3460 3562 3462 -t 3562 3564 3462 -t 3461 3463 3563 -t 3563 3463 3565 -t 3462 3564 3464 -t 3564 3566 3464 -t 3463 3465 3565 -t 3565 3465 3567 -t 3464 3566 3466 -t 3566 3568 3466 -t 3465 3467 3567 -t 3567 3467 3569 -t 3466 3568 3468 -t 3568 3570 3468 -t 3467 3469 3569 -t 3569 3469 3571 -t 3468 3570 3470 -t 3570 3572 3470 -t 3469 3471 3571 -t 3571 3471 3573 -t 3470 3572 3472 -t 3572 3574 3472 -t 3471 3473 3573 -t 3573 3473 3575 -t 3472 3574 3474 -t 3574 3576 3474 -t 3473 3475 3575 -t 3575 3475 3577 -t 3474 3576 3476 -t 3576 3578 3476 -t 3475 3477 3577 -t 3577 3477 3579 -t 3476 3578 3478 -t 3578 3580 3478 -t 3477 3479 3579 -t 3579 3479 3581 -t 3478 3580 3480 -t 3580 3582 3480 -t 3479 3481 3581 -t 3581 3481 3583 -t 3480 3582 3482 -t 3582 3584 3482 -t 3481 3483 3583 -t 3583 3483 3585 -t 3482 3584 3484 -t 3584 3586 3484 -t 3483 3485 3585 -t 3585 3485 3587 -t 3484 3586 3486 -t 3586 3588 3486 -t 3485 3487 3587 -t 3587 3487 3589 -t 3486 3588 3488 -t 3588 3590 3488 -t 3487 3489 3589 -t 3589 3489 3591 -t 3488 3590 3490 -t 3590 3592 3490 -t 3489 3491 3591 -t 3591 3491 3593 -t 3490 3592 3492 -t 3592 3594 3492 -t 3491 3493 3593 -t 3593 3493 3595 -t 3492 3594 3494 -t 3594 3596 3494 -t 3493 3495 3595 -t 3595 3495 3597 -t 3494 3596 3496 -t 3596 3598 3496 -t 3495 3497 3597 -t 3597 3497 3599 -t 3496 3598 3498 -t 3598 3600 3498 -t 3497 3499 3599 -t 3599 3499 3601 -t 3498 3600 3500 -t 3600 3602 3500 -t 3499 3501 3601 -t 3601 3501 3603 -t 3500 3602 3502 -t 3602 3604 3502 -t 3501 3503 3603 -t 3603 3503 3605 -t 3502 3604 3504 -t 3604 3606 3504 -t 3503 3505 3605 -t 3605 3505 3607 -t 3504 3606 3506 -t 3606 3608 3506 -t 3505 3507 3607 -t 3607 3507 3609 -t 3506 3608 3508 -t 3608 3610 3508 -t 3507 3509 3609 -t 3609 3509 3611 -t 3508 3610 3510 -t 3610 3612 3510 -t 3509 3511 3611 -t 3611 3511 3613 -t 3510 3612 3512 -t 3612 3614 3512 -t 3511 3513 3613 -t 3613 3513 3615 -t 3512 3614 3514 -t 3614 3616 3514 -t 3513 3515 3615 -t 3615 3515 3617 -t 3514 3616 3516 -t 3616 3618 3516 -t 3515 3517 3617 -t 3617 3517 3619 -t 3516 3618 3518 -t 3618 3620 3518 -t 3519 3520 3621 -t 3621 3520 3622 -t 3521 3623 3522 -t 3623 3624 3522 -t 3520 3523 3622 -t 3622 3523 3625 -t 3522 3624 3524 -t 3624 3626 3524 -t 3523 3525 3625 -t 3625 3525 3627 -t 3524 3626 3526 -t 3626 3628 3526 -t 3525 3527 3627 -t 3627 3527 3629 -t 3526 3628 3528 -t 3628 3630 3528 -t 3527 3529 3629 -t 3629 3529 3631 -t 3528 3630 3530 -t 3630 3632 3530 -t 3529 3531 3631 -t 3631 3531 3633 -t 3530 3632 3532 -t 3632 3634 3532 -t 3531 3533 3633 -t 3633 3533 3635 -t 3532 3634 3534 -t 3634 3636 3534 -t 3533 3535 3635 -t 3635 3535 3637 -t 3534 3636 3536 -t 3636 3638 3536 -t 3535 3537 3637 -t 3637 3537 3639 -t 3536 3638 3538 -t 3638 3640 3538 -t 3537 3539 3639 -t 3639 3539 3641 -t 3538 3640 3540 -t 3640 3642 3540 -t 3539 3541 3641 -t 3641 3541 3643 -t 3540 3642 3542 -t 3642 3644 3542 -t 3541 3543 3643 -t 3643 3543 3645 -t 3542 3644 3544 -t 3644 3646 3544 -t 3543 3545 3645 -t 3645 3545 3647 -t 3544 3646 3546 -t 3646 3648 3546 -t 3545 3547 3647 -t 3647 3547 3649 -t 3546 3648 3548 -t 3648 3650 3548 -t 3547 3549 3649 -t 3649 3549 3651 -t 3548 3650 3550 -t 3650 3652 3550 -t 3549 3551 3651 -t 3651 3551 3653 -t 3550 3652 3552 -t 3652 3654 3552 -t 3551 3553 3653 -t 3653 3553 3655 -t 3552 3654 3554 -t 3654 3656 3554 -t 3553 3555 3655 -t 3655 3555 3657 -t 3554 3656 3556 -t 3656 3658 3556 -t 3555 3557 3657 -t 3657 3557 3659 -t 3556 3658 3558 -t 3658 3660 3558 -t 3557 3559 3659 -t 3659 3559 3661 -t 3558 3660 3560 -t 3660 3662 3560 -t 3559 3561 3661 -t 3661 3561 3663 -t 3560 3662 3562 -t 3662 3664 3562 -t 3561 3563 3663 -t 3663 3563 3665 -t 3562 3664 3564 -t 3664 3666 3564 -t 3563 3565 3665 -t 3665 3565 3667 -t 3564 3666 3566 -t 3666 3668 3566 -t 3565 3567 3667 -t 3667 3567 3669 -t 3566 3668 3568 -t 3668 3670 3568 -t 3567 3569 3669 -t 3669 3569 3671 -t 3568 3670 3570 -t 3670 3672 3570 -t 3569 3571 3671 -t 3671 3571 3673 -t 3570 3672 3572 -t 3672 3674 3572 -t 3571 3573 3673 -t 3673 3573 3675 -t 3572 3674 3574 -t 3674 3676 3574 -t 3573 3575 3675 -t 3675 3575 3677 -t 3574 3676 3576 -t 3676 3678 3576 -t 3575 3577 3677 -t 3677 3577 3679 -t 3576 3678 3578 -t 3678 3680 3578 -t 3577 3579 3679 -t 3679 3579 3681 -t 3578 3680 3580 -t 3680 3682 3580 -t 3579 3581 3681 -t 3681 3581 3683 -t 3580 3682 3582 -t 3682 3684 3582 -t 3581 3583 3683 -t 3683 3583 3685 -t 3582 3684 3584 -t 3684 3686 3584 -t 3583 3585 3685 -t 3685 3585 3687 -t 3584 3686 3586 -t 3686 3688 3586 -t 3585 3587 3687 -t 3687 3587 3689 -t 3586 3688 3588 -t 3688 3690 3588 -t 3587 3589 3689 -t 3689 3589 3691 -t 3588 3690 3590 -t 3690 3692 3590 -t 3589 3591 3691 -t 3691 3591 3693 -t 3590 3692 3592 -t 3692 3694 3592 -t 3591 3593 3693 -t 3693 3593 3695 -t 3592 3694 3594 -t 3694 3696 3594 -t 3593 3595 3695 -t 3695 3595 3697 -t 3594 3696 3596 -t 3696 3698 3596 -t 3595 3597 3697 -t 3697 3597 3699 -t 3596 3698 3598 -t 3698 3700 3598 -t 3597 3599 3699 -t 3699 3599 3701 -t 3598 3700 3600 -t 3700 3702 3600 -t 3599 3601 3701 -t 3701 3601 3703 -t 3600 3702 3602 -t 3702 3704 3602 -t 3601 3603 3703 -t 3703 3603 3705 -t 3602 3704 3604 -t 3704 3706 3604 -t 3603 3605 3705 -t 3705 3605 3707 -t 3604 3706 3606 -t 3706 3708 3606 -t 3605 3607 3707 -t 3707 3607 3709 -t 3606 3708 3608 -t 3708 3710 3608 -t 3607 3609 3709 -t 3709 3609 3711 -t 3608 3710 3610 -t 3710 3712 3610 -t 3609 3611 3711 -t 3711 3611 3713 -t 3610 3712 3612 -t 3712 3714 3612 -t 3611 3613 3713 -t 3713 3613 3715 -t 3612 3714 3614 -t 3714 3716 3614 -t 3613 3615 3715 -t 3715 3615 3717 -t 3614 3716 3616 -t 3716 3718 3616 -t 3615 3617 3717 -t 3717 3617 3719 -t 3616 3718 3618 -t 3718 3720 3618 -t 3617 3619 3719 -t 3719 3619 3721 -t 3618 3720 3620 -t 3720 3722 3620 -t 3621 3622 3723 -t 3723 3622 3724 -t 3623 3725 3624 -t 3725 3726 3624 -t 3622 3625 3724 -t 3724 3625 3727 -t 3624 3726 3626 -t 3726 3728 3626 -t 3625 3627 3727 -t 3727 3627 3729 -t 3626 3728 3628 -t 3728 3730 3628 -t 3627 3629 3729 -t 3729 3629 3731 -t 3628 3730 3630 -t 3730 3732 3630 -t 3629 3631 3731 -t 3731 3631 3733 -t 3630 3732 3632 -t 3732 3734 3632 -t 3631 3633 3733 -t 3733 3633 3735 -t 3632 3734 3634 -t 3734 3736 3634 -t 3633 3635 3735 -t 3735 3635 3737 -t 3634 3736 3636 -t 3736 3738 3636 -t 3635 3637 3737 -t 3737 3637 3739 -t 3636 3738 3638 -t 3738 3740 3638 -t 3637 3639 3739 -t 3739 3639 3741 -t 3638 3740 3640 -t 3740 3742 3640 -t 3639 3641 3741 -t 3741 3641 3743 -t 3640 3742 3642 -t 3742 3744 3642 -t 3641 3643 3743 -t 3743 3643 3745 -t 3642 3744 3644 -t 3744 3746 3644 -t 3643 3645 3745 -t 3745 3645 3747 -t 3644 3746 3646 -t 3746 3748 3646 -t 3645 3647 3747 -t 3747 3647 3749 -t 3646 3748 3648 -t 3748 3750 3648 -t 3647 3649 3749 -t 3749 3649 3751 -t 3648 3750 3650 -t 3750 3752 3650 -t 3649 3651 3751 -t 3751 3651 3753 -t 3650 3752 3652 -t 3752 3754 3652 -t 3651 3653 3753 -t 3753 3653 3755 -t 3652 3754 3654 -t 3754 3756 3654 -t 3653 3655 3755 -t 3755 3655 3757 -t 3654 3756 3656 -t 3756 3758 3656 -t 3655 3657 3757 -t 3757 3657 3759 -t 3656 3758 3658 -t 3758 3760 3658 -t 3657 3659 3759 -t 3759 3659 3761 -t 3658 3760 3660 -t 3760 3762 3660 -t 3659 3661 3761 -t 3761 3661 3763 -t 3660 3762 3662 -t 3762 3764 3662 -t 3661 3663 3763 -t 3763 3663 3765 -t 3662 3764 3664 -t 3764 3766 3664 -t 3663 3665 3765 -t 3765 3665 3767 -t 3664 3766 3666 -t 3766 3768 3666 -t 3665 3667 3767 -t 3767 3667 3769 -t 3666 3768 3668 -t 3768 3770 3668 -t 3667 3669 3769 -t 3769 3669 3771 -t 3668 3770 3670 -t 3770 3772 3670 -t 3669 3671 3771 -t 3771 3671 3773 -t 3670 3772 3672 -t 3772 3774 3672 -t 3671 3673 3773 -t 3773 3673 3775 -t 3672 3774 3674 -t 3774 3776 3674 -t 3673 3675 3775 -t 3775 3675 3777 -t 3674 3776 3676 -t 3776 3778 3676 -t 3675 3677 3777 -t 3777 3677 3779 -t 3676 3778 3678 -t 3778 3780 3678 -t 3677 3679 3779 -t 3779 3679 3781 -t 3678 3780 3680 -t 3780 3782 3680 -t 3679 3681 3781 -t 3781 3681 3783 -t 3680 3782 3682 -t 3782 3784 3682 -t 3681 3683 3783 -t 3783 3683 3785 -t 3682 3784 3684 -t 3784 3786 3684 -t 3683 3685 3785 -t 3785 3685 3787 -t 3684 3786 3686 -t 3786 3788 3686 -t 3685 3687 3787 -t 3787 3687 3789 -t 3686 3788 3688 -t 3788 3790 3688 -t 3687 3689 3789 -t 3789 3689 3791 -t 3688 3790 3690 -t 3790 3792 3690 -t 3689 3691 3791 -t 3791 3691 3793 -t 3690 3792 3692 -t 3792 3794 3692 -t 3691 3693 3793 -t 3793 3693 3795 -t 3692 3794 3694 -t 3794 3796 3694 -t 3693 3695 3795 -t 3795 3695 3797 -t 3694 3796 3696 -t 3796 3798 3696 -t 3695 3697 3797 -t 3797 3697 3799 -t 3696 3798 3698 -t 3798 3800 3698 -t 3697 3699 3799 -t 3799 3699 3801 -t 3698 3800 3700 -t 3800 3802 3700 -t 3699 3701 3801 -t 3801 3701 3803 -t 3700 3802 3702 -t 3802 3804 3702 -t 3701 3703 3803 -t 3803 3703 3805 -t 3702 3804 3704 -t 3804 3806 3704 -t 3703 3705 3805 -t 3805 3705 3807 -t 3704 3806 3706 -t 3806 3808 3706 -t 3705 3707 3807 -t 3807 3707 3809 -t 3706 3808 3708 -t 3808 3810 3708 -t 3707 3709 3809 -t 3809 3709 3811 -t 3708 3810 3710 -t 3810 3812 3710 -t 3709 3711 3811 -t 3811 3711 3813 -t 3710 3812 3712 -t 3812 3814 3712 -t 3711 3713 3813 -t 3813 3713 3815 -t 3712 3814 3714 -t 3814 3816 3714 -t 3713 3715 3815 -t 3815 3715 3817 -t 3714 3816 3716 -t 3816 3818 3716 -t 3715 3717 3817 -t 3817 3717 3819 -t 3716 3818 3718 -t 3818 3820 3718 -t 3717 3719 3819 -t 3819 3719 3821 -t 3718 3820 3720 -t 3820 3822 3720 -t 3719 3721 3821 -t 3821 3721 3823 -t 3720 3822 3722 -t 3822 3824 3722 -t 3723 3724 3825 -t 3825 3724 3826 -t 3725 3827 3726 -t 3827 3828 3726 -t 3724 3727 3826 -t 3826 3727 3829 -t 3726 3828 3728 -t 3828 3830 3728 -t 3727 3729 3829 -t 3829 3729 3831 -t 3728 3830 3730 -t 3830 3832 3730 -t 3729 3731 3831 -t 3831 3731 3833 -t 3730 3832 3732 -t 3832 3834 3732 -t 3731 3733 3833 -t 3833 3733 3835 -t 3732 3834 3734 -t 3834 3836 3734 -t 3733 3735 3835 -t 3835 3735 3837 -t 3734 3836 3736 -t 3836 3838 3736 -t 3735 3737 3837 -t 3837 3737 3839 -t 3736 3838 3738 -t 3838 3840 3738 -t 3737 3739 3839 -t 3839 3739 3841 -t 3738 3840 3740 -t 3840 3842 3740 -t 3739 3741 3841 -t 3841 3741 3843 -t 3740 3842 3742 -t 3842 3844 3742 -t 3741 3743 3843 -t 3843 3743 3845 -t 3742 3844 3744 -t 3844 3846 3744 -t 3743 3745 3845 -t 3845 3745 3847 -t 3744 3846 3746 -t 3846 3848 3746 -t 3745 3747 3847 -t 3847 3747 3849 -t 3746 3848 3748 -t 3848 3850 3748 -t 3747 3749 3849 -t 3849 3749 3851 -t 3748 3850 3750 -t 3850 3852 3750 -t 3749 3751 3851 -t 3851 3751 3853 -t 3750 3852 3752 -t 3852 3854 3752 -t 3751 3753 3853 -t 3853 3753 3855 -t 3752 3854 3754 -t 3854 3856 3754 -t 3753 3755 3855 -t 3855 3755 3857 -t 3754 3856 3756 -t 3856 3858 3756 -t 3755 3757 3857 -t 3857 3757 3859 -t 3756 3858 3758 -t 3858 3860 3758 -t 3757 3759 3859 -t 3859 3759 3861 -t 3758 3860 3760 -t 3860 3862 3760 -t 3759 3761 3861 -t 3861 3761 3863 -t 3760 3862 3762 -t 3862 3864 3762 -t 3761 3763 3863 -t 3863 3763 3865 -t 3762 3864 3764 -t 3864 3866 3764 -t 3763 3765 3865 -t 3865 3765 3867 -t 3764 3866 3766 -t 3866 3868 3766 -t 3765 3767 3867 -t 3867 3767 3869 -t 3766 3868 3768 -t 3868 3870 3768 -t 3767 3769 3869 -t 3869 3769 3871 -t 3768 3870 3770 -t 3870 3872 3770 -t 3769 3771 3871 -t 3871 3771 3873 -t 3770 3872 3772 -t 3872 3874 3772 -t 3771 3773 3873 -t 3873 3773 3875 -t 3772 3874 3774 -t 3874 3876 3774 -t 3773 3775 3875 -t 3875 3775 3877 -t 3774 3876 3776 -t 3876 3878 3776 -t 3775 3777 3877 -t 3877 3777 3879 -t 3776 3878 3778 -t 3878 3880 3778 -t 3777 3779 3879 -t 3879 3779 3881 -t 3778 3880 3780 -t 3880 3882 3780 -t 3779 3781 3881 -t 3881 3781 3883 -t 3780 3882 3782 -t 3882 3884 3782 -t 3781 3783 3883 -t 3883 3783 3885 -t 3782 3884 3784 -t 3884 3886 3784 -t 3783 3785 3885 -t 3885 3785 3887 -t 3784 3886 3786 -t 3886 3888 3786 -t 3785 3787 3887 -t 3887 3787 3889 -t 3786 3888 3788 -t 3888 3890 3788 -t 3787 3789 3889 -t 3889 3789 3891 -t 3788 3890 3790 -t 3890 3892 3790 -t 3789 3791 3891 -t 3891 3791 3893 -t 3790 3892 3792 -t 3892 3894 3792 -t 3791 3793 3893 -t 3893 3793 3895 -t 3792 3894 3794 -t 3894 3896 3794 -t 3793 3795 3895 -t 3895 3795 3897 -t 3794 3896 3796 -t 3896 3898 3796 -t 3795 3797 3897 -t 3897 3797 3899 -t 3796 3898 3798 -t 3898 3900 3798 -t 3797 3799 3899 -t 3899 3799 3901 -t 3798 3900 3800 -t 3900 3902 3800 -t 3799 3801 3901 -t 3901 3801 3903 -t 3800 3902 3802 -t 3902 3904 3802 -t 3801 3803 3903 -t 3903 3803 3905 -t 3802 3904 3804 -t 3904 3906 3804 -t 3803 3805 3905 -t 3905 3805 3907 -t 3804 3906 3806 -t 3906 3908 3806 -t 3805 3807 3907 -t 3907 3807 3909 -t 3806 3908 3808 -t 3908 3910 3808 -t 3807 3809 3909 -t 3909 3809 3911 -t 3808 3910 3810 -t 3910 3912 3810 -t 3809 3811 3911 -t 3911 3811 3913 -t 3810 3912 3812 -t 3912 3914 3812 -t 3811 3813 3913 -t 3913 3813 3915 -t 3812 3914 3814 -t 3914 3916 3814 -t 3813 3815 3915 -t 3915 3815 3917 -t 3814 3916 3816 -t 3916 3918 3816 -t 3815 3817 3917 -t 3917 3817 3919 -t 3816 3918 3818 -t 3918 3920 3818 -t 3817 3819 3919 -t 3919 3819 3921 -t 3818 3920 3820 -t 3920 3922 3820 -t 3819 3821 3921 -t 3921 3821 3923 -t 3820 3922 3822 -t 3922 3924 3822 -t 3821 3823 3923 -t 3923 3823 3925 -t 3822 3924 3824 -t 3924 3926 3824 -t 3825 3826 3927 -t 3927 3826 3928 -t 3827 3929 3828 -t 3929 3930 3828 -t 3826 3829 3928 -t 3928 3829 3931 -t 3828 3930 3830 -t 3930 3932 3830 -t 3829 3831 3931 -t 3931 3831 3933 -t 3830 3932 3832 -t 3932 3934 3832 -t 3831 3833 3933 -t 3933 3833 3935 -t 3832 3934 3834 -t 3934 3936 3834 -t 3833 3835 3935 -t 3935 3835 3937 -t 3834 3936 3836 -t 3936 3938 3836 -t 3835 3837 3937 -t 3937 3837 3939 -t 3836 3938 3838 -t 3938 3940 3838 -t 3837 3839 3939 -t 3939 3839 3941 -t 3838 3940 3840 -t 3940 3942 3840 -t 3839 3841 3941 -t 3941 3841 3943 -t 3840 3942 3842 -t 3942 3944 3842 -t 3841 3843 3943 -t 3943 3843 3945 -t 3842 3944 3844 -t 3944 3946 3844 -t 3843 3845 3945 -t 3945 3845 3947 -t 3844 3946 3846 -t 3946 3948 3846 -t 3845 3847 3947 -t 3947 3847 3949 -t 3846 3948 3848 -t 3948 3950 3848 -t 3847 3849 3949 -t 3949 3849 3951 -t 3848 3950 3850 -t 3950 3952 3850 -t 3849 3851 3951 -t 3951 3851 3953 -t 3850 3952 3852 -t 3952 3954 3852 -t 3851 3853 3953 -t 3953 3853 3955 -t 3852 3954 3854 -t 3954 3956 3854 -t 3853 3855 3955 -t 3955 3855 3957 -t 3854 3956 3856 -t 3956 3958 3856 -t 3855 3857 3957 -t 3957 3857 3959 -t 3856 3958 3858 -t 3958 3960 3858 -t 3857 3859 3959 -t 3959 3859 3961 -t 3858 3960 3860 -t 3960 3962 3860 -t 3859 3861 3961 -t 3961 3861 3963 -t 3860 3962 3862 -t 3962 3964 3862 -t 3861 3863 3963 -t 3963 3863 3965 -t 3862 3964 3864 -t 3964 3966 3864 -t 3863 3865 3965 -t 3965 3865 3967 -t 3864 3966 3866 -t 3966 3968 3866 -t 3865 3867 3967 -t 3967 3867 3969 -t 3866 3968 3868 -t 3968 3970 3868 -t 3867 3869 3969 -t 3969 3869 3971 -t 3868 3970 3870 -t 3970 3972 3870 -t 3869 3871 3971 -t 3971 3871 3973 -t 3870 3972 3872 -t 3972 3974 3872 -t 3871 3873 3973 -t 3973 3873 3975 -t 3872 3974 3874 -t 3974 3976 3874 -t 3873 3875 3975 -t 3975 3875 3977 -t 3874 3976 3876 -t 3976 3978 3876 -t 3875 3877 3977 -t 3977 3877 3979 -t 3876 3978 3878 -t 3978 3980 3878 -t 3877 3879 3979 -t 3979 3879 3981 -t 3878 3980 3880 -t 3980 3982 3880 -t 3879 3881 3981 -t 3981 3881 3983 -t 3880 3982 3882 -t 3982 3984 3882 -t 3881 3883 3983 -t 3983 3883 3985 -t 3882 3984 3884 -t 3984 3986 3884 -t 3883 3885 3985 -t 3985 3885 3987 -t 3884 3986 3886 -t 3986 3988 3886 -t 3885 3887 3987 -t 3987 3887 3989 -t 3886 3988 3888 -t 3988 3990 3888 -t 3887 3889 3989 -t 3989 3889 3991 -t 3888 3990 3890 -t 3990 3992 3890 -t 3889 3891 3991 -t 3991 3891 3993 -t 3890 3992 3892 -t 3992 3994 3892 -t 3891 3893 3993 -t 3993 3893 3995 -t 3892 3994 3894 -t 3994 3996 3894 -t 3893 3895 3995 -t 3995 3895 3997 -t 3894 3996 3896 -t 3996 3998 3896 -t 3895 3897 3997 -t 3997 3897 3999 -t 3896 3998 3898 -t 3998 4000 3898 -t 3897 3899 3999 -t 3999 3899 4001 -t 3898 4000 3900 -t 4000 4002 3900 -t 3899 3901 4001 -t 4001 3901 4003 -t 3900 4002 3902 -t 4002 4004 3902 -t 3901 3903 4003 -t 4003 3903 4005 -t 3902 4004 3904 -t 4004 4006 3904 -t 3903 3905 4005 -t 4005 3905 4007 -t 3904 4006 3906 -t 4006 4008 3906 -t 3905 3907 4007 -t 4007 3907 4009 -t 3906 4008 3908 -t 4008 4010 3908 -t 3907 3909 4009 -t 4009 3909 4011 -t 3908 4010 3910 -t 4010 4012 3910 -t 3909 3911 4011 -t 4011 3911 4013 -t 3910 4012 3912 -t 4012 4014 3912 -t 3911 3913 4013 -t 4013 3913 4015 -t 3912 4014 3914 -t 4014 4016 3914 -t 3913 3915 4015 -t 4015 3915 4017 -t 3914 4016 3916 -t 4016 4018 3916 -t 3915 3917 4017 -t 4017 3917 4019 -t 3916 4018 3918 -t 4018 4020 3918 -t 3917 3919 4019 -t 4019 3919 4021 -t 3918 4020 3920 -t 4020 4022 3920 -t 3919 3921 4021 -t 4021 3921 4023 -t 3920 4022 3922 -t 4022 4024 3922 -t 3921 3923 4023 -t 4023 3923 4025 -t 3922 4024 3924 -t 4024 4026 3924 -t 3923 3925 4025 -t 4025 3925 4027 -t 3924 4026 3926 -t 4026 4028 3926 -t 3927 3928 4029 -t 4029 3928 4030 -t 3929 4031 3930 -t 4031 4032 3930 -t 3928 3931 4030 -t 4030 3931 4033 -t 3930 4032 3932 -t 4032 4034 3932 -t 3931 3933 4033 -t 4033 3933 4035 -t 3932 4034 3934 -t 4034 4036 3934 -t 3933 3935 4035 -t 4035 3935 4037 -t 3934 4036 3936 -t 4036 4038 3936 -t 3935 3937 4037 -t 4037 3937 4039 -t 3936 4038 3938 -t 4038 4040 3938 -t 3937 3939 4039 -t 4039 3939 4041 -t 3938 4040 3940 -t 4040 4042 3940 -t 3939 3941 4041 -t 4041 3941 4043 -t 3940 4042 3942 -t 4042 4044 3942 -t 3941 3943 4043 -t 4043 3943 4045 -t 3942 4044 3944 -t 4044 4046 3944 -t 3943 3945 4045 -t 4045 3945 4047 -t 3944 4046 3946 -t 4046 4048 3946 -t 3945 3947 4047 -t 4047 3947 4049 -t 3946 4048 3948 -t 4048 4050 3948 -t 3947 3949 4049 -t 4049 3949 4051 -t 3948 4050 3950 -t 4050 4052 3950 -t 3949 3951 4051 -t 4051 3951 4053 -t 3950 4052 3952 -t 4052 4054 3952 -t 3951 3953 4053 -t 4053 3953 4055 -t 3952 4054 3954 -t 4054 4056 3954 -t 3953 3955 4055 -t 4055 3955 4057 -t 3954 4056 3956 -t 4056 4058 3956 -t 3955 3957 4057 -t 4057 3957 4059 -t 3956 4058 3958 -t 4058 4060 3958 -t 3957 3959 4059 -t 4059 3959 4061 -t 3958 4060 3960 -t 4060 4062 3960 -t 3959 3961 4061 -t 4061 3961 4063 -t 3960 4062 3962 -t 4062 4064 3962 -t 3961 3963 4063 -t 4063 3963 4065 -t 3962 4064 3964 -t 4064 4066 3964 -t 3963 3965 4065 -t 4065 3965 4067 -t 3964 4066 3966 -t 4066 4068 3966 -t 3965 3967 4067 -t 4067 3967 4069 -t 3966 4068 3968 -t 4068 4070 3968 -t 3967 3969 4069 -t 4069 3969 4071 -t 3968 4070 3970 -t 4070 4072 3970 -t 3969 3971 4071 -t 4071 3971 4073 -t 3970 4072 3972 -t 4072 4074 3972 -t 3971 3973 4073 -t 4073 3973 4075 -t 3972 4074 3974 -t 4074 4076 3974 -t 3973 3975 4075 -t 4075 3975 4077 -t 3974 4076 3976 -t 4076 4078 3976 -t 3975 3977 4077 -t 4077 3977 4079 -t 3976 4078 3978 -t 4078 4080 3978 -t 3977 3979 4079 -t 4079 3979 4081 -t 3978 4080 3980 -t 4080 4082 3980 -t 3979 3981 4081 -t 4081 3981 4083 -t 3980 4082 3982 -t 4082 4084 3982 -t 3981 3983 4083 -t 4083 3983 4085 -t 3982 4084 3984 -t 4084 4086 3984 -t 3983 3985 4085 -t 4085 3985 4087 -t 3984 4086 3986 -t 4086 4088 3986 -t 3985 3987 4087 -t 4087 3987 4089 -t 3986 4088 3988 -t 4088 4090 3988 -t 3987 3989 4089 -t 4089 3989 4091 -t 3988 4090 3990 -t 4090 4092 3990 -t 3989 3991 4091 -t 4091 3991 4093 -t 3990 4092 3992 -t 4092 4094 3992 -t 3991 3993 4093 -t 4093 3993 4095 -t 3992 4094 3994 -t 4094 4096 3994 -t 3993 3995 4095 -t 4095 3995 4097 -t 3994 4096 3996 -t 4096 4098 3996 -t 3995 3997 4097 -t 4097 3997 4099 -t 3996 4098 3998 -t 4098 4100 3998 -t 3997 3999 4099 -t 4099 3999 4101 -t 3998 4100 4000 -t 4100 4102 4000 -t 3999 4001 4101 -t 4101 4001 4103 -t 4000 4102 4002 -t 4102 4104 4002 -t 4001 4003 4103 -t 4103 4003 4105 -t 4002 4104 4004 -t 4104 4106 4004 -t 4003 4005 4105 -t 4105 4005 4107 -t 4004 4106 4006 -t 4106 4108 4006 -t 4005 4007 4107 -t 4107 4007 4109 -t 4006 4108 4008 -t 4108 4110 4008 -t 4007 4009 4109 -t 4109 4009 4111 -t 4008 4110 4010 -t 4110 4112 4010 -t 4009 4011 4111 -t 4111 4011 4113 -t 4010 4112 4012 -t 4112 4114 4012 -t 4011 4013 4113 -t 4113 4013 4115 -t 4012 4114 4014 -t 4114 4116 4014 -t 4013 4015 4115 -t 4115 4015 4117 -t 4014 4116 4016 -t 4116 4118 4016 -t 4015 4017 4117 -t 4117 4017 4119 -t 4016 4118 4018 -t 4118 4120 4018 -t 4017 4019 4119 -t 4119 4019 4121 -t 4018 4120 4020 -t 4120 4122 4020 -t 4019 4021 4121 -t 4121 4021 4123 -t 4020 4122 4022 -t 4122 4124 4022 -t 4021 4023 4123 -t 4123 4023 4125 -t 4022 4124 4024 -t 4124 4126 4024 -t 4023 4025 4125 -t 4125 4025 4127 -t 4024 4126 4026 -t 4126 4128 4026 -t 4025 4027 4127 -t 4127 4027 4129 -t 4026 4128 4028 -t 4128 4130 4028 -t 4029 4030 4131 -t 4131 4030 4132 -t 4031 4133 4032 -t 4133 4134 4032 -t 4030 4033 4132 -t 4132 4033 4135 -t 4032 4134 4034 -t 4134 4136 4034 -t 4033 4035 4135 -t 4135 4035 4137 -t 4034 4136 4036 -t 4136 4138 4036 -t 4035 4037 4137 -t 4137 4037 4139 -t 4036 4138 4038 -t 4138 4140 4038 -t 4037 4039 4139 -t 4139 4039 4141 -t 4038 4140 4040 -t 4140 4142 4040 -t 4039 4041 4141 -t 4141 4041 4143 -t 4040 4142 4042 -t 4142 4144 4042 -t 4041 4043 4143 -t 4143 4043 4145 -t 4042 4144 4044 -t 4144 4146 4044 -t 4043 4045 4145 -t 4145 4045 4147 -t 4044 4146 4046 -t 4146 4148 4046 -t 4045 4047 4147 -t 4147 4047 4149 -t 4046 4148 4048 -t 4148 4150 4048 -t 4047 4049 4149 -t 4149 4049 4151 -t 4048 4150 4050 -t 4150 4152 4050 -t 4049 4051 4151 -t 4151 4051 4153 -t 4050 4152 4052 -t 4152 4154 4052 -t 4051 4053 4153 -t 4153 4053 4155 -t 4052 4154 4054 -t 4154 4156 4054 -t 4053 4055 4155 -t 4155 4055 4157 -t 4054 4156 4056 -t 4156 4158 4056 -t 4055 4057 4157 -t 4157 4057 4159 -t 4056 4158 4058 -t 4158 4160 4058 -t 4057 4059 4159 -t 4159 4059 4161 -t 4058 4160 4060 -t 4160 4162 4060 -t 4059 4061 4161 -t 4161 4061 4163 -t 4060 4162 4062 -t 4162 4164 4062 -t 4061 4063 4163 -t 4163 4063 4165 -t 4062 4164 4064 -t 4164 4166 4064 -t 4063 4065 4165 -t 4165 4065 4167 -t 4064 4166 4066 -t 4166 4168 4066 -t 4065 4067 4167 -t 4167 4067 4169 -t 4066 4168 4068 -t 4168 4170 4068 -t 4067 4069 4169 -t 4169 4069 4171 -t 4068 4170 4070 -t 4170 4172 4070 -t 4069 4071 4171 -t 4171 4071 4173 -t 4070 4172 4072 -t 4172 4174 4072 -t 4071 4073 4173 -t 4173 4073 4175 -t 4072 4174 4074 -t 4174 4176 4074 -t 4073 4075 4175 -t 4175 4075 4177 -t 4074 4176 4076 -t 4176 4178 4076 -t 4075 4077 4177 -t 4177 4077 4179 -t 4076 4178 4078 -t 4178 4180 4078 -t 4077 4079 4179 -t 4179 4079 4181 -t 4078 4180 4080 -t 4180 4182 4080 -t 4079 4081 4181 -t 4181 4081 4183 -t 4080 4182 4082 -t 4182 4184 4082 -t 4081 4083 4183 -t 4183 4083 4185 -t 4082 4184 4084 -t 4184 4186 4084 -t 4083 4085 4185 -t 4185 4085 4187 -t 4084 4186 4086 -t 4186 4188 4086 -t 4085 4087 4187 -t 4187 4087 4189 -t 4086 4188 4088 -t 4188 4190 4088 -t 4087 4089 4189 -t 4189 4089 4191 -t 4088 4190 4090 -t 4190 4192 4090 -t 4089 4091 4191 -t 4191 4091 4193 -t 4090 4192 4092 -t 4192 4194 4092 -t 4091 4093 4193 -t 4193 4093 4195 -t 4092 4194 4094 -t 4194 4196 4094 -t 4093 4095 4195 -t 4195 4095 4197 -t 4094 4196 4096 -t 4196 4198 4096 -t 4095 4097 4197 -t 4197 4097 4199 -t 4096 4198 4098 -t 4198 4200 4098 -t 4097 4099 4199 -t 4199 4099 4201 -t 4098 4200 4100 -t 4200 4202 4100 -t 4099 4101 4201 -t 4201 4101 4203 -t 4100 4202 4102 -t 4202 4204 4102 -t 4101 4103 4203 -t 4203 4103 4205 -t 4102 4204 4104 -t 4204 4206 4104 -t 4103 4105 4205 -t 4205 4105 4207 -t 4104 4206 4106 -t 4206 4208 4106 -t 4105 4107 4207 -t 4207 4107 4209 -t 4106 4208 4108 -t 4208 4210 4108 -t 4107 4109 4209 -t 4209 4109 4211 -t 4108 4210 4110 -t 4210 4212 4110 -t 4109 4111 4211 -t 4211 4111 4213 -t 4110 4212 4112 -t 4212 4214 4112 -t 4111 4113 4213 -t 4213 4113 4215 -t 4112 4214 4114 -t 4214 4216 4114 -t 4113 4115 4215 -t 4215 4115 4217 -t 4114 4216 4116 -t 4216 4218 4116 -t 4115 4117 4217 -t 4217 4117 4219 -t 4116 4218 4118 -t 4218 4220 4118 -t 4117 4119 4219 -t 4219 4119 4221 -t 4118 4220 4120 -t 4220 4222 4120 -t 4119 4121 4221 -t 4221 4121 4223 -t 4120 4222 4122 -t 4222 4224 4122 -t 4121 4123 4223 -t 4223 4123 4225 -t 4122 4224 4124 -t 4224 4226 4124 -t 4123 4125 4225 -t 4225 4125 4227 -t 4124 4226 4126 -t 4226 4228 4126 -t 4125 4127 4227 -t 4227 4127 4229 -t 4126 4228 4128 -t 4228 4230 4128 -t 4127 4129 4229 -t 4229 4129 4231 -t 4128 4230 4130 -t 4230 4232 4130 -t 4131 4132 4233 -t 4233 4132 4234 -t 4133 4235 4134 -t 4235 4236 4134 -t 4132 4135 4234 -t 4234 4135 4237 -t 4134 4236 4136 -t 4236 4238 4136 -t 4135 4137 4237 -t 4237 4137 4239 -t 4136 4238 4138 -t 4238 4240 4138 -t 4137 4139 4239 -t 4239 4139 4241 -t 4138 4240 4140 -t 4240 4242 4140 -t 4139 4141 4241 -t 4241 4141 4243 -t 4140 4242 4142 -t 4242 4244 4142 -t 4141 4143 4243 -t 4243 4143 4245 -t 4142 4244 4144 -t 4244 4246 4144 -t 4143 4145 4245 -t 4245 4145 4247 -t 4144 4246 4146 -t 4246 4248 4146 -t 4145 4147 4247 -t 4247 4147 4249 -t 4146 4248 4148 -t 4248 4250 4148 -t 4147 4149 4249 -t 4249 4149 4251 -t 4148 4250 4150 -t 4250 4252 4150 -t 4149 4151 4251 -t 4251 4151 4253 -t 4150 4252 4152 -t 4252 4254 4152 -t 4151 4153 4253 -t 4253 4153 4255 -t 4152 4254 4154 -t 4254 4256 4154 -t 4153 4155 4255 -t 4255 4155 4257 -t 4154 4256 4156 -t 4256 4258 4156 -t 4155 4157 4257 -t 4257 4157 4259 -t 4156 4258 4158 -t 4258 4260 4158 -t 4157 4159 4259 -t 4259 4159 4261 -t 4158 4260 4160 -t 4260 4262 4160 -t 4159 4161 4261 -t 4261 4161 4263 -t 4160 4262 4162 -t 4262 4264 4162 -t 4161 4163 4263 -t 4263 4163 4265 -t 4162 4264 4164 -t 4264 4266 4164 -t 4163 4165 4265 -t 4265 4165 4267 -t 4164 4266 4166 -t 4266 4268 4166 -t 4165 4167 4267 -t 4267 4167 4269 -t 4166 4268 4168 -t 4268 4270 4168 -t 4167 4169 4269 -t 4269 4169 4271 -t 4168 4270 4170 -t 4270 4272 4170 -t 4169 4171 4271 -t 4271 4171 4273 -t 4170 4272 4172 -t 4272 4274 4172 -t 4171 4173 4273 -t 4273 4173 4275 -t 4172 4274 4174 -t 4274 4276 4174 -t 4173 4175 4275 -t 4275 4175 4277 -t 4174 4276 4176 -t 4276 4278 4176 -t 4175 4177 4277 -t 4277 4177 4279 -t 4176 4278 4178 -t 4278 4280 4178 -t 4177 4179 4279 -t 4279 4179 4281 -t 4178 4280 4180 -t 4280 4282 4180 -t 4179 4181 4281 -t 4281 4181 4283 -t 4180 4282 4182 -t 4282 4284 4182 -t 4181 4183 4283 -t 4283 4183 4285 -t 4182 4284 4184 -t 4284 4286 4184 -t 4183 4185 4285 -t 4285 4185 4287 -t 4184 4286 4186 -t 4286 4288 4186 -t 4185 4187 4287 -t 4287 4187 4289 -t 4186 4288 4188 -t 4288 4290 4188 -t 4187 4189 4289 -t 4289 4189 4291 -t 4188 4290 4190 -t 4290 4292 4190 -t 4189 4191 4291 -t 4291 4191 4293 -t 4190 4292 4192 -t 4292 4294 4192 -t 4191 4193 4293 -t 4293 4193 4295 -t 4192 4294 4194 -t 4294 4296 4194 -t 4193 4195 4295 -t 4295 4195 4297 -t 4194 4296 4196 -t 4296 4298 4196 -t 4195 4197 4297 -t 4297 4197 4299 -t 4196 4298 4198 -t 4298 4300 4198 -t 4197 4199 4299 -t 4299 4199 4301 -t 4198 4300 4200 -t 4300 4302 4200 -t 4199 4201 4301 -t 4301 4201 4303 -t 4200 4302 4202 -t 4302 4304 4202 -t 4201 4203 4303 -t 4303 4203 4305 -t 4202 4304 4204 -t 4304 4306 4204 -t 4203 4205 4305 -t 4305 4205 4307 -t 4204 4306 4206 -t 4306 4308 4206 -t 4205 4207 4307 -t 4307 4207 4309 -t 4206 4308 4208 -t 4308 4310 4208 -t 4207 4209 4309 -t 4309 4209 4311 -t 4208 4310 4210 -t 4310 4312 4210 -t 4209 4211 4311 -t 4311 4211 4313 -t 4210 4312 4212 -t 4312 4314 4212 -t 4211 4213 4313 -t 4313 4213 4315 -t 4212 4314 4214 -t 4314 4316 4214 -t 4213 4215 4315 -t 4315 4215 4317 -t 4214 4316 4216 -t 4316 4318 4216 -t 4215 4217 4317 -t 4317 4217 4319 -t 4216 4318 4218 -t 4318 4320 4218 -t 4217 4219 4319 -t 4319 4219 4321 -t 4218 4320 4220 -t 4320 4322 4220 -t 4219 4221 4321 -t 4321 4221 4323 -t 4220 4322 4222 -t 4322 4324 4222 -t 4221 4223 4323 -t 4323 4223 4325 -t 4222 4324 4224 -t 4324 4326 4224 -t 4223 4225 4325 -t 4325 4225 4327 -t 4224 4326 4226 -t 4326 4328 4226 -t 4225 4227 4327 -t 4327 4227 4329 -t 4226 4328 4228 -t 4328 4330 4228 -t 4227 4229 4329 -t 4329 4229 4331 -t 4228 4330 4230 -t 4330 4332 4230 -t 4229 4231 4331 -t 4331 4231 4333 -t 4230 4332 4232 -t 4332 4334 4232 -t 4233 4234 4335 -t 4335 4234 4336 -t 4235 4337 4236 -t 4337 4338 4236 -t 4234 4237 4336 -t 4336 4237 4339 -t 4236 4338 4238 -t 4338 4340 4238 -t 4237 4239 4339 -t 4339 4239 4341 -t 4238 4340 4240 -t 4340 4342 4240 -t 4239 4241 4341 -t 4341 4241 4343 -t 4240 4342 4242 -t 4342 4344 4242 -t 4241 4243 4343 -t 4343 4243 4345 -t 4242 4344 4244 -t 4344 4346 4244 -t 4243 4245 4345 -t 4345 4245 4347 -t 4244 4346 4246 -t 4346 4348 4246 -t 4245 4247 4347 -t 4347 4247 4349 -t 4246 4348 4248 -t 4348 4350 4248 -t 4247 4249 4349 -t 4349 4249 4351 -t 4248 4350 4250 -t 4350 4352 4250 -t 4249 4251 4351 -t 4351 4251 4353 -t 4250 4352 4252 -t 4352 4354 4252 -t 4251 4253 4353 -t 4353 4253 4355 -t 4252 4354 4254 -t 4354 4356 4254 -t 4253 4255 4355 -t 4355 4255 4357 -t 4254 4356 4256 -t 4356 4358 4256 -t 4255 4257 4357 -t 4357 4257 4359 -t 4256 4358 4258 -t 4358 4360 4258 -t 4257 4259 4359 -t 4359 4259 4361 -t 4258 4360 4260 -t 4360 4362 4260 -t 4259 4261 4361 -t 4361 4261 4363 -t 4260 4362 4262 -t 4362 4364 4262 -t 4261 4263 4363 -t 4363 4263 4365 -t 4262 4364 4264 -t 4364 4366 4264 -t 4263 4265 4365 -t 4365 4265 4367 -t 4264 4366 4266 -t 4366 4368 4266 -t 4265 4267 4367 -t 4367 4267 4369 -t 4266 4368 4268 -t 4368 4370 4268 -t 4267 4269 4369 -t 4369 4269 4371 -t 4268 4370 4270 -t 4370 4372 4270 -t 4269 4271 4371 -t 4371 4271 4373 -t 4270 4372 4272 -t 4372 4374 4272 -t 4271 4273 4373 -t 4373 4273 4375 -t 4272 4374 4274 -t 4374 4376 4274 -t 4273 4275 4375 -t 4375 4275 4377 -t 4274 4376 4276 -t 4376 4378 4276 -t 4275 4277 4377 -t 4377 4277 4379 -t 4276 4378 4278 -t 4378 4380 4278 -t 4277 4279 4379 -t 4379 4279 4381 -t 4278 4380 4280 -t 4380 4382 4280 -t 4279 4281 4381 -t 4381 4281 4383 -t 4280 4382 4282 -t 4382 4384 4282 -t 4281 4283 4383 -t 4383 4283 4385 -t 4282 4384 4284 -t 4384 4386 4284 -t 4283 4285 4385 -t 4385 4285 4387 -t 4284 4386 4286 -t 4386 4388 4286 -t 4285 4287 4387 -t 4387 4287 4389 -t 4286 4388 4288 -t 4388 4390 4288 -t 4287 4289 4389 -t 4389 4289 4391 -t 4288 4390 4290 -t 4390 4392 4290 -t 4289 4291 4391 -t 4391 4291 4393 -t 4290 4392 4292 -t 4392 4394 4292 -t 4291 4293 4393 -t 4393 4293 4395 -t 4292 4394 4294 -t 4394 4396 4294 -t 4293 4295 4395 -t 4395 4295 4397 -t 4294 4396 4296 -t 4396 4398 4296 -t 4295 4297 4397 -t 4397 4297 4399 -t 4296 4398 4298 -t 4398 4400 4298 -t 4297 4299 4399 -t 4399 4299 4401 -t 4298 4400 4300 -t 4400 4402 4300 -t 4299 4301 4401 -t 4401 4301 4403 -t 4300 4402 4302 -t 4402 4404 4302 -t 4301 4303 4403 -t 4403 4303 4405 -t 4302 4404 4304 -t 4404 4406 4304 -t 4303 4305 4405 -t 4405 4305 4407 -t 4304 4406 4306 -t 4406 4408 4306 -t 4305 4307 4407 -t 4407 4307 4409 -t 4306 4408 4308 -t 4408 4410 4308 -t 4307 4309 4409 -t 4409 4309 4411 -t 4308 4410 4310 -t 4410 4412 4310 -t 4309 4311 4411 -t 4411 4311 4413 -t 4310 4412 4312 -t 4412 4414 4312 -t 4311 4313 4413 -t 4413 4313 4415 -t 4312 4414 4314 -t 4414 4416 4314 -t 4313 4315 4415 -t 4415 4315 4417 -t 4314 4416 4316 -t 4416 4418 4316 -t 4315 4317 4417 -t 4417 4317 4419 -t 4316 4418 4318 -t 4418 4420 4318 -t 4317 4319 4419 -t 4419 4319 4421 -t 4318 4420 4320 -t 4420 4422 4320 -t 4319 4321 4421 -t 4421 4321 4423 -t 4320 4422 4322 -t 4422 4424 4322 -t 4321 4323 4423 -t 4423 4323 4425 -t 4322 4424 4324 -t 4424 4426 4324 -t 4323 4325 4425 -t 4425 4325 4427 -t 4324 4426 4326 -t 4426 4428 4326 -t 4325 4327 4427 -t 4427 4327 4429 -t 4326 4428 4328 -t 4428 4430 4328 -t 4327 4329 4429 -t 4429 4329 4431 -t 4328 4430 4330 -t 4430 4432 4330 -t 4329 4331 4431 -t 4431 4331 4433 -t 4330 4432 4332 -t 4432 4434 4332 -t 4331 4333 4433 -t 4433 4333 4435 -t 4332 4434 4334 -t 4434 4436 4334 -t 4335 4336 4437 -t 4437 4336 4438 -t 4337 4439 4338 -t 4439 4440 4338 -t 4336 4339 4438 -t 4438 4339 4441 -t 4338 4440 4340 -t 4440 4442 4340 -t 4339 4341 4441 -t 4441 4341 4443 -t 4340 4442 4342 -t 4442 4444 4342 -t 4341 4343 4443 -t 4443 4343 4445 -t 4342 4444 4344 -t 4444 4446 4344 -t 4343 4345 4445 -t 4445 4345 4447 -t 4344 4446 4346 -t 4446 4448 4346 -t 4345 4347 4447 -t 4447 4347 4449 -t 4346 4448 4348 -t 4448 4450 4348 -t 4347 4349 4449 -t 4449 4349 4451 -t 4348 4450 4350 -t 4450 4452 4350 -t 4349 4351 4451 -t 4451 4351 4453 -t 4350 4452 4352 -t 4452 4454 4352 -t 4351 4353 4453 -t 4453 4353 4455 -t 4352 4454 4354 -t 4454 4456 4354 -t 4353 4355 4455 -t 4455 4355 4457 -t 4354 4456 4356 -t 4456 4458 4356 -t 4355 4357 4457 -t 4457 4357 4459 -t 4356 4458 4358 -t 4458 4460 4358 -t 4357 4359 4459 -t 4459 4359 4461 -t 4358 4460 4360 -t 4460 4462 4360 -t 4359 4361 4461 -t 4461 4361 4463 -t 4360 4462 4362 -t 4462 4464 4362 -t 4361 4363 4463 -t 4463 4363 4465 -t 4362 4464 4364 -t 4464 4466 4364 -t 4363 4365 4465 -t 4465 4365 4467 -t 4364 4466 4366 -t 4466 4468 4366 -t 4365 4367 4467 -t 4467 4367 4469 -t 4366 4468 4368 -t 4468 4470 4368 -t 4367 4369 4469 -t 4469 4369 4471 -t 4368 4470 4370 -t 4470 4472 4370 -t 4369 4371 4471 -t 4471 4371 4473 -t 4370 4472 4372 -t 4472 4474 4372 -t 4371 4373 4473 -t 4473 4373 4475 -t 4372 4474 4374 -t 4474 4476 4374 -t 4373 4375 4475 -t 4475 4375 4477 -t 4374 4476 4376 -t 4476 4478 4376 -t 4375 4377 4477 -t 4477 4377 4479 -t 4376 4478 4378 -t 4478 4480 4378 -t 4377 4379 4479 -t 4479 4379 4481 -t 4378 4480 4380 -t 4480 4482 4380 -t 4379 4381 4481 -t 4481 4381 4483 -t 4380 4482 4382 -t 4482 4484 4382 -t 4381 4383 4483 -t 4483 4383 4485 -t 4382 4484 4384 -t 4484 4486 4384 -t 4383 4385 4485 -t 4485 4385 4487 -t 4384 4486 4386 -t 4486 4488 4386 -t 4385 4387 4487 -t 4487 4387 4489 -t 4386 4488 4388 -t 4488 4490 4388 -t 4387 4389 4489 -t 4489 4389 4491 -t 4388 4490 4390 -t 4490 4492 4390 -t 4389 4391 4491 -t 4491 4391 4493 -t 4390 4492 4392 -t 4492 4494 4392 -t 4391 4393 4493 -t 4493 4393 4495 -t 4392 4494 4394 -t 4494 4496 4394 -t 4393 4395 4495 -t 4495 4395 4497 -t 4394 4496 4396 -t 4496 4498 4396 -t 4395 4397 4497 -t 4497 4397 4499 -t 4396 4498 4398 -t 4498 4500 4398 -t 4397 4399 4499 -t 4499 4399 4501 -t 4398 4500 4400 -t 4500 4502 4400 -t 4399 4401 4501 -t 4501 4401 4503 -t 4400 4502 4402 -t 4502 4504 4402 -t 4401 4403 4503 -t 4503 4403 4505 -t 4402 4504 4404 -t 4504 4506 4404 -t 4403 4405 4505 -t 4505 4405 4507 -t 4404 4506 4406 -t 4506 4508 4406 -t 4405 4407 4507 -t 4507 4407 4509 -t 4406 4508 4408 -t 4508 4510 4408 -t 4407 4409 4509 -t 4509 4409 4511 -t 4408 4510 4410 -t 4510 4512 4410 -t 4409 4411 4511 -t 4511 4411 4513 -t 4410 4512 4412 -t 4512 4514 4412 -t 4411 4413 4513 -t 4513 4413 4515 -t 4412 4514 4414 -t 4514 4516 4414 -t 4413 4415 4515 -t 4515 4415 4517 -t 4414 4516 4416 -t 4516 4518 4416 -t 4415 4417 4517 -t 4517 4417 4519 -t 4416 4518 4418 -t 4518 4520 4418 -t 4417 4419 4519 -t 4519 4419 4521 -t 4418 4520 4420 -t 4520 4522 4420 -t 4419 4421 4521 -t 4521 4421 4523 -t 4420 4522 4422 -t 4522 4524 4422 -t 4421 4423 4523 -t 4523 4423 4525 -t 4422 4524 4424 -t 4524 4526 4424 -t 4423 4425 4525 -t 4525 4425 4527 -t 4424 4526 4426 -t 4526 4528 4426 -t 4425 4427 4527 -t 4527 4427 4529 -t 4426 4528 4428 -t 4528 4530 4428 -t 4427 4429 4529 -t 4529 4429 4531 -t 4428 4530 4430 -t 4530 4532 4430 -t 4429 4431 4531 -t 4531 4431 4533 -t 4430 4532 4432 -t 4532 4534 4432 -t 4431 4433 4533 -t 4533 4433 4535 -t 4432 4534 4434 -t 4534 4536 4434 -t 4433 4435 4535 -t 4535 4435 4537 -t 4434 4536 4436 -t 4536 4538 4436 -t 4437 4438 4539 -t 4539 4438 4540 -t 4439 4541 4440 -t 4541 4542 4440 -t 4438 4441 4540 -t 4540 4441 4543 -t 4440 4542 4442 -t 4542 4544 4442 -t 4441 4443 4543 -t 4543 4443 4545 -t 4442 4544 4444 -t 4544 4546 4444 -t 4443 4445 4545 -t 4545 4445 4547 -t 4444 4546 4446 -t 4546 4548 4446 -t 4445 4447 4547 -t 4547 4447 4549 -t 4446 4548 4448 -t 4548 4550 4448 -t 4447 4449 4549 -t 4549 4449 4551 -t 4448 4550 4450 -t 4550 4552 4450 -t 4449 4451 4551 -t 4551 4451 4553 -t 4450 4552 4452 -t 4552 4554 4452 -t 4451 4453 4553 -t 4553 4453 4555 -t 4452 4554 4454 -t 4554 4556 4454 -t 4453 4455 4555 -t 4555 4455 4557 -t 4454 4556 4456 -t 4556 4558 4456 -t 4455 4457 4557 -t 4557 4457 4559 -t 4456 4558 4458 -t 4558 4560 4458 -t 4457 4459 4559 -t 4559 4459 4561 -t 4458 4560 4460 -t 4560 4562 4460 -t 4459 4461 4561 -t 4561 4461 4563 -t 4460 4562 4462 -t 4562 4564 4462 -t 4461 4463 4563 -t 4563 4463 4565 -t 4462 4564 4464 -t 4564 4566 4464 -t 4463 4465 4565 -t 4565 4465 4567 -t 4464 4566 4466 -t 4566 4568 4466 -t 4465 4467 4567 -t 4567 4467 4569 -t 4466 4568 4468 -t 4568 4570 4468 -t 4467 4469 4569 -t 4569 4469 4571 -t 4468 4570 4470 -t 4570 4572 4470 -t 4469 4471 4571 -t 4571 4471 4573 -t 4470 4572 4472 -t 4572 4574 4472 -t 4471 4473 4573 -t 4573 4473 4575 -t 4472 4574 4474 -t 4574 4576 4474 -t 4473 4475 4575 -t 4575 4475 4577 -t 4474 4576 4476 -t 4576 4578 4476 -t 4475 4477 4577 -t 4577 4477 4579 -t 4476 4578 4478 -t 4578 4580 4478 -t 4477 4479 4579 -t 4579 4479 4581 -t 4478 4580 4480 -t 4580 4582 4480 -t 4479 4481 4581 -t 4581 4481 4583 -t 4480 4582 4482 -t 4582 4584 4482 -t 4481 4483 4583 -t 4583 4483 4585 -t 4482 4584 4484 -t 4584 4586 4484 -t 4483 4485 4585 -t 4585 4485 4587 -t 4484 4586 4486 -t 4586 4588 4486 -t 4485 4487 4587 -t 4587 4487 4589 -t 4486 4588 4488 -t 4588 4590 4488 -t 4487 4489 4589 -t 4589 4489 4591 -t 4488 4590 4490 -t 4590 4592 4490 -t 4489 4491 4591 -t 4591 4491 4593 -t 4490 4592 4492 -t 4592 4594 4492 -t 4491 4493 4593 -t 4593 4493 4595 -t 4492 4594 4494 -t 4594 4596 4494 -t 4493 4495 4595 -t 4595 4495 4597 -t 4494 4596 4496 -t 4596 4598 4496 -t 4495 4497 4597 -t 4597 4497 4599 -t 4496 4598 4498 -t 4598 4600 4498 -t 4497 4499 4599 -t 4599 4499 4601 -t 4498 4600 4500 -t 4600 4602 4500 -t 4499 4501 4601 -t 4601 4501 4603 -t 4500 4602 4502 -t 4602 4604 4502 -t 4501 4503 4603 -t 4603 4503 4605 -t 4502 4604 4504 -t 4604 4606 4504 -t 4503 4505 4605 -t 4605 4505 4607 -t 4504 4606 4506 -t 4606 4608 4506 -t 4505 4507 4607 -t 4607 4507 4609 -t 4506 4608 4508 -t 4608 4610 4508 -t 4507 4509 4609 -t 4609 4509 4611 -t 4508 4610 4510 -t 4610 4612 4510 -t 4509 4511 4611 -t 4611 4511 4613 -t 4510 4612 4512 -t 4612 4614 4512 -t 4511 4513 4613 -t 4613 4513 4615 -t 4512 4614 4514 -t 4614 4616 4514 -t 4513 4515 4615 -t 4615 4515 4617 -t 4514 4616 4516 -t 4616 4618 4516 -t 4515 4517 4617 -t 4617 4517 4619 -t 4516 4618 4518 -t 4618 4620 4518 -t 4517 4519 4619 -t 4619 4519 4621 -t 4518 4620 4520 -t 4620 4622 4520 -t 4519 4521 4621 -t 4621 4521 4623 -t 4520 4622 4522 -t 4622 4624 4522 -t 4521 4523 4623 -t 4623 4523 4625 -t 4522 4624 4524 -t 4624 4626 4524 -t 4523 4525 4625 -t 4625 4525 4627 -t 4524 4626 4526 -t 4626 4628 4526 -t 4525 4527 4627 -t 4627 4527 4629 -t 4526 4628 4528 -t 4628 4630 4528 -t 4527 4529 4629 -t 4629 4529 4631 -t 4528 4630 4530 -t 4630 4632 4530 -t 4529 4531 4631 -t 4631 4531 4633 -t 4530 4632 4532 -t 4632 4634 4532 -t 4531 4533 4633 -t 4633 4533 4635 -t 4532 4634 4534 -t 4634 4636 4534 -t 4533 4535 4635 -t 4635 4535 4637 -t 4534 4636 4536 -t 4636 4638 4536 -t 4535 4537 4637 -t 4637 4537 4639 -t 4536 4638 4538 -t 4638 4640 4538 -t 4539 4540 4641 -t 4641 4540 4642 -t 4541 4643 4542 -t 4643 4644 4542 -t 4540 4543 4642 -t 4642 4543 4645 -t 4542 4644 4544 -t 4644 4646 4544 -t 4543 4545 4645 -t 4645 4545 4647 -t 4544 4646 4546 -t 4646 4648 4546 -t 4545 4547 4647 -t 4647 4547 4649 -t 4546 4648 4548 -t 4648 4650 4548 -t 4547 4549 4649 -t 4649 4549 4651 -t 4548 4650 4550 -t 4650 4652 4550 -t 4549 4551 4651 -t 4651 4551 4653 -t 4550 4652 4552 -t 4652 4654 4552 -t 4551 4553 4653 -t 4653 4553 4655 -t 4552 4654 4554 -t 4654 4656 4554 -t 4553 4555 4655 -t 4655 4555 4657 -t 4554 4656 4556 -t 4656 4658 4556 -t 4555 4557 4657 -t 4657 4557 4659 -t 4556 4658 4558 -t 4658 4660 4558 -t 4557 4559 4659 -t 4659 4559 4661 -t 4558 4660 4560 -t 4660 4662 4560 -t 4559 4561 4661 -t 4661 4561 4663 -t 4560 4662 4562 -t 4662 4664 4562 -t 4561 4563 4663 -t 4663 4563 4665 -t 4562 4664 4564 -t 4664 4666 4564 -t 4563 4565 4665 -t 4665 4565 4667 -t 4564 4666 4566 -t 4666 4668 4566 -t 4565 4567 4667 -t 4667 4567 4669 -t 4566 4668 4568 -t 4668 4670 4568 -t 4567 4569 4669 -t 4669 4569 4671 -t 4568 4670 4570 -t 4670 4672 4570 -t 4569 4571 4671 -t 4671 4571 4673 -t 4570 4672 4572 -t 4672 4674 4572 -t 4571 4573 4673 -t 4673 4573 4675 -t 4572 4674 4574 -t 4674 4676 4574 -t 4573 4575 4675 -t 4675 4575 4677 -t 4574 4676 4576 -t 4676 4678 4576 -t 4575 4577 4677 -t 4677 4577 4679 -t 4576 4678 4578 -t 4678 4680 4578 -t 4577 4579 4679 -t 4679 4579 4681 -t 4578 4680 4580 -t 4680 4682 4580 -t 4579 4581 4681 -t 4681 4581 4683 -t 4580 4682 4582 -t 4682 4684 4582 -t 4581 4583 4683 -t 4683 4583 4685 -t 4582 4684 4584 -t 4684 4686 4584 -t 4583 4585 4685 -t 4685 4585 4687 -t 4584 4686 4586 -t 4686 4688 4586 -t 4585 4587 4687 -t 4687 4587 4689 -t 4586 4688 4588 -t 4688 4690 4588 -t 4587 4589 4689 -t 4689 4589 4691 -t 4588 4690 4590 -t 4690 4692 4590 -t 4589 4591 4691 -t 4691 4591 4693 -t 4590 4692 4592 -t 4692 4694 4592 -t 4591 4593 4693 -t 4693 4593 4695 -t 4592 4694 4594 -t 4694 4696 4594 -t 4593 4595 4695 -t 4695 4595 4697 -t 4594 4696 4596 -t 4696 4698 4596 -t 4595 4597 4697 -t 4697 4597 4699 -t 4596 4698 4598 -t 4698 4700 4598 -t 4597 4599 4699 -t 4699 4599 4701 -t 4598 4700 4600 -t 4700 4702 4600 -t 4599 4601 4701 -t 4701 4601 4703 -t 4600 4702 4602 -t 4702 4704 4602 -t 4601 4603 4703 -t 4703 4603 4705 -t 4602 4704 4604 -t 4704 4706 4604 -t 4603 4605 4705 -t 4705 4605 4707 -t 4604 4706 4606 -t 4706 4708 4606 -t 4605 4607 4707 -t 4707 4607 4709 -t 4606 4708 4608 -t 4708 4710 4608 -t 4607 4609 4709 -t 4709 4609 4711 -t 4608 4710 4610 -t 4710 4712 4610 -t 4609 4611 4711 -t 4711 4611 4713 -t 4610 4712 4612 -t 4712 4714 4612 -t 4611 4613 4713 -t 4713 4613 4715 -t 4612 4714 4614 -t 4714 4716 4614 -t 4613 4615 4715 -t 4715 4615 4717 -t 4614 4716 4616 -t 4716 4718 4616 -t 4615 4617 4717 -t 4717 4617 4719 -t 4616 4718 4618 -t 4718 4720 4618 -t 4617 4619 4719 -t 4719 4619 4721 -t 4618 4720 4620 -t 4720 4722 4620 -t 4619 4621 4721 -t 4721 4621 4723 -t 4620 4722 4622 -t 4722 4724 4622 -t 4621 4623 4723 -t 4723 4623 4725 -t 4622 4724 4624 -t 4724 4726 4624 -t 4623 4625 4725 -t 4725 4625 4727 -t 4624 4726 4626 -t 4726 4728 4626 -t 4625 4627 4727 -t 4727 4627 4729 -t 4626 4728 4628 -t 4728 4730 4628 -t 4627 4629 4729 -t 4729 4629 4731 -t 4628 4730 4630 -t 4730 4732 4630 -t 4629 4631 4731 -t 4731 4631 4733 -t 4630 4732 4632 -t 4732 4734 4632 -t 4631 4633 4733 -t 4733 4633 4735 -t 4632 4734 4634 -t 4734 4736 4634 -t 4633 4635 4735 -t 4735 4635 4737 -t 4634 4736 4636 -t 4736 4738 4636 -t 4635 4637 4737 -t 4737 4637 4739 -t 4636 4738 4638 -t 4738 4740 4638 -t 4637 4639 4739 -t 4739 4639 4741 -t 4638 4740 4640 -t 4740 4742 4640 -t 4743 4744 4745 -t 4744 4746 4745 -t 4747 4748 4743 -t 4748 4744 4743 -t 4749 4750 4747 -t 4750 4748 4747 -t 4751 4752 4749 -t 4752 4750 4749 -t 4753 4754 4751 -t 4754 4752 4751 -t 4755 4756 4753 -t 4756 4754 4753 -t 4757 4758 4755 -t 4758 4756 4755 -t 4759 4760 4757 -t 4760 4758 4757 -t 4761 4762 4759 -t 4762 4760 4759 -t 4763 4764 4761 -t 4764 4762 4761 -t 4765 4766 4763 -t 4766 4764 4763 -t 4767 4768 4765 -t 4768 4766 4765 -t 4769 4770 4767 -t 4770 4768 4767 -t 4771 4772 4769 -t 4772 4770 4769 -t 4773 4774 4771 -t 4774 4772 4771 -t 4775 4776 4773 -t 4776 4774 4773 -t 4777 4778 4775 -t 4778 4776 4775 -t 4641 4642 4778 -t 4777 4641 4778 -t 4779 4780 4644 -t 4643 4779 4644 -t 4781 4782 4779 -t 4782 4780 4779 -t 4783 4784 4781 -t 4784 4782 4781 -t 4785 4786 4783 -t 4786 4784 4783 -t 4787 4788 4785 -t 4788 4786 4785 -t 4789 4790 4787 -t 4790 4788 4787 -t 4791 4792 4789 -t 4792 4790 4789 -t 4793 4794 4791 -t 4794 4792 4791 -t 4795 4796 4793 -t 4796 4794 4793 -t 4797 4798 4795 -t 4798 4796 4795 -t 4799 4800 4797 -t 4800 4798 4797 -t 4801 4802 4799 -t 4802 4800 4799 -t 4803 4804 4801 -t 4804 4802 4801 -t 4805 4806 4803 -t 4806 4804 4803 -t 4807 4808 4805 -t 4808 4806 4805 -t 4809 4810 4807 -t 4810 4808 4807 -t 4811 4812 4809 -t 4812 4810 4809 -t 4813 4814 4811 -t 4814 4812 4811 -t 4744 4815 4746 -t 4815 4816 4746 -t 4748 4817 4744 -t 4817 4815 4744 -t 4750 4818 4748 -t 4818 4817 4748 -t 4752 4819 4750 -t 4819 4818 4750 -t 4754 4820 4752 -t 4820 4819 4752 -t 4756 4821 4754 -t 4821 4820 4754 -t 4758 4822 4756 -t 4822 4821 4756 -t 4760 4823 4758 -t 4823 4822 4758 -t 4762 4824 4760 -t 4824 4823 4760 -t 4764 4825 4762 -t 4825 4824 4762 -t 4766 4826 4764 -t 4826 4825 4764 -t 4768 4827 4766 -t 4827 4826 4766 -t 4770 4828 4768 -t 4828 4827 4768 -t 4772 4829 4770 -t 4829 4828 4770 -t 4774 4830 4772 -t 4830 4829 4772 -t 4776 4831 4774 -t 4831 4830 4774 -t 4778 4832 4776 -t 4832 4831 4776 -t 4642 4645 4832 -t 4778 4642 4832 -t 4780 4833 4646 -t 4644 4780 4646 -t 4782 4834 4780 -t 4834 4833 4780 -t 4784 4835 4782 -t 4835 4834 4782 -t 4786 4836 4784 -t 4836 4835 4784 -t 4788 4837 4786 -t 4837 4836 4786 -t 4790 4838 4788 -t 4838 4837 4788 -t 4792 4839 4790 -t 4839 4838 4790 -t 4794 4840 4792 -t 4840 4839 4792 -t 4796 4841 4794 -t 4841 4840 4794 -t 4798 4842 4796 -t 4842 4841 4796 -t 4800 4843 4798 -t 4843 4842 4798 -t 4802 4844 4800 -t 4844 4843 4800 -t 4804 4845 4802 -t 4845 4844 4802 -t 4806 4846 4804 -t 4846 4845 4804 -t 4808 4847 4806 -t 4847 4846 4806 -t 4810 4848 4808 -t 4848 4847 4808 -t 4812 4849 4810 -t 4849 4848 4810 -t 4814 4850 4812 -t 4850 4849 4812 -t 4815 4851 4816 -t 4851 4852 4816 -t 4817 4853 4815 -t 4853 4851 4815 -t 4818 4854 4817 -t 4854 4853 4817 -t 4819 4855 4818 -t 4855 4854 4818 -t 4820 4856 4819 -t 4856 4855 4819 -t 4821 4857 4820 -t 4857 4856 4820 -t 4822 4858 4821 -t 4858 4857 4821 -t 4823 4859 4822 -t 4859 4858 4822 -t 4824 4860 4823 -t 4860 4859 4823 -t 4825 4861 4824 -t 4861 4860 4824 -t 4826 4862 4825 -t 4862 4861 4825 -t 4827 4863 4826 -t 4863 4862 4826 -t 4828 4864 4827 -t 4864 4863 4827 -t 4829 4865 4828 -t 4865 4864 4828 -t 4830 4866 4829 -t 4866 4865 4829 -t 4831 4867 4830 -t 4867 4866 4830 -t 4832 4868 4831 -t 4868 4867 4831 -t 4645 4647 4868 -t 4832 4645 4868 -t 4833 4869 4648 -t 4646 4833 4648 -t 4834 4870 4833 -t 4870 4869 4833 -t 4835 4871 4834 -t 4871 4870 4834 -t 4836 4872 4835 -t 4872 4871 4835 -t 4837 4873 4836 -t 4873 4872 4836 -t 4838 4874 4837 -t 4874 4873 4837 -t 4839 4875 4838 -t 4875 4874 4838 -t 4840 4876 4839 -t 4876 4875 4839 -t 4841 4877 4840 -t 4877 4876 4840 -t 4842 4878 4841 -t 4878 4877 4841 -t 4843 4879 4842 -t 4879 4878 4842 -t 4844 4880 4843 -t 4880 4879 4843 -t 4845 4881 4844 -t 4881 4880 4844 -t 4846 4882 4845 -t 4882 4881 4845 -t 4847 4883 4846 -t 4883 4882 4846 -t 4848 4884 4847 -t 4884 4883 4847 -t 4849 4885 4848 -t 4885 4884 4848 -t 4850 4886 4849 -t 4886 4885 4849 -t 4851 4887 4852 -t 4887 4888 4852 -t 4853 4889 4851 -t 4889 4887 4851 -t 4854 4890 4853 -t 4890 4889 4853 -t 4855 4891 4854 -t 4891 4890 4854 -t 4856 4892 4855 -t 4892 4891 4855 -t 4857 4893 4856 -t 4893 4892 4856 -t 4858 4894 4857 -t 4894 4893 4857 -t 4859 4895 4858 -t 4895 4894 4858 -t 4860 4896 4859 -t 4896 4895 4859 -t 4861 4897 4860 -t 4897 4896 4860 -t 4862 4898 4861 -t 4898 4897 4861 -t 4863 4899 4862 -t 4899 4898 4862 -t 4864 4900 4863 -t 4900 4899 4863 -t 4865 4901 4864 -t 4901 4900 4864 -t 4866 4902 4865 -t 4902 4901 4865 -t 4867 4903 4866 -t 4903 4902 4866 -t 4868 4904 4867 -t 4904 4903 4867 -t 4647 4649 4904 -t 4868 4647 4904 -t 4869 4905 4650 -t 4648 4869 4650 -t 4870 4906 4869 -t 4906 4905 4869 -t 4871 4907 4870 -t 4907 4906 4870 -t 4872 4908 4871 -t 4908 4907 4871 -t 4873 4909 4872 -t 4909 4908 4872 -t 4874 4910 4873 -t 4910 4909 4873 -t 4875 4911 4874 -t 4911 4910 4874 -t 4876 4912 4875 -t 4912 4911 4875 -t 4877 4913 4876 -t 4913 4912 4876 -t 4878 4914 4877 -t 4914 4913 4877 -t 4879 4915 4878 -t 4915 4914 4878 -t 4880 4916 4879 -t 4916 4915 4879 -t 4881 4917 4880 -t 4917 4916 4880 -t 4882 4918 4881 -t 4918 4917 4881 -t 4883 4919 4882 -t 4919 4918 4882 -t 4884 4920 4883 -t 4920 4919 4883 -t 4885 4921 4884 -t 4921 4920 4884 -t 4886 4922 4885 -t 4922 4921 4885 -t 4887 4923 4888 -t 4923 4924 4888 -t 4889 4925 4887 -t 4925 4923 4887 -t 4890 4926 4889 -t 4926 4925 4889 -t 4891 4927 4890 -t 4927 4926 4890 -t 4892 4928 4891 -t 4928 4927 4891 -t 4893 4929 4892 -t 4929 4928 4892 -t 4894 4930 4893 -t 4930 4929 4893 -t 4895 4931 4894 -t 4931 4930 4894 -t 4896 4932 4895 -t 4932 4931 4895 -t 4897 4933 4896 -t 4933 4932 4896 -t 4898 4934 4897 -t 4934 4933 4897 -t 4899 4935 4898 -t 4935 4934 4898 -t 4900 4936 4899 -t 4936 4935 4899 -t 4901 4937 4900 -t 4937 4936 4900 -t 4902 4938 4901 -t 4938 4937 4901 -t 4903 4939 4902 -t 4939 4938 4902 -t 4904 4940 4903 -t 4940 4939 4903 -t 4649 4651 4940 -t 4904 4649 4940 -t 4905 4941 4652 -t 4650 4905 4652 -t 4906 4942 4905 -t 4942 4941 4905 -t 4907 4943 4906 -t 4943 4942 4906 -t 4908 4944 4907 -t 4944 4943 4907 -t 4909 4945 4908 -t 4945 4944 4908 -t 4910 4946 4909 -t 4946 4945 4909 -t 4911 4947 4910 -t 4947 4946 4910 -t 4912 4948 4911 -t 4948 4947 4911 -t 4913 4949 4912 -t 4949 4948 4912 -t 4914 4950 4913 -t 4950 4949 4913 -t 4915 4951 4914 -t 4951 4950 4914 -t 4916 4952 4915 -t 4952 4951 4915 -t 4917 4953 4916 -t 4953 4952 4916 -t 4918 4954 4917 -t 4954 4953 4917 -t 4919 4955 4918 -t 4955 4954 4918 -t 4920 4956 4919 -t 4956 4955 4919 -t 4921 4957 4920 -t 4957 4956 4920 -t 4922 4958 4921 -t 4958 4957 4921 -t 4923 4959 4924 -t 4959 4960 4924 -t 4925 4961 4923 -t 4961 4959 4923 -t 4926 4962 4925 -t 4962 4961 4925 -t 4927 4963 4926 -t 4963 4962 4926 -t 4928 4964 4927 -t 4964 4963 4927 -t 4929 4965 4928 -t 4965 4964 4928 -t 4930 4966 4929 -t 4966 4965 4929 -t 4931 4967 4930 -t 4967 4966 4930 -t 4932 4968 4931 -t 4968 4967 4931 -t 4933 4969 4932 -t 4969 4968 4932 -t 4934 4970 4933 -t 4970 4969 4933 -t 4935 4971 4934 -t 4971 4970 4934 -t 4936 4972 4935 -t 4972 4971 4935 -t 4937 4973 4936 -t 4973 4972 4936 -t 4938 4974 4937 -t 4974 4973 4937 -t 4939 4975 4938 -t 4975 4974 4938 -t 4940 4976 4939 -t 4976 4975 4939 -t 4651 4653 4976 -t 4940 4651 4976 -t 4941 4977 4654 -t 4652 4941 4654 -t 4942 4978 4941 -t 4978 4977 4941 -t 4943 4979 4942 -t 4979 4978 4942 -t 4944 4980 4943 -t 4980 4979 4943 -t 4945 4981 4944 -t 4981 4980 4944 -t 4946 4982 4945 -t 4982 4981 4945 -t 4947 4983 4946 -t 4983 4982 4946 -t 4948 4984 4947 -t 4984 4983 4947 -t 4949 4985 4948 -t 4985 4984 4948 -t 4950 4986 4949 -t 4986 4985 4949 -t 4951 4987 4950 -t 4987 4986 4950 -t 4952 4988 4951 -t 4988 4987 4951 -t 4953 4989 4952 -t 4989 4988 4952 -t 4954 4990 4953 -t 4990 4989 4953 -t 4955 4991 4954 -t 4991 4990 4954 -t 4956 4992 4955 -t 4992 4991 4955 -t 4957 4993 4956 -t 4993 4992 4956 -t 4958 4994 4957 -t 4994 4993 4957 -t 4959 4995 4960 -t 4995 4996 4960 -t 4961 4997 4959 -t 4997 4995 4959 -t 4962 4998 4961 -t 4998 4997 4961 -t 4963 4999 4962 -t 4999 4998 4962 -t 4964 5000 4963 -t 5000 4999 4963 -t 4965 5001 4964 -t 5001 5000 4964 -t 4966 5002 4965 -t 5002 5001 4965 -t 4967 5003 4966 -t 5003 5002 4966 -t 4968 5004 4967 -t 5004 5003 4967 -t 4969 5005 4968 -t 5005 5004 4968 -t 4970 5006 4969 -t 5006 5005 4969 -t 4971 5007 4970 -t 5007 5006 4970 -t 4972 5008 4971 -t 5008 5007 4971 -t 4973 5009 4972 -t 5009 5008 4972 -t 4974 5010 4973 -t 5010 5009 4973 -t 4975 5011 4974 -t 5011 5010 4974 -t 4976 5012 4975 -t 5012 5011 4975 -t 4653 4655 5012 -t 4976 4653 5012 -t 4977 5013 4656 -t 4654 4977 4656 -t 4978 5014 4977 -t 5014 5013 4977 -t 4979 5015 4978 -t 5015 5014 4978 -t 4980 5016 4979 -t 5016 5015 4979 -t 4981 5017 4980 -t 5017 5016 4980 -t 4982 5018 4981 -t 5018 5017 4981 -t 4983 5019 4982 -t 5019 5018 4982 -t 4984 5020 4983 -t 5020 5019 4983 -t 4985 5021 4984 -t 5021 5020 4984 -t 4986 5022 4985 -t 5022 5021 4985 -t 4987 5023 4986 -t 5023 5022 4986 -t 4988 5024 4987 -t 5024 5023 4987 -t 4989 5025 4988 -t 5025 5024 4988 -t 4990 5026 4989 -t 5026 5025 4989 -t 4991 5027 4990 -t 5027 5026 4990 -t 4992 5028 4991 -t 5028 5027 4991 -t 4993 5029 4992 -t 5029 5028 4992 -t 4994 5030 4993 -t 5030 5029 4993 -t 4995 5031 4996 -t 5031 5032 4996 -t 4997 5033 4995 -t 5033 5031 4995 -t 4998 5034 4997 -t 5034 5033 4997 -t 4999 5035 4998 -t 5035 5034 4998 -t 5000 5036 4999 -t 5036 5035 4999 -t 5001 5037 5000 -t 5037 5036 5000 -t 5002 5038 5001 -t 5038 5037 5001 -t 5003 5039 5002 -t 5039 5038 5002 -t 5004 5040 5003 -t 5040 5039 5003 -t 5005 5041 5004 -t 5041 5040 5004 -t 5006 5042 5005 -t 5042 5041 5005 -t 5007 5043 5006 -t 5043 5042 5006 -t 5008 5044 5007 -t 5044 5043 5007 -t 5009 5045 5008 -t 5045 5044 5008 -t 5010 5046 5009 -t 5046 5045 5009 -t 5011 5047 5010 -t 5047 5046 5010 -t 5012 5048 5011 -t 5048 5047 5011 -t 4655 4657 5048 -t 5012 4655 5048 -t 5013 5049 4658 -t 4656 5013 4658 -t 5014 5050 5013 -t 5050 5049 5013 -t 5015 5051 5014 -t 5051 5050 5014 -t 5016 5052 5015 -t 5052 5051 5015 -t 5017 5053 5016 -t 5053 5052 5016 -t 5018 5054 5017 -t 5054 5053 5017 -t 5019 5055 5018 -t 5055 5054 5018 -t 5020 5056 5019 -t 5056 5055 5019 -t 5021 5057 5020 -t 5057 5056 5020 -t 5022 5058 5021 -t 5058 5057 5021 -t 5023 5059 5022 -t 5059 5058 5022 -t 5024 5060 5023 -t 5060 5059 5023 -t 5025 5061 5024 -t 5061 5060 5024 -t 5026 5062 5025 -t 5062 5061 5025 -t 5027 5063 5026 -t 5063 5062 5026 -t 5028 5064 5027 -t 5064 5063 5027 -t 5029 5065 5028 -t 5065 5064 5028 -t 5030 5066 5029 -t 5066 5065 5029 -t 5031 5067 5032 -t 5067 5068 5032 -t 5033 5069 5031 -t 5069 5067 5031 -t 5034 5070 5033 -t 5070 5069 5033 -t 5035 5071 5034 -t 5071 5070 5034 -t 5036 5072 5035 -t 5072 5071 5035 -t 5037 5073 5036 -t 5073 5072 5036 -t 5038 5074 5037 -t 5074 5073 5037 -t 5039 5075 5038 -t 5075 5074 5038 -t 5040 5076 5039 -t 5076 5075 5039 -t 5041 5077 5040 -t 5077 5076 5040 -t 5042 5078 5041 -t 5078 5077 5041 -t 5043 5079 5042 -t 5079 5078 5042 -t 5044 5080 5043 -t 5080 5079 5043 -t 5045 5081 5044 -t 5081 5080 5044 -t 5046 5082 5045 -t 5082 5081 5045 -t 5047 5083 5046 -t 5083 5082 5046 -t 5048 5084 5047 -t 5084 5083 5047 -t 4657 4659 5084 -t 5048 4657 5084 -t 5049 5085 4660 -t 4658 5049 4660 -t 5050 5086 5049 -t 5086 5085 5049 -t 5051 5087 5050 -t 5087 5086 5050 -t 5052 5088 5051 -t 5088 5087 5051 -t 5053 5089 5052 -t 5089 5088 5052 -t 5054 5090 5053 -t 5090 5089 5053 -t 5055 5091 5054 -t 5091 5090 5054 -t 5056 5092 5055 -t 5092 5091 5055 -t 5057 5093 5056 -t 5093 5092 5056 -t 5058 5094 5057 -t 5094 5093 5057 -t 5059 5095 5058 -t 5095 5094 5058 -t 5060 5096 5059 -t 5096 5095 5059 -t 5061 5097 5060 -t 5097 5096 5060 -t 5062 5098 5061 -t 5098 5097 5061 -t 5063 5099 5062 -t 5099 5098 5062 -t 5064 5100 5063 -t 5100 5099 5063 -t 5065 5101 5064 -t 5101 5100 5064 -t 5066 5102 5065 -t 5102 5101 5065 -t 5067 5103 5068 -t 5103 5104 5068 -t 5069 5105 5067 -t 5105 5103 5067 -t 5070 5106 5069 -t 5106 5105 5069 -t 5071 5107 5070 -t 5107 5106 5070 -t 5072 5108 5071 -t 5108 5107 5071 -t 5073 5109 5072 -t 5109 5108 5072 -t 5074 5110 5073 -t 5110 5109 5073 -t 5075 5111 5074 -t 5111 5110 5074 -t 5076 5112 5075 -t 5112 5111 5075 -t 5077 5113 5076 -t 5113 5112 5076 -t 5078 5114 5077 -t 5114 5113 5077 -t 5079 5115 5078 -t 5115 5114 5078 -t 5080 5116 5079 -t 5116 5115 5079 -t 5081 5117 5080 -t 5117 5116 5080 -t 5082 5118 5081 -t 5118 5117 5081 -t 5083 5119 5082 -t 5119 5118 5082 -t 5084 5120 5083 -t 5120 5119 5083 -t 4659 4661 5120 -t 5084 4659 5120 -t 5085 5121 4662 -t 4660 5085 4662 -t 5086 5122 5085 -t 5122 5121 5085 -t 5087 5123 5086 -t 5123 5122 5086 -t 5088 5124 5087 -t 5124 5123 5087 -t 5089 5125 5088 -t 5125 5124 5088 -t 5090 5126 5089 -t 5126 5125 5089 -t 5091 5127 5090 -t 5127 5126 5090 -t 5092 5128 5091 -t 5128 5127 5091 -t 5093 5129 5092 -t 5129 5128 5092 -t 5094 5130 5093 -t 5130 5129 5093 -t 5095 5131 5094 -t 5131 5130 5094 -t 5096 5132 5095 -t 5132 5131 5095 -t 5097 5133 5096 -t 5133 5132 5096 -t 5098 5134 5097 -t 5134 5133 5097 -t 5099 5135 5098 -t 5135 5134 5098 -t 5100 5136 5099 -t 5136 5135 5099 -t 5101 5137 5100 -t 5137 5136 5100 -t 5102 5138 5101 -t 5138 5137 5101 -t 5103 5139 5104 -t 5139 5140 5104 -t 5105 5141 5103 -t 5141 5139 5103 -t 5106 5142 5105 -t 5142 5141 5105 -t 5107 5143 5106 -t 5143 5142 5106 -t 5108 5144 5107 -t 5144 5143 5107 -t 5109 5145 5108 -t 5145 5144 5108 -t 5110 5146 5109 -t 5146 5145 5109 -t 5111 5147 5110 -t 5147 5146 5110 -t 5112 5148 5111 -t 5148 5147 5111 -t 5113 5149 5112 -t 5149 5148 5112 -t 5114 5150 5113 -t 5150 5149 5113 -t 5115 5151 5114 -t 5151 5150 5114 -t 5116 5152 5115 -t 5152 5151 5115 -t 5117 5153 5116 -t 5153 5152 5116 -t 5118 5154 5117 -t 5154 5153 5117 -t 5119 5155 5118 -t 5155 5154 5118 -t 5120 5156 5119 -t 5156 5155 5119 -t 4661 4663 5156 -t 5120 4661 5156 -t 5121 5157 4664 -t 4662 5121 4664 -t 5122 5158 5121 -t 5158 5157 5121 -t 5123 5159 5122 -t 5159 5158 5122 -t 5124 5160 5123 -t 5160 5159 5123 -t 5125 5161 5124 -t 5161 5160 5124 -t 5126 5162 5125 -t 5162 5161 5125 -t 5127 5163 5126 -t 5163 5162 5126 -t 5128 5164 5127 -t 5164 5163 5127 -t 5129 5165 5128 -t 5165 5164 5128 -t 5130 5166 5129 -t 5166 5165 5129 -t 5131 5167 5130 -t 5167 5166 5130 -t 5132 5168 5131 -t 5168 5167 5131 -t 5133 5169 5132 -t 5169 5168 5132 -t 5134 5170 5133 -t 5170 5169 5133 -t 5135 5171 5134 -t 5171 5170 5134 -t 5136 5172 5135 -t 5172 5171 5135 -t 5137 5173 5136 -t 5173 5172 5136 -t 5138 5174 5137 -t 5174 5173 5137 -t 5139 5175 5140 -t 5175 5176 5140 -t 5141 5177 5139 -t 5177 5175 5139 -t 5142 5178 5141 -t 5178 5177 5141 -t 5143 5179 5142 -t 5179 5178 5142 -t 5144 5180 5143 -t 5180 5179 5143 -t 5145 5181 5144 -t 5181 5180 5144 -t 5146 5182 5145 -t 5182 5181 5145 -t 5147 5183 5146 -t 5183 5182 5146 -t 5148 5184 5147 -t 5184 5183 5147 -t 5149 5185 5148 -t 5185 5184 5148 -t 5150 5186 5149 -t 5186 5185 5149 -t 5151 5187 5150 -t 5187 5186 5150 -t 5152 5188 5151 -t 5188 5187 5151 -t 5153 5189 5152 -t 5189 5188 5152 -t 5154 5190 5153 -t 5190 5189 5153 -t 5155 5191 5154 -t 5191 5190 5154 -t 5156 5192 5155 -t 5192 5191 5155 -t 4663 4665 5192 -t 5156 4663 5192 -t 5157 5193 4666 -t 4664 5157 4666 -t 5158 5194 5157 -t 5194 5193 5157 -t 5159 5195 5158 -t 5195 5194 5158 -t 5160 5196 5159 -t 5196 5195 5159 -t 5161 5197 5160 -t 5197 5196 5160 -t 5162 5198 5161 -t 5198 5197 5161 -t 5163 5199 5162 -t 5199 5198 5162 -t 5164 5200 5163 -t 5200 5199 5163 -t 5165 5201 5164 -t 5201 5200 5164 -t 5166 5202 5165 -t 5202 5201 5165 -t 5167 5203 5166 -t 5203 5202 5166 -t 5168 5204 5167 -t 5204 5203 5167 -t 5169 5205 5168 -t 5205 5204 5168 -t 5170 5206 5169 -t 5206 5205 5169 -t 5171 5207 5170 -t 5207 5206 5170 -t 5172 5208 5171 -t 5208 5207 5171 -t 5173 5209 5172 -t 5209 5208 5172 -t 5174 5210 5173 -t 5210 5209 5173 -t 5175 5211 5176 -t 5211 5212 5176 -t 5177 5213 5175 -t 5213 5211 5175 -t 5178 5214 5177 -t 5214 5213 5177 -t 5179 5215 5178 -t 5215 5214 5178 -t 5180 5216 5179 -t 5216 5215 5179 -t 5181 5217 5180 -t 5217 5216 5180 -t 5182 5218 5181 -t 5218 5217 5181 -t 5183 5219 5182 -t 5219 5218 5182 -t 5184 5220 5183 -t 5220 5219 5183 -t 5185 5221 5184 -t 5221 5220 5184 -t 5186 5222 5185 -t 5222 5221 5185 -t 5187 5223 5186 -t 5223 5222 5186 -t 5188 5224 5187 -t 5224 5223 5187 -t 5189 5225 5188 -t 5225 5224 5188 -t 5190 5226 5189 -t 5226 5225 5189 -t 5191 5227 5190 -t 5227 5226 5190 -t 5192 5228 5191 -t 5228 5227 5191 -t 4665 4667 5228 -t 5192 4665 5228 -t 5193 5229 4668 -t 4666 5193 4668 -t 5194 5230 5193 -t 5230 5229 5193 -t 5195 5231 5194 -t 5231 5230 5194 -t 5196 5232 5195 -t 5232 5231 5195 -t 5197 5233 5196 -t 5233 5232 5196 -t 5198 5234 5197 -t 5234 5233 5197 -t 5199 5235 5198 -t 5235 5234 5198 -t 5200 5236 5199 -t 5236 5235 5199 -t 5201 5237 5200 -t 5237 5236 5200 -t 5202 5238 5201 -t 5238 5237 5201 -t 5203 5239 5202 -t 5239 5238 5202 -t 5204 5240 5203 -t 5240 5239 5203 -t 5205 5241 5204 -t 5241 5240 5204 -t 5206 5242 5205 -t 5242 5241 5205 -t 5207 5243 5206 -t 5243 5242 5206 -t 5208 5244 5207 -t 5244 5243 5207 -t 5209 5245 5208 -t 5245 5244 5208 -t 5210 5246 5209 -t 5246 5245 5209 -t 5211 5247 5212 -t 5247 5248 5212 -t 5213 5249 5211 -t 5249 5247 5211 -t 5214 5250 5213 -t 5250 5249 5213 -t 5215 5251 5214 -t 5251 5250 5214 -t 5216 5252 5215 -t 5252 5251 5215 -t 5217 5253 5216 -t 5253 5252 5216 -t 5218 5254 5217 -t 5254 5253 5217 -t 5219 5255 5218 -t 5255 5254 5218 -t 5220 5256 5219 -t 5256 5255 5219 -t 5221 5257 5220 -t 5257 5256 5220 -t 5222 5258 5221 -t 5258 5257 5221 -t 5223 5259 5222 -t 5259 5258 5222 -t 5224 5260 5223 -t 5260 5259 5223 -t 5225 5261 5224 -t 5261 5260 5224 -t 5226 5262 5225 -t 5262 5261 5225 -t 5227 5263 5226 -t 5263 5262 5226 -t 5228 5264 5227 -t 5264 5263 5227 -t 4667 4669 5264 -t 5228 4667 5264 -t 5229 5265 4670 -t 4668 5229 4670 -t 5230 5266 5229 -t 5266 5265 5229 -t 5231 5267 5230 -t 5267 5266 5230 -t 5232 5268 5231 -t 5268 5267 5231 -t 5233 5269 5232 -t 5269 5268 5232 -t 5234 5270 5233 -t 5270 5269 5233 -t 5235 5271 5234 -t 5271 5270 5234 -t 5236 5272 5235 -t 5272 5271 5235 -t 5237 5273 5236 -t 5273 5272 5236 -t 5238 5274 5237 -t 5274 5273 5237 -t 5239 5275 5238 -t 5275 5274 5238 -t 5240 5276 5239 -t 5276 5275 5239 -t 5241 5277 5240 -t 5277 5276 5240 -t 5242 5278 5241 -t 5278 5277 5241 -t 5243 5279 5242 -t 5279 5278 5242 -t 5244 5280 5243 -t 5280 5279 5243 -t 5245 5281 5244 -t 5281 5280 5244 -t 5246 5282 5245 -t 5282 5281 5245 -t 5247 5283 5248 -t 5283 5284 5248 -t 5249 5285 5247 -t 5285 5283 5247 -t 5250 5286 5249 -t 5286 5285 5249 -t 5251 5287 5250 -t 5287 5286 5250 -t 5252 5288 5251 -t 5288 5287 5251 -t 5253 5289 5252 -t 5289 5288 5252 -t 5254 5290 5253 -t 5290 5289 5253 -t 5255 5291 5254 -t 5291 5290 5254 -t 5256 5292 5255 -t 5292 5291 5255 -t 5257 5293 5256 -t 5293 5292 5256 -t 5258 5294 5257 -t 5294 5293 5257 -t 5259 5295 5258 -t 5295 5294 5258 -t 5260 5296 5259 -t 5296 5295 5259 -t 5261 5297 5260 -t 5297 5296 5260 -t 5262 5298 5261 -t 5298 5297 5261 -t 5263 5299 5262 -t 5299 5298 5262 -t 5264 5300 5263 -t 5300 5299 5263 -t 4669 4671 5300 -t 5264 4669 5300 -t 5265 5301 4672 -t 4670 5265 4672 -t 5266 5302 5265 -t 5302 5301 5265 -t 5267 5303 5266 -t 5303 5302 5266 -t 5268 5304 5267 -t 5304 5303 5267 -t 5269 5305 5268 -t 5305 5304 5268 -t 5270 5306 5269 -t 5306 5305 5269 -t 5271 5307 5270 -t 5307 5306 5270 -t 5272 5308 5271 -t 5308 5307 5271 -t 5273 5309 5272 -t 5309 5308 5272 -t 5274 5310 5273 -t 5310 5309 5273 -t 5275 5311 5274 -t 5311 5310 5274 -t 5276 5312 5275 -t 5312 5311 5275 -t 5277 5313 5276 -t 5313 5312 5276 -t 5278 5314 5277 -t 5314 5313 5277 -t 5279 5315 5278 -t 5315 5314 5278 -t 5280 5316 5279 -t 5316 5315 5279 -t 5281 5317 5280 -t 5317 5316 5280 -t 5282 5318 5281 -t 5318 5317 5281 -t 5283 5319 5284 -t 5319 5320 5284 -t 5285 5321 5283 -t 5321 5319 5283 -t 5286 5322 5285 -t 5322 5321 5285 -t 5287 5323 5286 -t 5323 5322 5286 -t 5288 5324 5287 -t 5324 5323 5287 -t 5289 5325 5288 -t 5325 5324 5288 -t 5290 5326 5289 -t 5326 5325 5289 -t 5291 5327 5290 -t 5327 5326 5290 -t 5292 5328 5291 -t 5328 5327 5291 -t 5293 5329 5292 -t 5329 5328 5292 -t 5294 5330 5293 -t 5330 5329 5293 -t 5295 5331 5294 -t 5331 5330 5294 -t 5296 5332 5295 -t 5332 5331 5295 -t 5297 5333 5296 -t 5333 5332 5296 -t 5298 5334 5297 -t 5334 5333 5297 -t 5299 5335 5298 -t 5335 5334 5298 -t 5300 5336 5299 -t 5336 5335 5299 -t 4671 4673 5336 -t 5300 4671 5336 -t 5301 5337 4674 -t 4672 5301 4674 -t 5302 5338 5301 -t 5338 5337 5301 -t 5303 5339 5302 -t 5339 5338 5302 -t 5304 5340 5303 -t 5340 5339 5303 -t 5305 5341 5304 -t 5341 5340 5304 -t 5306 5342 5305 -t 5342 5341 5305 -t 5307 5343 5306 -t 5343 5342 5306 -t 5308 5344 5307 -t 5344 5343 5307 -t 5309 5345 5308 -t 5345 5344 5308 -t 5310 5346 5309 -t 5346 5345 5309 -t 5311 5347 5310 -t 5347 5346 5310 -t 5312 5348 5311 -t 5348 5347 5311 -t 5313 5349 5312 -t 5349 5348 5312 -t 5314 5350 5313 -t 5350 5349 5313 -t 5315 5351 5314 -t 5351 5350 5314 -t 5316 5352 5315 -t 5352 5351 5315 -t 5317 5353 5316 -t 5353 5352 5316 -t 5318 5354 5317 -t 5354 5353 5317 -t 5319 5355 5320 -t 5355 5356 5320 -t 5321 5357 5319 -t 5357 5355 5319 -t 5322 5358 5321 -t 5358 5357 5321 -t 5323 5359 5322 -t 5359 5358 5322 -t 5324 5360 5323 -t 5360 5359 5323 -t 5325 5361 5324 -t 5361 5360 5324 -t 5326 5362 5325 -t 5362 5361 5325 -t 5327 5363 5326 -t 5363 5362 5326 -t 5328 5364 5327 -t 5364 5363 5327 -t 5329 5365 5328 -t 5365 5364 5328 -t 5330 5366 5329 -t 5366 5365 5329 -t 5331 5367 5330 -t 5367 5366 5330 -t 5332 5368 5331 -t 5368 5367 5331 -t 5333 5369 5332 -t 5369 5368 5332 -t 5334 5370 5333 -t 5370 5369 5333 -t 5335 5371 5334 -t 5371 5370 5334 -t 5336 5372 5335 -t 5372 5371 5335 -t 4673 4675 5372 -t 5336 4673 5372 -t 5337 5373 4676 -t 4674 5337 4676 -t 5338 5374 5337 -t 5374 5373 5337 -t 5339 5375 5338 -t 5375 5374 5338 -t 5340 5376 5339 -t 5376 5375 5339 -t 5341 5377 5340 -t 5377 5376 5340 -t 5342 5378 5341 -t 5378 5377 5341 -t 5343 5379 5342 -t 5379 5378 5342 -t 5344 5380 5343 -t 5380 5379 5343 -t 5345 5381 5344 -t 5381 5380 5344 -t 5346 5382 5345 -t 5382 5381 5345 -t 5347 5383 5346 -t 5383 5382 5346 -t 5348 5384 5347 -t 5384 5383 5347 -t 5349 5385 5348 -t 5385 5384 5348 -t 5350 5386 5349 -t 5386 5385 5349 -t 5351 5387 5350 -t 5387 5386 5350 -t 5352 5388 5351 -t 5388 5387 5351 -t 5353 5389 5352 -t 5389 5388 5352 -t 5354 5390 5353 -t 5390 5389 5353 -t 5355 5391 5356 -t 5391 5392 5356 -t 5357 5393 5355 -t 5393 5391 5355 -t 5358 5394 5357 -t 5394 5393 5357 -t 5359 5395 5358 -t 5395 5394 5358 -t 5360 5396 5359 -t 5396 5395 5359 -t 5361 5397 5360 -t 5397 5396 5360 -t 5362 5398 5361 -t 5398 5397 5361 -t 5363 5399 5362 -t 5399 5398 5362 -t 5364 5400 5363 -t 5400 5399 5363 -t 5365 5401 5364 -t 5401 5400 5364 -t 5366 5402 5365 -t 5402 5401 5365 -t 5367 5403 5366 -t 5403 5402 5366 -t 5368 5404 5367 -t 5404 5403 5367 -t 5369 5405 5368 -t 5405 5404 5368 -t 5370 5406 5369 -t 5406 5405 5369 -t 5371 5407 5370 -t 5407 5406 5370 -t 5372 5408 5371 -t 5408 5407 5371 -t 4675 4677 5408 -t 5372 4675 5408 -t 5373 5409 4678 -t 4676 5373 4678 -t 5374 5410 5373 -t 5410 5409 5373 -t 5375 5411 5374 -t 5411 5410 5374 -t 5376 5412 5375 -t 5412 5411 5375 -t 5377 5413 5376 -t 5413 5412 5376 -t 5378 5414 5377 -t 5414 5413 5377 -t 5379 5415 5378 -t 5415 5414 5378 -t 5380 5416 5379 -t 5416 5415 5379 -t 5381 5417 5380 -t 5417 5416 5380 -t 5382 5418 5381 -t 5418 5417 5381 -t 5383 5419 5382 -t 5419 5418 5382 -t 5384 5420 5383 -t 5420 5419 5383 -t 5385 5421 5384 -t 5421 5420 5384 -t 5386 5422 5385 -t 5422 5421 5385 -t 5387 5423 5386 -t 5423 5422 5386 -t 5388 5424 5387 -t 5424 5423 5387 -t 5389 5425 5388 -t 5425 5424 5388 -t 5390 5426 5389 -t 5426 5425 5389 -t 5391 5427 5392 -t 5427 5428 5392 -t 5393 5429 5391 -t 5429 5427 5391 -t 5394 5430 5393 -t 5430 5429 5393 -t 5395 5431 5394 -t 5431 5430 5394 -t 5396 5432 5395 -t 5432 5431 5395 -t 5397 5433 5396 -t 5433 5432 5396 -t 5398 5434 5397 -t 5434 5433 5397 -t 5399 5435 5398 -t 5435 5434 5398 -t 5400 5436 5399 -t 5436 5435 5399 -t 5401 5437 5400 -t 5437 5436 5400 -t 5402 5438 5401 -t 5438 5437 5401 -t 5403 5439 5402 -t 5439 5438 5402 -t 5404 5440 5403 -t 5440 5439 5403 -t 5405 5441 5404 -t 5441 5440 5404 -t 5406 5442 5405 -t 5442 5441 5405 -t 5407 5443 5406 -t 5443 5442 5406 -t 5408 5444 5407 -t 5444 5443 5407 -t 4677 4679 5444 -t 5408 4677 5444 -t 5409 5445 4680 -t 4678 5409 4680 -t 5410 5446 5409 -t 5446 5445 5409 -t 5411 5447 5410 -t 5447 5446 5410 -t 5412 5448 5411 -t 5448 5447 5411 -t 5413 5449 5412 -t 5449 5448 5412 -t 5414 5450 5413 -t 5450 5449 5413 -t 5415 5451 5414 -t 5451 5450 5414 -t 5416 5452 5415 -t 5452 5451 5415 -t 5417 5453 5416 -t 5453 5452 5416 -t 5418 5454 5417 -t 5454 5453 5417 -t 5419 5455 5418 -t 5455 5454 5418 -t 5420 5456 5419 -t 5456 5455 5419 -t 5421 5457 5420 -t 5457 5456 5420 -t 5422 5458 5421 -t 5458 5457 5421 -t 5423 5459 5422 -t 5459 5458 5422 -t 5424 5460 5423 -t 5460 5459 5423 -t 5425 5461 5424 -t 5461 5460 5424 -t 5426 5462 5425 -t 5462 5461 5425 -t 5427 5463 5428 -t 5463 5464 5428 -t 5429 5465 5427 -t 5465 5463 5427 -t 5430 5466 5429 -t 5466 5465 5429 -t 5431 5467 5430 -t 5467 5466 5430 -t 5432 5468 5431 -t 5468 5467 5431 -t 5433 5469 5432 -t 5469 5468 5432 -t 5434 5470 5433 -t 5470 5469 5433 -t 5435 5471 5434 -t 5471 5470 5434 -t 5436 5472 5435 -t 5472 5471 5435 -t 5437 5473 5436 -t 5473 5472 5436 -t 5438 5474 5437 -t 5474 5473 5437 -t 5439 5475 5438 -t 5475 5474 5438 -t 5440 5476 5439 -t 5476 5475 5439 -t 5441 5477 5440 -t 5477 5476 5440 -t 5442 5478 5441 -t 5478 5477 5441 -t 5443 5479 5442 -t 5479 5478 5442 -t 5444 5480 5443 -t 5480 5479 5443 -t 4679 4681 5480 -t 5444 4679 5480 -t 5445 5481 4682 -t 4680 5445 4682 -t 5446 5482 5445 -t 5482 5481 5445 -t 5447 5483 5446 -t 5483 5482 5446 -t 5448 5484 5447 -t 5484 5483 5447 -t 5449 5485 5448 -t 5485 5484 5448 -t 5450 5486 5449 -t 5486 5485 5449 -t 5451 5487 5450 -t 5487 5486 5450 -t 5452 5488 5451 -t 5488 5487 5451 -t 5453 5489 5452 -t 5489 5488 5452 -t 5454 5490 5453 -t 5490 5489 5453 -t 5455 5491 5454 -t 5491 5490 5454 -t 5456 5492 5455 -t 5492 5491 5455 -t 5457 5493 5456 -t 5493 5492 5456 -t 5458 5494 5457 -t 5494 5493 5457 -t 5459 5495 5458 -t 5495 5494 5458 -t 5460 5496 5459 -t 5496 5495 5459 -t 5461 5497 5460 -t 5497 5496 5460 -t 5462 5498 5461 -t 5498 5497 5461 -t 5463 5499 5464 -t 5499 5500 5464 -t 5465 5501 5463 -t 5501 5499 5463 -t 5466 5502 5465 -t 5502 5501 5465 -t 5467 5503 5466 -t 5503 5502 5466 -t 5468 5504 5467 -t 5504 5503 5467 -t 5469 5505 5468 -t 5505 5504 5468 -t 5470 5506 5469 -t 5506 5505 5469 -t 5471 5507 5470 -t 5507 5506 5470 -t 5472 5508 5471 -t 5508 5507 5471 -t 5473 5509 5472 -t 5509 5508 5472 -t 5474 5510 5473 -t 5510 5509 5473 -t 5475 5511 5474 -t 5511 5510 5474 -t 5476 5512 5475 -t 5512 5511 5475 -t 5477 5513 5476 -t 5513 5512 5476 -t 5478 5514 5477 -t 5514 5513 5477 -t 5479 5515 5478 -t 5515 5514 5478 -t 5480 5516 5479 -t 5516 5515 5479 -t 4681 4683 5516 -t 5480 4681 5516 -t 5481 5517 4684 -t 4682 5481 4684 -t 5482 5518 5481 -t 5518 5517 5481 -t 5483 5519 5482 -t 5519 5518 5482 -t 5484 5520 5483 -t 5520 5519 5483 -t 5485 5521 5484 -t 5521 5520 5484 -t 5486 5522 5485 -t 5522 5521 5485 -t 5487 5523 5486 -t 5523 5522 5486 -t 5488 5524 5487 -t 5524 5523 5487 -t 5489 5525 5488 -t 5525 5524 5488 -t 5490 5526 5489 -t 5526 5525 5489 -t 5491 5527 5490 -t 5527 5526 5490 -t 5492 5528 5491 -t 5528 5527 5491 -t 5493 5529 5492 -t 5529 5528 5492 -t 5494 5530 5493 -t 5530 5529 5493 -t 5495 5531 5494 -t 5531 5530 5494 -t 5496 5532 5495 -t 5532 5531 5495 -t 5497 5533 5496 -t 5533 5532 5496 -t 5498 5534 5497 -t 5534 5533 5497 -t 5499 5535 5500 -t 5535 5536 5500 -t 5501 5537 5499 -t 5537 5535 5499 -t 5502 5538 5501 -t 5538 5537 5501 -t 5503 5539 5502 -t 5539 5538 5502 -t 5504 5540 5503 -t 5540 5539 5503 -t 5505 5541 5504 -t 5541 5540 5504 -t 5506 5542 5505 -t 5542 5541 5505 -t 5507 5543 5506 -t 5543 5542 5506 -t 5508 5544 5507 -t 5544 5543 5507 -t 5509 5545 5508 -t 5545 5544 5508 -t 5510 5546 5509 -t 5546 5545 5509 -t 5511 5547 5510 -t 5547 5546 5510 -t 5512 5548 5511 -t 5548 5547 5511 -t 5513 5549 5512 -t 5549 5548 5512 -t 5514 5550 5513 -t 5550 5549 5513 -t 5515 5551 5514 -t 5551 5550 5514 -t 5516 5552 5515 -t 5552 5551 5515 -t 4683 4685 5552 -t 5516 4683 5552 -t 5517 5553 4686 -t 4684 5517 4686 -t 5518 5554 5517 -t 5554 5553 5517 -t 5519 5555 5518 -t 5555 5554 5518 -t 5520 5556 5519 -t 5556 5555 5519 -t 5521 5557 5520 -t 5557 5556 5520 -t 5522 5558 5521 -t 5558 5557 5521 -t 5523 5559 5522 -t 5559 5558 5522 -t 5524 5560 5523 -t 5560 5559 5523 -t 5525 5561 5524 -t 5561 5560 5524 -t 5526 5562 5525 -t 5562 5561 5525 -t 5527 5563 5526 -t 5563 5562 5526 -t 5528 5564 5527 -t 5564 5563 5527 -t 5529 5565 5528 -t 5565 5564 5528 -t 5530 5566 5529 -t 5566 5565 5529 -t 5531 5567 5530 -t 5567 5566 5530 -t 5532 5568 5531 -t 5568 5567 5531 -t 5533 5569 5532 -t 5569 5568 5532 -t 5534 5570 5533 -t 5570 5569 5533 -t 5535 5571 5536 -t 5571 5572 5536 -t 5537 5573 5535 -t 5573 5571 5535 -t 5538 5574 5537 -t 5574 5573 5537 -t 5539 5575 5538 -t 5575 5574 5538 -t 5540 5576 5539 -t 5576 5575 5539 -t 5541 5577 5540 -t 5577 5576 5540 -t 5542 5578 5541 -t 5578 5577 5541 -t 5543 5579 5542 -t 5579 5578 5542 -t 5544 5580 5543 -t 5580 5579 5543 -t 5545 5581 5544 -t 5581 5580 5544 -t 5546 5582 5545 -t 5582 5581 5545 -t 5547 5583 5546 -t 5583 5582 5546 -t 5548 5584 5547 -t 5584 5583 5547 -t 5549 5585 5548 -t 5585 5584 5548 -t 5550 5586 5549 -t 5586 5585 5549 -t 5551 5587 5550 -t 5587 5586 5550 -t 5552 5588 5551 -t 5588 5587 5551 -t 4685 4687 5588 -t 5552 4685 5588 -t 5553 5589 4688 -t 4686 5553 4688 -t 5554 5590 5553 -t 5590 5589 5553 -t 5555 5591 5554 -t 5591 5590 5554 -t 5556 5592 5555 -t 5592 5591 5555 -t 5557 5593 5556 -t 5593 5592 5556 -t 5558 5594 5557 -t 5594 5593 5557 -t 5559 5595 5558 -t 5595 5594 5558 -t 5560 5596 5559 -t 5596 5595 5559 -t 5561 5597 5560 -t 5597 5596 5560 -t 5562 5598 5561 -t 5598 5597 5561 -t 5563 5599 5562 -t 5599 5598 5562 -t 5564 5600 5563 -t 5600 5599 5563 -t 5565 5601 5564 -t 5601 5600 5564 -t 5566 5602 5565 -t 5602 5601 5565 -t 5567 5603 5566 -t 5603 5602 5566 -t 5568 5604 5567 -t 5604 5603 5567 -t 5569 5605 5568 -t 5605 5604 5568 -t 5570 5606 5569 -t 5606 5605 5569 -t 5571 5607 5572 -t 5607 5608 5572 -t 5573 5609 5571 -t 5609 5607 5571 -t 5574 5610 5573 -t 5610 5609 5573 -t 5575 5611 5574 -t 5611 5610 5574 -t 5576 5612 5575 -t 5612 5611 5575 -t 5577 5613 5576 -t 5613 5612 5576 -t 5578 5614 5577 -t 5614 5613 5577 -t 5579 5615 5578 -t 5615 5614 5578 -t 5580 5616 5579 -t 5616 5615 5579 -t 5581 5617 5580 -t 5617 5616 5580 -t 5582 5618 5581 -t 5618 5617 5581 -t 5583 5619 5582 -t 5619 5618 5582 -t 5584 5620 5583 -t 5620 5619 5583 -t 5585 5621 5584 -t 5621 5620 5584 -t 5586 5622 5585 -t 5622 5621 5585 -t 5587 5623 5586 -t 5623 5622 5586 -t 5588 5624 5587 -t 5624 5623 5587 -t 4687 4689 5624 -t 5588 4687 5624 -t 5589 5625 4690 -t 4688 5589 4690 -t 5590 5626 5589 -t 5626 5625 5589 -t 5591 5627 5590 -t 5627 5626 5590 -t 5592 5628 5591 -t 5628 5627 5591 -t 5593 5629 5592 -t 5629 5628 5592 -t 5594 5630 5593 -t 5630 5629 5593 -t 5595 5631 5594 -t 5631 5630 5594 -t 5596 5632 5595 -t 5632 5631 5595 -t 5597 5633 5596 -t 5633 5632 5596 -t 5598 5634 5597 -t 5634 5633 5597 -t 5599 5635 5598 -t 5635 5634 5598 -t 5600 5636 5599 -t 5636 5635 5599 -t 5601 5637 5600 -t 5637 5636 5600 -t 5602 5638 5601 -t 5638 5637 5601 -t 5603 5639 5602 -t 5639 5638 5602 -t 5604 5640 5603 -t 5640 5639 5603 -t 5605 5641 5604 -t 5641 5640 5604 -t 5606 5642 5605 -t 5642 5641 5605 -t 5607 5643 5608 -t 5643 5644 5608 -t 5609 5645 5607 -t 5645 5643 5607 -t 5610 5646 5609 -t 5646 5645 5609 -t 5611 5647 5610 -t 5647 5646 5610 -t 5612 5648 5611 -t 5648 5647 5611 -t 5613 5649 5612 -t 5649 5648 5612 -t 5614 5650 5613 -t 5650 5649 5613 -t 5615 5651 5614 -t 5651 5650 5614 -t 5616 5652 5615 -t 5652 5651 5615 -t 5617 5653 5616 -t 5653 5652 5616 -t 5618 5654 5617 -t 5654 5653 5617 -t 5619 5655 5618 -t 5655 5654 5618 -t 5620 5656 5619 -t 5656 5655 5619 -t 5621 5657 5620 -t 5657 5656 5620 -t 5622 5658 5621 -t 5658 5657 5621 -t 5623 5659 5622 -t 5659 5658 5622 -t 5624 5660 5623 -t 5660 5659 5623 -t 4689 4691 5660 -t 5624 4689 5660 -t 5625 5661 4692 -t 4690 5625 4692 -t 5626 5662 5625 -t 5662 5661 5625 -t 5627 5663 5626 -t 5663 5662 5626 -t 5628 5664 5627 -t 5664 5663 5627 -t 5629 5665 5628 -t 5665 5664 5628 -t 5630 5666 5629 -t 5666 5665 5629 -t 5631 5667 5630 -t 5667 5666 5630 -t 5632 5668 5631 -t 5668 5667 5631 -t 5633 5669 5632 -t 5669 5668 5632 -t 5634 5670 5633 -t 5670 5669 5633 -t 5635 5671 5634 -t 5671 5670 5634 -t 5636 5672 5635 -t 5672 5671 5635 -t 5637 5673 5636 -t 5673 5672 5636 -t 5638 5674 5637 -t 5674 5673 5637 -t 5639 5675 5638 -t 5675 5674 5638 -t 5640 5676 5639 -t 5676 5675 5639 -t 5641 5677 5640 -t 5677 5676 5640 -t 5642 5678 5641 -t 5678 5677 5641 -t 5643 5679 5644 -t 5679 5680 5644 -t 5645 5681 5643 -t 5681 5679 5643 -t 5646 5682 5645 -t 5682 5681 5645 -t 5647 5683 5646 -t 5683 5682 5646 -t 5648 5684 5647 -t 5684 5683 5647 -t 5649 5685 5648 -t 5685 5684 5648 -t 5650 5686 5649 -t 5686 5685 5649 -t 5651 5687 5650 -t 5687 5686 5650 -t 5652 5688 5651 -t 5688 5687 5651 -t 5653 5689 5652 -t 5689 5688 5652 -t 5654 5690 5653 -t 5690 5689 5653 -t 5655 5691 5654 -t 5691 5690 5654 -t 5656 5692 5655 -t 5692 5691 5655 -t 5657 5693 5656 -t 5693 5692 5656 -t 5658 5694 5657 -t 5694 5693 5657 -t 5659 5695 5658 -t 5695 5694 5658 -t 5660 5696 5659 -t 5696 5695 5659 -t 4691 4693 5696 -t 5660 4691 5696 -t 5661 5697 4694 -t 4692 5661 4694 -t 5662 5698 5661 -t 5698 5697 5661 -t 5663 5699 5662 -t 5699 5698 5662 -t 5664 5700 5663 -t 5700 5699 5663 -t 5665 5701 5664 -t 5701 5700 5664 -t 5666 5702 5665 -t 5702 5701 5665 -t 5667 5703 5666 -t 5703 5702 5666 -t 5668 5704 5667 -t 5704 5703 5667 -t 5669 5705 5668 -t 5705 5704 5668 -t 5670 5706 5669 -t 5706 5705 5669 -t 5671 5707 5670 -t 5707 5706 5670 -t 5672 5708 5671 -t 5708 5707 5671 -t 5673 5709 5672 -t 5709 5708 5672 -t 5674 5710 5673 -t 5710 5709 5673 -t 5675 5711 5674 -t 5711 5710 5674 -t 5676 5712 5675 -t 5712 5711 5675 -t 5677 5713 5676 -t 5713 5712 5676 -t 5678 5714 5677 -t 5714 5713 5677 -t 5679 5715 5680 -t 5715 5716 5680 -t 5681 5717 5679 -t 5717 5715 5679 -t 5682 5718 5681 -t 5718 5717 5681 -t 5683 5719 5682 -t 5719 5718 5682 -t 5684 5720 5683 -t 5720 5719 5683 -t 5685 5721 5684 -t 5721 5720 5684 -t 5686 5722 5685 -t 5722 5721 5685 -t 5687 5723 5686 -t 5723 5722 5686 -t 5688 5724 5687 -t 5724 5723 5687 -t 5689 5725 5688 -t 5725 5724 5688 -t 5690 5726 5689 -t 5726 5725 5689 -t 5691 5727 5690 -t 5727 5726 5690 -t 5692 5728 5691 -t 5728 5727 5691 -t 5693 5729 5692 -t 5729 5728 5692 -t 5694 5730 5693 -t 5730 5729 5693 -t 5695 5731 5694 -t 5731 5730 5694 -t 5696 5732 5695 -t 5732 5731 5695 -t 4693 4695 5732 -t 5696 4693 5732 -t 5697 5733 4696 -t 4694 5697 4696 -t 5698 5734 5697 -t 5734 5733 5697 -t 5699 5735 5698 -t 5735 5734 5698 -t 5700 5736 5699 -t 5736 5735 5699 -t 5701 5737 5700 -t 5737 5736 5700 -t 5702 5738 5701 -t 5738 5737 5701 -t 5703 5739 5702 -t 5739 5738 5702 -t 5704 5740 5703 -t 5740 5739 5703 -t 5705 5741 5704 -t 5741 5740 5704 -t 5706 5742 5705 -t 5742 5741 5705 -t 5707 5743 5706 -t 5743 5742 5706 -t 5708 5744 5707 -t 5744 5743 5707 -t 5709 5745 5708 -t 5745 5744 5708 -t 5710 5746 5709 -t 5746 5745 5709 -t 5711 5747 5710 -t 5747 5746 5710 -t 5712 5748 5711 -t 5748 5747 5711 -t 5713 5749 5712 -t 5749 5748 5712 -t 5714 5750 5713 -t 5750 5749 5713 -t 5715 5751 5716 -t 5751 5752 5716 -t 5717 5753 5715 -t 5753 5751 5715 -t 5718 5754 5717 -t 5754 5753 5717 -t 5719 5755 5718 -t 5755 5754 5718 -t 5720 5756 5719 -t 5756 5755 5719 -t 5721 5757 5720 -t 5757 5756 5720 -t 5722 5758 5721 -t 5758 5757 5721 -t 5723 5759 5722 -t 5759 5758 5722 -t 5724 5760 5723 -t 5760 5759 5723 -t 5725 5761 5724 -t 5761 5760 5724 -t 5726 5762 5725 -t 5762 5761 5725 -t 5727 5763 5726 -t 5763 5762 5726 -t 5728 5764 5727 -t 5764 5763 5727 -t 5729 5765 5728 -t 5765 5764 5728 -t 5730 5766 5729 -t 5766 5765 5729 -t 5731 5767 5730 -t 5767 5766 5730 -t 5732 5768 5731 -t 5768 5767 5731 -t 4695 4697 5768 -t 5732 4695 5768 -t 5733 5769 4698 -t 4696 5733 4698 -t 5734 5770 5733 -t 5770 5769 5733 -t 5735 5771 5734 -t 5771 5770 5734 -t 5736 5772 5735 -t 5772 5771 5735 -t 5737 5773 5736 -t 5773 5772 5736 -t 5738 5774 5737 -t 5774 5773 5737 -t 5739 5775 5738 -t 5775 5774 5738 -t 5740 5776 5739 -t 5776 5775 5739 -t 5741 5777 5740 -t 5777 5776 5740 -t 5742 5778 5741 -t 5778 5777 5741 -t 5743 5779 5742 -t 5779 5778 5742 -t 5744 5780 5743 -t 5780 5779 5743 -t 5745 5781 5744 -t 5781 5780 5744 -t 5746 5782 5745 -t 5782 5781 5745 -t 5747 5783 5746 -t 5783 5782 5746 -t 5748 5784 5747 -t 5784 5783 5747 -t 5749 5785 5748 -t 5785 5784 5748 -t 5750 5786 5749 -t 5786 5785 5749 -t 5751 5787 5752 -t 5787 5788 5752 -t 5753 5789 5751 -t 5789 5787 5751 -t 5754 5790 5753 -t 5790 5789 5753 -t 5755 5791 5754 -t 5791 5790 5754 -t 5756 5792 5755 -t 5792 5791 5755 -t 5757 5793 5756 -t 5793 5792 5756 -t 5758 5794 5757 -t 5794 5793 5757 -t 5759 5795 5758 -t 5795 5794 5758 -t 5760 5796 5759 -t 5796 5795 5759 -t 5761 5797 5760 -t 5797 5796 5760 -t 5762 5798 5761 -t 5798 5797 5761 -t 5763 5799 5762 -t 5799 5798 5762 -t 5764 5800 5763 -t 5800 5799 5763 -t 5765 5801 5764 -t 5801 5800 5764 -t 5766 5802 5765 -t 5802 5801 5765 -t 5767 5803 5766 -t 5803 5802 5766 -t 5768 5804 5767 -t 5804 5803 5767 -t 4697 4699 5804 -t 5768 4697 5804 -t 5769 5805 4700 -t 4698 5769 4700 -t 5770 5806 5769 -t 5806 5805 5769 -t 5771 5807 5770 -t 5807 5806 5770 -t 5772 5808 5771 -t 5808 5807 5771 -t 5773 5809 5772 -t 5809 5808 5772 -t 5774 5810 5773 -t 5810 5809 5773 -t 5775 5811 5774 -t 5811 5810 5774 -t 5776 5812 5775 -t 5812 5811 5775 -t 5777 5813 5776 -t 5813 5812 5776 -t 5778 5814 5777 -t 5814 5813 5777 -t 5779 5815 5778 -t 5815 5814 5778 -t 5780 5816 5779 -t 5816 5815 5779 -t 5781 5817 5780 -t 5817 5816 5780 -t 5782 5818 5781 -t 5818 5817 5781 -t 5783 5819 5782 -t 5819 5818 5782 -t 5784 5820 5783 -t 5820 5819 5783 -t 5785 5821 5784 -t 5821 5820 5784 -t 5786 5822 5785 -t 5822 5821 5785 -t 5787 5823 5788 -t 5823 5824 5788 -t 5789 5825 5787 -t 5825 5823 5787 -t 5790 5826 5789 -t 5826 5825 5789 -t 5791 5827 5790 -t 5827 5826 5790 -t 5792 5828 5791 -t 5828 5827 5791 -t 5793 5829 5792 -t 5829 5828 5792 -t 5794 5830 5793 -t 5830 5829 5793 -t 5795 5831 5794 -t 5831 5830 5794 -t 5796 5832 5795 -t 5832 5831 5795 -t 5797 5833 5796 -t 5833 5832 5796 -t 5798 5834 5797 -t 5834 5833 5797 -t 5799 5835 5798 -t 5835 5834 5798 -t 5800 5836 5799 -t 5836 5835 5799 -t 5801 5837 5800 -t 5837 5836 5800 -t 5802 5838 5801 -t 5838 5837 5801 -t 5803 5839 5802 -t 5839 5838 5802 -t 5804 5840 5803 -t 5840 5839 5803 -t 4699 4701 5840 -t 5804 4699 5840 -t 5805 5841 4702 -t 4700 5805 4702 -t 5806 5842 5805 -t 5842 5841 5805 -t 5807 5843 5806 -t 5843 5842 5806 -t 5808 5844 5807 -t 5844 5843 5807 -t 5809 5845 5808 -t 5845 5844 5808 -t 5810 5846 5809 -t 5846 5845 5809 -t 5811 5847 5810 -t 5847 5846 5810 -t 5812 5848 5811 -t 5848 5847 5811 -t 5813 5849 5812 -t 5849 5848 5812 -t 5814 5850 5813 -t 5850 5849 5813 -t 5815 5851 5814 -t 5851 5850 5814 -t 5816 5852 5815 -t 5852 5851 5815 -t 5817 5853 5816 -t 5853 5852 5816 -t 5818 5854 5817 -t 5854 5853 5817 -t 5819 5855 5818 -t 5855 5854 5818 -t 5820 5856 5819 -t 5856 5855 5819 -t 5821 5857 5820 -t 5857 5856 5820 -t 5822 5858 5821 -t 5858 5857 5821 -t 5823 5859 5824 -t 5859 5860 5824 -t 5825 5861 5823 -t 5861 5859 5823 -t 5826 5862 5825 -t 5862 5861 5825 -t 5827 5863 5826 -t 5863 5862 5826 -t 5828 5864 5827 -t 5864 5863 5827 -t 5829 5865 5828 -t 5865 5864 5828 -t 5830 5866 5829 -t 5866 5865 5829 -t 5831 5867 5830 -t 5867 5866 5830 -t 5832 5868 5831 -t 5868 5867 5831 -t 5833 5869 5832 -t 5869 5868 5832 -t 5834 5870 5833 -t 5870 5869 5833 -t 5835 5871 5834 -t 5871 5870 5834 -t 5836 5872 5835 -t 5872 5871 5835 -t 5837 5873 5836 -t 5873 5872 5836 -t 5838 5874 5837 -t 5874 5873 5837 -t 5839 5875 5838 -t 5875 5874 5838 -t 5840 5876 5839 -t 5876 5875 5839 -t 4701 4703 5876 -t 5840 4701 5876 -t 5841 5877 4704 -t 4702 5841 4704 -t 5842 5878 5841 -t 5878 5877 5841 -t 5843 5879 5842 -t 5879 5878 5842 -t 5844 5880 5843 -t 5880 5879 5843 -t 5845 5881 5844 -t 5881 5880 5844 -t 5846 5882 5845 -t 5882 5881 5845 -t 5847 5883 5846 -t 5883 5882 5846 -t 5848 5884 5847 -t 5884 5883 5847 -t 5849 5885 5848 -t 5885 5884 5848 -t 5850 5886 5849 -t 5886 5885 5849 -t 5851 5887 5850 -t 5887 5886 5850 -t 5852 5888 5851 -t 5888 5887 5851 -t 5853 5889 5852 -t 5889 5888 5852 -t 5854 5890 5853 -t 5890 5889 5853 -t 5855 5891 5854 -t 5891 5890 5854 -t 5856 5892 5855 -t 5892 5891 5855 -t 5857 5893 5856 -t 5893 5892 5856 -t 5858 5894 5857 -t 5894 5893 5857 -t 5859 5895 5860 -t 5895 5896 5860 -t 5861 5897 5859 -t 5897 5895 5859 -t 5862 5898 5861 -t 5898 5897 5861 -t 5863 5899 5862 -t 5899 5898 5862 -t 5864 5900 5863 -t 5900 5899 5863 -t 5865 5901 5864 -t 5901 5900 5864 -t 5866 5902 5865 -t 5902 5901 5865 -t 5867 5903 5866 -t 5903 5902 5866 -t 5868 5904 5867 -t 5904 5903 5867 -t 5869 5905 5868 -t 5905 5904 5868 -t 5870 5906 5869 -t 5906 5905 5869 -t 5871 5907 5870 -t 5907 5906 5870 -t 5872 5908 5871 -t 5908 5907 5871 -t 5873 5909 5872 -t 5909 5908 5872 -t 5874 5910 5873 -t 5910 5909 5873 -t 5875 5911 5874 -t 5911 5910 5874 -t 5876 5912 5875 -t 5912 5911 5875 -t 4703 4705 5912 -t 5876 4703 5912 -t 5877 5913 4706 -t 4704 5877 4706 -t 5878 5914 5877 -t 5914 5913 5877 -t 5879 5915 5878 -t 5915 5914 5878 -t 5880 5916 5879 -t 5916 5915 5879 -t 5881 5917 5880 -t 5917 5916 5880 -t 5882 5918 5881 -t 5918 5917 5881 -t 5883 5919 5882 -t 5919 5918 5882 -t 5884 5920 5883 -t 5920 5919 5883 -t 5885 5921 5884 -t 5921 5920 5884 -t 5886 5922 5885 -t 5922 5921 5885 -t 5887 5923 5886 -t 5923 5922 5886 -t 5888 5924 5887 -t 5924 5923 5887 -t 5889 5925 5888 -t 5925 5924 5888 -t 5890 5926 5889 -t 5926 5925 5889 -t 5891 5927 5890 -t 5927 5926 5890 -t 5892 5928 5891 -t 5928 5927 5891 -t 5893 5929 5892 -t 5929 5928 5892 -t 5894 5930 5893 -t 5930 5929 5893 -t 5895 5931 5896 -t 5931 5932 5896 -t 5897 5933 5895 -t 5933 5931 5895 -t 5898 5934 5897 -t 5934 5933 5897 -t 5899 5935 5898 -t 5935 5934 5898 -t 5900 5936 5899 -t 5936 5935 5899 -t 5901 5937 5900 -t 5937 5936 5900 -t 5902 5938 5901 -t 5938 5937 5901 -t 5903 5939 5902 -t 5939 5938 5902 -t 5904 5940 5903 -t 5940 5939 5903 -t 5905 5941 5904 -t 5941 5940 5904 -t 5906 5942 5905 -t 5942 5941 5905 -t 5907 5943 5906 -t 5943 5942 5906 -t 5908 5944 5907 -t 5944 5943 5907 -t 5909 5945 5908 -t 5945 5944 5908 -t 5910 5946 5909 -t 5946 5945 5909 -t 5911 5947 5910 -t 5947 5946 5910 -t 5912 5948 5911 -t 5948 5947 5911 -t 4705 4707 5948 -t 5912 4705 5948 -t 5913 5949 4708 -t 4706 5913 4708 -t 5914 5950 5913 -t 5950 5949 5913 -t 5915 5951 5914 -t 5951 5950 5914 -t 5916 5952 5915 -t 5952 5951 5915 -t 5917 5953 5916 -t 5953 5952 5916 -t 5918 5954 5917 -t 5954 5953 5917 -t 5919 5955 5918 -t 5955 5954 5918 -t 5920 5956 5919 -t 5956 5955 5919 -t 5921 5957 5920 -t 5957 5956 5920 -t 5922 5958 5921 -t 5958 5957 5921 -t 5923 5959 5922 -t 5959 5958 5922 -t 5924 5960 5923 -t 5960 5959 5923 -t 5925 5961 5924 -t 5961 5960 5924 -t 5926 5962 5925 -t 5962 5961 5925 -t 5927 5963 5926 -t 5963 5962 5926 -t 5928 5964 5927 -t 5964 5963 5927 -t 5929 5965 5928 -t 5965 5964 5928 -t 5930 5966 5929 -t 5966 5965 5929 -t 5931 5967 5932 -t 5967 5968 5932 -t 5933 5969 5931 -t 5969 5967 5931 -t 5934 5970 5933 -t 5970 5969 5933 -t 5935 5971 5934 -t 5971 5970 5934 -t 5936 5972 5935 -t 5972 5971 5935 -t 5937 5973 5936 -t 5973 5972 5936 -t 5938 5974 5937 -t 5974 5973 5937 -t 5939 5975 5938 -t 5975 5974 5938 -t 5940 5976 5939 -t 5976 5975 5939 -t 5941 5977 5940 -t 5977 5976 5940 -t 5942 5978 5941 -t 5978 5977 5941 -t 5943 5979 5942 -t 5979 5978 5942 -t 5944 5980 5943 -t 5980 5979 5943 -t 5945 5981 5944 -t 5981 5980 5944 -t 5946 5982 5945 -t 5982 5981 5945 -t 5947 5983 5946 -t 5983 5982 5946 -t 5948 5984 5947 -t 5984 5983 5947 -t 4707 4709 5984 -t 5948 4707 5984 -t 5949 5985 4710 -t 4708 5949 4710 -t 5950 5986 5949 -t 5986 5985 5949 -t 5951 5987 5950 -t 5987 5986 5950 -t 5952 5988 5951 -t 5988 5987 5951 -t 5953 5989 5952 -t 5989 5988 5952 -t 5954 5990 5953 -t 5990 5989 5953 -t 5955 5991 5954 -t 5991 5990 5954 -t 5956 5992 5955 -t 5992 5991 5955 -t 5957 5993 5956 -t 5993 5992 5956 -t 5958 5994 5957 -t 5994 5993 5957 -t 5959 5995 5958 -t 5995 5994 5958 -t 5960 5996 5959 -t 5996 5995 5959 -t 5961 5997 5960 -t 5997 5996 5960 -t 5962 5998 5961 -t 5998 5997 5961 -t 5963 5999 5962 -t 5999 5998 5962 -t 5964 6000 5963 -t 6000 5999 5963 -t 5965 6001 5964 -t 6001 6000 5964 -t 5966 6002 5965 -t 6002 6001 5965 -t 5967 6003 5968 -t 6003 6004 5968 -t 5969 6005 5967 -t 6005 6003 5967 -t 5970 6006 5969 -t 6006 6005 5969 -t 5971 6007 5970 -t 6007 6006 5970 -t 5972 6008 5971 -t 6008 6007 5971 -t 5973 6009 5972 -t 6009 6008 5972 -t 5974 6010 5973 -t 6010 6009 5973 -t 5975 6011 5974 -t 6011 6010 5974 -t 5976 6012 5975 -t 6012 6011 5975 -t 5977 6013 5976 -t 6013 6012 5976 -t 5978 6014 5977 -t 6014 6013 5977 -t 5979 6015 5978 -t 6015 6014 5978 -t 5980 6016 5979 -t 6016 6015 5979 -t 5981 6017 5980 -t 6017 6016 5980 -t 5982 6018 5981 -t 6018 6017 5981 -t 5983 6019 5982 -t 6019 6018 5982 -t 5984 6020 5983 -t 6020 6019 5983 -t 4709 4711 6020 -t 5984 4709 6020 -t 5985 6021 4712 -t 4710 5985 4712 -t 5986 6022 5985 -t 6022 6021 5985 -t 5987 6023 5986 -t 6023 6022 5986 -t 5988 6024 5987 -t 6024 6023 5987 -t 5989 6025 5988 -t 6025 6024 5988 -t 5990 6026 5989 -t 6026 6025 5989 -t 5991 6027 5990 -t 6027 6026 5990 -t 5992 6028 5991 -t 6028 6027 5991 -t 5993 6029 5992 -t 6029 6028 5992 -t 5994 6030 5993 -t 6030 6029 5993 -t 5995 6031 5994 -t 6031 6030 5994 -t 5996 6032 5995 -t 6032 6031 5995 -t 5997 6033 5996 -t 6033 6032 5996 -t 5998 6034 5997 -t 6034 6033 5997 -t 5999 6035 5998 -t 6035 6034 5998 -t 6000 6036 5999 -t 6036 6035 5999 -t 6001 6037 6000 -t 6037 6036 6000 -t 6002 6038 6001 -t 6038 6037 6001 -t 6003 6039 6004 -t 6039 6040 6004 -t 6005 6041 6003 -t 6041 6039 6003 -t 6006 6042 6005 -t 6042 6041 6005 -t 6007 6043 6006 -t 6043 6042 6006 -t 6008 6044 6007 -t 6044 6043 6007 -t 6009 6045 6008 -t 6045 6044 6008 -t 6010 6046 6009 -t 6046 6045 6009 -t 6011 6047 6010 -t 6047 6046 6010 -t 6012 6048 6011 -t 6048 6047 6011 -t 6013 6049 6012 -t 6049 6048 6012 -t 6014 6050 6013 -t 6050 6049 6013 -t 6015 6051 6014 -t 6051 6050 6014 -t 6016 6052 6015 -t 6052 6051 6015 -t 6017 6053 6016 -t 6053 6052 6016 -t 6018 6054 6017 -t 6054 6053 6017 -t 6019 6055 6018 -t 6055 6054 6018 -t 6020 6056 6019 -t 6056 6055 6019 -t 4711 4713 6056 -t 6020 4711 6056 -t 6021 6057 4714 -t 4712 6021 4714 -t 6022 6058 6021 -t 6058 6057 6021 -t 6023 6059 6022 -t 6059 6058 6022 -t 6024 6060 6023 -t 6060 6059 6023 -t 6025 6061 6024 -t 6061 6060 6024 -t 6026 6062 6025 -t 6062 6061 6025 -t 6027 6063 6026 -t 6063 6062 6026 -t 6028 6064 6027 -t 6064 6063 6027 -t 6029 6065 6028 -t 6065 6064 6028 -t 6030 6066 6029 -t 6066 6065 6029 -t 6031 6067 6030 -t 6067 6066 6030 -t 6032 6068 6031 -t 6068 6067 6031 -t 6033 6069 6032 -t 6069 6068 6032 -t 6034 6070 6033 -t 6070 6069 6033 -t 6035 6071 6034 -t 6071 6070 6034 -t 6036 6072 6035 -t 6072 6071 6035 -t 6037 6073 6036 -t 6073 6072 6036 -t 6038 6074 6037 -t 6074 6073 6037 -t 6039 6075 6040 -t 6075 6076 6040 -t 6041 6077 6039 -t 6077 6075 6039 -t 6042 6078 6041 -t 6078 6077 6041 -t 6043 6079 6042 -t 6079 6078 6042 -t 6044 6080 6043 -t 6080 6079 6043 -t 6045 6081 6044 -t 6081 6080 6044 -t 6046 6082 6045 -t 6082 6081 6045 -t 6047 6083 6046 -t 6083 6082 6046 -t 6048 6084 6047 -t 6084 6083 6047 -t 6049 6085 6048 -t 6085 6084 6048 -t 6050 6086 6049 -t 6086 6085 6049 -t 6051 6087 6050 -t 6087 6086 6050 -t 6052 6088 6051 -t 6088 6087 6051 -t 6053 6089 6052 -t 6089 6088 6052 -t 6054 6090 6053 -t 6090 6089 6053 -t 6055 6091 6054 -t 6091 6090 6054 -t 6056 6092 6055 -t 6092 6091 6055 -t 4713 4715 6092 -t 6056 4713 6092 -t 6057 6093 4716 -t 4714 6057 4716 -t 6058 6094 6057 -t 6094 6093 6057 -t 6059 6095 6058 -t 6095 6094 6058 -t 6060 6096 6059 -t 6096 6095 6059 -t 6061 6097 6060 -t 6097 6096 6060 -t 6062 6098 6061 -t 6098 6097 6061 -t 6063 6099 6062 -t 6099 6098 6062 -t 6064 6100 6063 -t 6100 6099 6063 -t 6065 6101 6064 -t 6101 6100 6064 -t 6066 6102 6065 -t 6102 6101 6065 -t 6067 6103 6066 -t 6103 6102 6066 -t 6068 6104 6067 -t 6104 6103 6067 -t 6069 6105 6068 -t 6105 6104 6068 -t 6070 6106 6069 -t 6106 6105 6069 -t 6071 6107 6070 -t 6107 6106 6070 -t 6072 6108 6071 -t 6108 6107 6071 -t 6073 6109 6072 -t 6109 6108 6072 -t 6074 6110 6073 -t 6110 6109 6073 -t 6075 6111 6076 -t 6111 6112 6076 -t 6077 6113 6075 -t 6113 6111 6075 -t 6078 6114 6077 -t 6114 6113 6077 -t 6079 6115 6078 -t 6115 6114 6078 -t 6080 6116 6079 -t 6116 6115 6079 -t 6081 6117 6080 -t 6117 6116 6080 -t 6082 6118 6081 -t 6118 6117 6081 -t 6083 6119 6082 -t 6119 6118 6082 -t 6084 6120 6083 -t 6120 6119 6083 -t 6085 6121 6084 -t 6121 6120 6084 -t 6086 6122 6085 -t 6122 6121 6085 -t 6087 6123 6086 -t 6123 6122 6086 -t 6088 6124 6087 -t 6124 6123 6087 -t 6089 6125 6088 -t 6125 6124 6088 -t 6090 6126 6089 -t 6126 6125 6089 -t 6091 6127 6090 -t 6127 6126 6090 -t 6092 6128 6091 -t 6128 6127 6091 -t 4715 4717 6128 -t 6092 4715 6128 -t 6093 6129 4718 -t 4716 6093 4718 -t 6094 6130 6093 -t 6130 6129 6093 -t 6095 6131 6094 -t 6131 6130 6094 -t 6096 6132 6095 -t 6132 6131 6095 -t 6097 6133 6096 -t 6133 6132 6096 -t 6098 6134 6097 -t 6134 6133 6097 -t 6099 6135 6098 -t 6135 6134 6098 -t 6100 6136 6099 -t 6136 6135 6099 -t 6101 6137 6100 -t 6137 6136 6100 -t 6102 6138 6101 -t 6138 6137 6101 -t 6103 6139 6102 -t 6139 6138 6102 -t 6104 6140 6103 -t 6140 6139 6103 -t 6105 6141 6104 -t 6141 6140 6104 -t 6106 6142 6105 -t 6142 6141 6105 -t 6107 6143 6106 -t 6143 6142 6106 -t 6108 6144 6107 -t 6144 6143 6107 -t 6109 6145 6108 -t 6145 6144 6108 -t 6110 6146 6109 -t 6146 6145 6109 -t 6111 6147 6112 -t 6147 6148 6112 -t 6113 6149 6111 -t 6149 6147 6111 -t 6114 6150 6113 -t 6150 6149 6113 -t 6115 6151 6114 -t 6151 6150 6114 -t 6116 6152 6115 -t 6152 6151 6115 -t 6117 6153 6116 -t 6153 6152 6116 -t 6118 6154 6117 -t 6154 6153 6117 -t 6119 6155 6118 -t 6155 6154 6118 -t 6120 6156 6119 -t 6156 6155 6119 -t 6121 6157 6120 -t 6157 6156 6120 -t 6122 6158 6121 -t 6158 6157 6121 -t 6123 6159 6122 -t 6159 6158 6122 -t 6124 6160 6123 -t 6160 6159 6123 -t 6125 6161 6124 -t 6161 6160 6124 -t 6126 6162 6125 -t 6162 6161 6125 -t 6127 6163 6126 -t 6163 6162 6126 -t 6128 6164 6127 -t 6164 6163 6127 -t 4717 4719 6164 -t 6128 4717 6164 -t 6129 6165 4720 -t 4718 6129 4720 -t 6130 6166 6129 -t 6166 6165 6129 -t 6131 6167 6130 -t 6167 6166 6130 -t 6132 6168 6131 -t 6168 6167 6131 -t 6133 6169 6132 -t 6169 6168 6132 -t 6134 6170 6133 -t 6170 6169 6133 -t 6135 6171 6134 -t 6171 6170 6134 -t 6136 6172 6135 -t 6172 6171 6135 -t 6137 6173 6136 -t 6173 6172 6136 -t 6138 6174 6137 -t 6174 6173 6137 -t 6139 6175 6138 -t 6175 6174 6138 -t 6140 6176 6139 -t 6176 6175 6139 -t 6141 6177 6140 -t 6177 6176 6140 -t 6142 6178 6141 -t 6178 6177 6141 -t 6143 6179 6142 -t 6179 6178 6142 -t 6144 6180 6143 -t 6180 6179 6143 -t 6145 6181 6144 -t 6181 6180 6144 -t 6146 6182 6145 -t 6182 6181 6145 -t 6147 6183 6148 -t 6183 6184 6148 -t 6149 6185 6147 -t 6185 6183 6147 -t 6150 6186 6149 -t 6186 6185 6149 -t 6151 6187 6150 -t 6187 6186 6150 -t 6152 6188 6151 -t 6188 6187 6151 -t 6153 6189 6152 -t 6189 6188 6152 -t 6154 6190 6153 -t 6190 6189 6153 -t 6155 6191 6154 -t 6191 6190 6154 -t 6156 6192 6155 -t 6192 6191 6155 -t 6157 6193 6156 -t 6193 6192 6156 -t 6158 6194 6157 -t 6194 6193 6157 -t 6159 6195 6158 -t 6195 6194 6158 -t 6160 6196 6159 -t 6196 6195 6159 -t 6161 6197 6160 -t 6197 6196 6160 -t 6162 6198 6161 -t 6198 6197 6161 -t 6163 6199 6162 -t 6199 6198 6162 -t 6164 6200 6163 -t 6200 6199 6163 -t 4719 4721 6200 -t 6164 4719 6200 -t 6165 6201 4722 -t 4720 6165 4722 -t 6166 6202 6165 -t 6202 6201 6165 -t 6167 6203 6166 -t 6203 6202 6166 -t 6168 6204 6167 -t 6204 6203 6167 -t 6169 6205 6168 -t 6205 6204 6168 -t 6170 6206 6169 -t 6206 6205 6169 -t 6171 6207 6170 -t 6207 6206 6170 -t 6172 6208 6171 -t 6208 6207 6171 -t 6173 6209 6172 -t 6209 6208 6172 -t 6174 6210 6173 -t 6210 6209 6173 -t 6175 6211 6174 -t 6211 6210 6174 -t 6176 6212 6175 -t 6212 6211 6175 -t 6177 6213 6176 -t 6213 6212 6176 -t 6178 6214 6177 -t 6214 6213 6177 -t 6179 6215 6178 -t 6215 6214 6178 -t 6180 6216 6179 -t 6216 6215 6179 -t 6181 6217 6180 -t 6217 6216 6180 -t 6182 6218 6181 -t 6218 6217 6181 -t 6183 6219 6184 -t 6219 6220 6184 -t 6185 6221 6183 -t 6221 6219 6183 -t 6186 6222 6185 -t 6222 6221 6185 -t 6187 6223 6186 -t 6223 6222 6186 -t 6188 6224 6187 -t 6224 6223 6187 -t 6189 6225 6188 -t 6225 6224 6188 -t 6190 6226 6189 -t 6226 6225 6189 -t 6191 6227 6190 -t 6227 6226 6190 -t 6192 6228 6191 -t 6228 6227 6191 -t 6193 6229 6192 -t 6229 6228 6192 -t 6194 6230 6193 -t 6230 6229 6193 -t 6195 6231 6194 -t 6231 6230 6194 -t 6196 6232 6195 -t 6232 6231 6195 -t 6197 6233 6196 -t 6233 6232 6196 -t 6198 6234 6197 -t 6234 6233 6197 -t 6199 6235 6198 -t 6235 6234 6198 -t 6200 6236 6199 -t 6236 6235 6199 -t 4721 4723 6236 -t 6200 4721 6236 -t 6201 6237 4724 -t 4722 6201 4724 -t 6202 6238 6201 -t 6238 6237 6201 -t 6203 6239 6202 -t 6239 6238 6202 -t 6204 6240 6203 -t 6240 6239 6203 -t 6205 6241 6204 -t 6241 6240 6204 -t 6206 6242 6205 -t 6242 6241 6205 -t 6207 6243 6206 -t 6243 6242 6206 -t 6208 6244 6207 -t 6244 6243 6207 -t 6209 6245 6208 -t 6245 6244 6208 -t 6210 6246 6209 -t 6246 6245 6209 -t 6211 6247 6210 -t 6247 6246 6210 -t 6212 6248 6211 -t 6248 6247 6211 -t 6213 6249 6212 -t 6249 6248 6212 -t 6214 6250 6213 -t 6250 6249 6213 -t 6215 6251 6214 -t 6251 6250 6214 -t 6216 6252 6215 -t 6252 6251 6215 -t 6217 6253 6216 -t 6253 6252 6216 -t 6218 6254 6217 -t 6254 6253 6217 -t 6219 6255 6220 -t 6255 6256 6220 -t 6221 6257 6219 -t 6257 6255 6219 -t 6222 6258 6221 -t 6258 6257 6221 -t 6223 6259 6222 -t 6259 6258 6222 -t 6224 6260 6223 -t 6260 6259 6223 -t 6225 6261 6224 -t 6261 6260 6224 -t 6226 6262 6225 -t 6262 6261 6225 -t 6227 6263 6226 -t 6263 6262 6226 -t 6228 6264 6227 -t 6264 6263 6227 -t 6229 6265 6228 -t 6265 6264 6228 -t 6230 6266 6229 -t 6266 6265 6229 -t 6231 6267 6230 -t 6267 6266 6230 -t 6232 6268 6231 -t 6268 6267 6231 -t 6233 6269 6232 -t 6269 6268 6232 -t 6234 6270 6233 -t 6270 6269 6233 -t 6235 6271 6234 -t 6271 6270 6234 -t 6236 6272 6235 -t 6272 6271 6235 -t 4723 4725 6272 -t 6236 4723 6272 -t 6237 6273 4726 -t 4724 6237 4726 -t 6238 6274 6237 -t 6274 6273 6237 -t 6239 6275 6238 -t 6275 6274 6238 -t 6240 6276 6239 -t 6276 6275 6239 -t 6241 6277 6240 -t 6277 6276 6240 -t 6242 6278 6241 -t 6278 6277 6241 -t 6243 6279 6242 -t 6279 6278 6242 -t 6244 6280 6243 -t 6280 6279 6243 -t 6245 6281 6244 -t 6281 6280 6244 -t 6246 6282 6245 -t 6282 6281 6245 -t 6247 6283 6246 -t 6283 6282 6246 -t 6248 6284 6247 -t 6284 6283 6247 -t 6249 6285 6248 -t 6285 6284 6248 -t 6250 6286 6249 -t 6286 6285 6249 -t 6251 6287 6250 -t 6287 6286 6250 -t 6252 6288 6251 -t 6288 6287 6251 -t 6253 6289 6252 -t 6289 6288 6252 -t 6254 6290 6253 -t 6290 6289 6253 -t 6255 6291 6256 -t 6291 6292 6256 -t 6257 6293 6255 -t 6293 6291 6255 -t 6258 6294 6257 -t 6294 6293 6257 -t 6259 6295 6258 -t 6295 6294 6258 -t 6260 6296 6259 -t 6296 6295 6259 -t 6261 6297 6260 -t 6297 6296 6260 -t 6262 6298 6261 -t 6298 6297 6261 -t 6263 6299 6262 -t 6299 6298 6262 -t 6264 6300 6263 -t 6300 6299 6263 -t 6265 6301 6264 -t 6301 6300 6264 -t 6266 6302 6265 -t 6302 6301 6265 -t 6267 6303 6266 -t 6303 6302 6266 -t 6268 6304 6267 -t 6304 6303 6267 -t 6269 6305 6268 -t 6305 6304 6268 -t 6270 6306 6269 -t 6306 6305 6269 -t 6271 6307 6270 -t 6307 6306 6270 -t 6272 6308 6271 -t 6308 6307 6271 -t 4725 4727 6308 -t 6272 4725 6308 -t 6273 6309 4728 -t 4726 6273 4728 -t 6274 6310 6273 -t 6310 6309 6273 -t 6275 6311 6274 -t 6311 6310 6274 -t 6276 6312 6275 -t 6312 6311 6275 -t 6277 6313 6276 -t 6313 6312 6276 -t 6278 6314 6277 -t 6314 6313 6277 -t 6279 6315 6278 -t 6315 6314 6278 -t 6280 6316 6279 -t 6316 6315 6279 -t 6281 6317 6280 -t 6317 6316 6280 -t 6282 6318 6281 -t 6318 6317 6281 -t 6283 6319 6282 -t 6319 6318 6282 -t 6284 6320 6283 -t 6320 6319 6283 -t 6285 6321 6284 -t 6321 6320 6284 -t 6286 6322 6285 -t 6322 6321 6285 -t 6287 6323 6286 -t 6323 6322 6286 -t 6288 6324 6287 -t 6324 6323 6287 -t 6289 6325 6288 -t 6325 6324 6288 -t 6290 6326 6289 -t 6326 6325 6289 -t 6291 6327 6292 -t 6327 6328 6292 -t 6293 6329 6291 -t 6329 6327 6291 -t 6294 6330 6293 -t 6330 6329 6293 -t 6295 6331 6294 -t 6331 6330 6294 -t 6296 6332 6295 -t 6332 6331 6295 -t 6297 6333 6296 -t 6333 6332 6296 -t 6298 6334 6297 -t 6334 6333 6297 -t 6299 6335 6298 -t 6335 6334 6298 -t 6300 6336 6299 -t 6336 6335 6299 -t 6301 6337 6300 -t 6337 6336 6300 -t 6302 6338 6301 -t 6338 6337 6301 -t 6303 6339 6302 -t 6339 6338 6302 -t 6304 6340 6303 -t 6340 6339 6303 -t 6305 6341 6304 -t 6341 6340 6304 -t 6306 6342 6305 -t 6342 6341 6305 -t 6307 6343 6306 -t 6343 6342 6306 -t 6308 6344 6307 -t 6344 6343 6307 -t 4727 4729 6344 -t 6308 4727 6344 -t 6309 6345 4730 -t 4728 6309 4730 -t 6310 6346 6309 -t 6346 6345 6309 -t 6311 6347 6310 -t 6347 6346 6310 -t 6312 6348 6311 -t 6348 6347 6311 -t 6313 6349 6312 -t 6349 6348 6312 -t 6314 6350 6313 -t 6350 6349 6313 -t 6315 6351 6314 -t 6351 6350 6314 -t 6316 6352 6315 -t 6352 6351 6315 -t 6317 6353 6316 -t 6353 6352 6316 -t 6318 6354 6317 -t 6354 6353 6317 -t 6319 6355 6318 -t 6355 6354 6318 -t 6320 6356 6319 -t 6356 6355 6319 -t 6321 6357 6320 -t 6357 6356 6320 -t 6322 6358 6321 -t 6358 6357 6321 -t 6323 6359 6322 -t 6359 6358 6322 -t 6324 6360 6323 -t 6360 6359 6323 -t 6325 6361 6324 -t 6361 6360 6324 -t 6326 6362 6325 -t 6362 6361 6325 -t 6327 6363 6328 -t 6363 6364 6328 -t 6329 6365 6327 -t 6365 6363 6327 -t 6330 6366 6329 -t 6366 6365 6329 -t 6331 6367 6330 -t 6367 6366 6330 -t 6332 6368 6331 -t 6368 6367 6331 -t 6333 6369 6332 -t 6369 6368 6332 -t 6334 6370 6333 -t 6370 6369 6333 -t 6335 6371 6334 -t 6371 6370 6334 -t 6336 6372 6335 -t 6372 6371 6335 -t 6337 6373 6336 -t 6373 6372 6336 -t 6338 6374 6337 -t 6374 6373 6337 -t 6339 6375 6338 -t 6375 6374 6338 -t 6340 6376 6339 -t 6376 6375 6339 -t 6341 6377 6340 -t 6377 6376 6340 -t 6342 6378 6341 -t 6378 6377 6341 -t 6343 6379 6342 -t 6379 6378 6342 -t 6344 6380 6343 -t 6380 6379 6343 -t 4729 4731 6380 -t 6344 4729 6380 -t 6345 6381 4732 -t 4730 6345 4732 -t 6346 6382 6345 -t 6382 6381 6345 -t 6347 6383 6346 -t 6383 6382 6346 -t 6348 6384 6347 -t 6384 6383 6347 -t 6349 6385 6348 -t 6385 6384 6348 -t 6350 6386 6349 -t 6386 6385 6349 -t 6351 6387 6350 -t 6387 6386 6350 -t 6352 6388 6351 -t 6388 6387 6351 -t 6353 6389 6352 -t 6389 6388 6352 -t 6354 6390 6353 -t 6390 6389 6353 -t 6355 6391 6354 -t 6391 6390 6354 -t 6356 6392 6355 -t 6392 6391 6355 -t 6357 6393 6356 -t 6393 6392 6356 -t 6358 6394 6357 -t 6394 6393 6357 -t 6359 6395 6358 -t 6395 6394 6358 -t 6360 6396 6359 -t 6396 6395 6359 -t 6361 6397 6360 -t 6397 6396 6360 -t 6362 6398 6361 -t 6398 6397 6361 -t 6363 6399 6364 -t 6399 6400 6364 -t 6365 6401 6363 -t 6401 6399 6363 -t 6366 6402 6365 -t 6402 6401 6365 -t 6367 6403 6366 -t 6403 6402 6366 -t 6368 6404 6367 -t 6404 6403 6367 -t 6369 6405 6368 -t 6405 6404 6368 -t 6370 6406 6369 -t 6406 6405 6369 -t 6371 6407 6370 -t 6407 6406 6370 -t 6372 6408 6371 -t 6408 6407 6371 -t 6373 6409 6372 -t 6409 6408 6372 -t 6374 6410 6373 -t 6410 6409 6373 -t 6375 6411 6374 -t 6411 6410 6374 -t 6376 6412 6375 -t 6412 6411 6375 -t 6377 6413 6376 -t 6413 6412 6376 -t 6378 6414 6377 -t 6414 6413 6377 -t 6379 6415 6378 -t 6415 6414 6378 -t 6380 6416 6379 -t 6416 6415 6379 -t 4731 4733 6416 -t 6380 4731 6416 -t 6381 6417 4734 -t 4732 6381 4734 -t 6382 6418 6381 -t 6418 6417 6381 -t 6383 6419 6382 -t 6419 6418 6382 -t 6384 6420 6383 -t 6420 6419 6383 -t 6385 6421 6384 -t 6421 6420 6384 -t 6386 6422 6385 -t 6422 6421 6385 -t 6387 6423 6386 -t 6423 6422 6386 -t 6388 6424 6387 -t 6424 6423 6387 -t 6389 6425 6388 -t 6425 6424 6388 -t 6390 6426 6389 -t 6426 6425 6389 -t 6391 6427 6390 -t 6427 6426 6390 -t 6392 6428 6391 -t 6428 6427 6391 -t 6393 6429 6392 -t 6429 6428 6392 -t 6394 6430 6393 -t 6430 6429 6393 -t 6395 6431 6394 -t 6431 6430 6394 -t 6396 6432 6395 -t 6432 6431 6395 -t 6397 6433 6396 -t 6433 6432 6396 -t 6398 6434 6397 -t 6434 6433 6397 -t 6399 6435 6400 -t 6435 6436 6400 -t 6401 6437 6399 -t 6437 6435 6399 -t 6402 6438 6401 -t 6438 6437 6401 -t 6403 6439 6402 -t 6439 6438 6402 -t 6404 6440 6403 -t 6440 6439 6403 -t 6405 6441 6404 -t 6441 6440 6404 -t 6406 6442 6405 -t 6442 6441 6405 -t 6407 6443 6406 -t 6443 6442 6406 -t 6408 6444 6407 -t 6444 6443 6407 -t 6409 6445 6408 -t 6445 6444 6408 -t 6410 6446 6409 -t 6446 6445 6409 -t 6411 6447 6410 -t 6447 6446 6410 -t 6412 6448 6411 -t 6448 6447 6411 -t 6413 6449 6412 -t 6449 6448 6412 -t 6414 6450 6413 -t 6450 6449 6413 -t 6415 6451 6414 -t 6451 6450 6414 -t 6416 6452 6415 -t 6452 6451 6415 -t 4733 4735 6452 -t 6416 4733 6452 -t 6417 6453 4736 -t 4734 6417 4736 -t 6418 6454 6417 -t 6454 6453 6417 -t 6419 6455 6418 -t 6455 6454 6418 -t 6420 6456 6419 -t 6456 6455 6419 -t 6421 6457 6420 -t 6457 6456 6420 -t 6422 6458 6421 -t 6458 6457 6421 -t 6423 6459 6422 -t 6459 6458 6422 -t 6424 6460 6423 -t 6460 6459 6423 -t 6425 6461 6424 -t 6461 6460 6424 -t 6426 6462 6425 -t 6462 6461 6425 -t 6427 6463 6426 -t 6463 6462 6426 -t 6428 6464 6427 -t 6464 6463 6427 -t 6429 6465 6428 -t 6465 6464 6428 -t 6430 6466 6429 -t 6466 6465 6429 -t 6431 6467 6430 -t 6467 6466 6430 -t 6432 6468 6431 -t 6468 6467 6431 -t 6433 6469 6432 -t 6469 6468 6432 -t 6434 6470 6433 -t 6470 6469 6433 -t 6435 6471 6436 -t 6471 6472 6436 -t 6437 6473 6435 -t 6473 6471 6435 -t 6438 6474 6437 -t 6474 6473 6437 -t 6439 6475 6438 -t 6475 6474 6438 -t 6440 6476 6439 -t 6476 6475 6439 -t 6441 6477 6440 -t 6477 6476 6440 -t 6442 6478 6441 -t 6478 6477 6441 -t 6443 6479 6442 -t 6479 6478 6442 -t 6444 6480 6443 -t 6480 6479 6443 -t 6445 6481 6444 -t 6481 6480 6444 -t 6446 6482 6445 -t 6482 6481 6445 -t 6447 6483 6446 -t 6483 6482 6446 -t 6448 6484 6447 -t 6484 6483 6447 -t 6449 6485 6448 -t 6485 6484 6448 -t 6450 6486 6449 -t 6486 6485 6449 -t 6451 6487 6450 -t 6487 6486 6450 -t 6452 6488 6451 -t 6488 6487 6451 -t 4735 4737 6488 -t 6452 4735 6488 -t 6453 6489 4738 -t 4736 6453 4738 -t 6454 6490 6453 -t 6490 6489 6453 -t 6455 6491 6454 -t 6491 6490 6454 -t 6456 6492 6455 -t 6492 6491 6455 -t 6457 6493 6456 -t 6493 6492 6456 -t 6458 6494 6457 -t 6494 6493 6457 -t 6459 6495 6458 -t 6495 6494 6458 -t 6460 6496 6459 -t 6496 6495 6459 -t 6461 6497 6460 -t 6497 6496 6460 -t 6462 6498 6461 -t 6498 6497 6461 -t 6463 6499 6462 -t 6499 6498 6462 -t 6464 6500 6463 -t 6500 6499 6463 -t 6465 6501 6464 -t 6501 6500 6464 -t 6466 6502 6465 -t 6502 6501 6465 -t 6467 6503 6466 -t 6503 6502 6466 -t 6468 6504 6467 -t 6504 6503 6467 -t 6469 6505 6468 -t 6505 6504 6468 -t 6470 6506 6469 -t 6506 6505 6469 -t 6471 6507 6472 -t 6507 6508 6472 -t 6473 6509 6471 -t 6509 6507 6471 -t 6474 6510 6473 -t 6510 6509 6473 -t 6475 6511 6474 -t 6511 6510 6474 -t 6476 6512 6475 -t 6512 6511 6475 -t 6477 6513 6476 -t 6513 6512 6476 -t 6478 6514 6477 -t 6514 6513 6477 -t 6479 6515 6478 -t 6515 6514 6478 -t 6480 6516 6479 -t 6516 6515 6479 -t 6481 6517 6480 -t 6517 6516 6480 -t 6482 6518 6481 -t 6518 6517 6481 -t 6483 6519 6482 -t 6519 6518 6482 -t 6484 6520 6483 -t 6520 6519 6483 -t 6485 6521 6484 -t 6521 6520 6484 -t 6486 6522 6485 -t 6522 6521 6485 -t 6487 6523 6486 -t 6523 6522 6486 -t 6488 6524 6487 -t 6524 6523 6487 -t 4737 4739 6524 -t 6488 4737 6524 -t 6489 6525 4740 -t 4738 6489 4740 -t 6490 6526 6489 -t 6526 6525 6489 -t 6491 6527 6490 -t 6527 6526 6490 -t 6492 6528 6491 -t 6528 6527 6491 -t 6493 6529 6492 -t 6529 6528 6492 -t 6494 6530 6493 -t 6530 6529 6493 -t 6495 6531 6494 -t 6531 6530 6494 -t 6496 6532 6495 -t 6532 6531 6495 -t 6497 6533 6496 -t 6533 6532 6496 -t 6498 6534 6497 -t 6534 6533 6497 -t 6499 6535 6498 -t 6535 6534 6498 -t 6500 6536 6499 -t 6536 6535 6499 -t 6501 6537 6500 -t 6537 6536 6500 -t 6502 6538 6501 -t 6538 6537 6501 -t 6503 6539 6502 -t 6539 6538 6502 -t 6504 6540 6503 -t 6540 6539 6503 -t 6505 6541 6504 -t 6541 6540 6504 -t 6506 6542 6505 -t 6542 6541 6505 -t 6507 6543 6508 -t 6543 6544 6508 -t 6509 6545 6507 -t 6545 6543 6507 -t 6510 6546 6509 -t 6546 6545 6509 -t 6511 6547 6510 -t 6547 6546 6510 -t 6512 6548 6511 -t 6548 6547 6511 -t 6513 6549 6512 -t 6549 6548 6512 -t 6514 6550 6513 -t 6550 6549 6513 -t 6515 6551 6514 -t 6551 6550 6514 -t 6516 6552 6515 -t 6552 6551 6515 -t 6517 6553 6516 -t 6553 6552 6516 -t 6518 6554 6517 -t 6554 6553 6517 -t 6519 6555 6518 -t 6555 6554 6518 -t 6520 6556 6519 -t 6556 6555 6519 -t 6521 6557 6520 -t 6557 6556 6520 -t 6522 6558 6521 -t 6558 6557 6521 -t 6523 6559 6522 -t 6559 6558 6522 -t 6524 6560 6523 -t 6560 6559 6523 -t 4739 4741 6560 -t 6524 4739 6560 -t 6525 6561 4742 -t 4740 6525 4742 -t 6526 6562 6525 -t 6562 6561 6525 -t 6527 6563 6526 -t 6563 6562 6526 -t 6528 6564 6527 -t 6564 6563 6527 -t 6529 6565 6528 -t 6565 6564 6528 -t 6530 6566 6529 -t 6566 6565 6529 -t 6531 6567 6530 -t 6567 6566 6530 -t 6532 6568 6531 -t 6568 6567 6531 -t 6533 6569 6532 -t 6569 6568 6532 -t 6534 6570 6533 -t 6570 6569 6533 -t 6535 6571 6534 -t 6571 6570 6534 -t 6536 6572 6535 -t 6572 6571 6535 -t 6537 6573 6536 -t 6573 6572 6536 -t 6538 6574 6537 -t 6574 6573 6537 -t 6539 6575 6538 -t 6575 6574 6538 -t 6540 6576 6539 -t 6576 6575 6539 -t 6541 6577 6540 -t 6577 6576 6540 -t 6542 6578 6541 -t 6578 6577 6541 +e 2 3 1 +e 3 0 1 +e 4 5 2 +e 5 3 2 +e 6 7 4 +e 7 5 4 +e 8 9 6 +e 9 7 6 +e 10 11 8 +e 11 9 8 +e 12 13 10 +e 13 11 10 +e 14 15 12 +e 15 13 12 +e 16 17 14 +e 17 15 14 +e 18 19 16 +e 19 17 16 +e 20 21 18 +e 21 19 18 +e 22 23 20 +e 23 21 20 +e 24 25 22 +e 25 23 22 +e 26 27 24 +e 27 25 24 +e 28 29 26 +e 29 27 26 +e 3 31 0 +e 31 30 0 +e 5 32 3 +e 32 31 3 +e 7 33 5 +e 33 32 5 +e 9 34 7 +e 34 33 7 +e 11 35 9 +e 35 34 9 +e 13 36 11 +e 36 35 11 +e 15 37 13 +e 37 36 13 +e 17 38 15 +e 38 37 15 +e 19 39 17 +e 39 38 17 +e 21 40 19 +e 40 39 19 +e 23 41 21 +e 41 40 21 +e 25 42 23 +e 42 41 23 +e 27 43 25 +e 43 42 25 +e 29 44 27 +e 44 43 27 +e 31 46 30 +e 46 45 30 +e 32 47 31 +e 47 46 31 +e 33 48 32 +e 48 47 32 +e 34 49 33 +e 49 48 33 +e 35 50 34 +e 50 49 34 +e 36 51 35 +e 51 50 35 +e 37 52 36 +e 52 51 36 +e 38 53 37 +e 53 52 37 +e 39 54 38 +e 54 53 38 +e 40 55 39 +e 55 54 39 +e 41 56 40 +e 56 55 40 +e 42 57 41 +e 57 56 41 +e 43 58 42 +e 58 57 42 +e 44 59 43 +e 59 58 43 +e 46 61 45 +e 61 60 45 +e 47 62 46 +e 62 61 46 +e 48 63 47 +e 63 62 47 +e 49 64 48 +e 64 63 48 +e 50 65 49 +e 65 64 49 +e 51 66 50 +e 66 65 50 +e 52 67 51 +e 67 66 51 +e 53 68 52 +e 68 67 52 +e 54 69 53 +e 69 68 53 +e 55 70 54 +e 70 69 54 +e 56 71 55 +e 71 70 55 +e 57 72 56 +e 72 71 56 +e 58 73 57 +e 73 72 57 +e 59 74 58 +e 74 73 58 +e 61 76 60 +e 76 75 60 +e 62 77 61 +e 77 76 61 +e 63 78 62 +e 78 77 62 +e 64 79 63 +e 79 78 63 +e 65 80 64 +e 80 79 64 +e 66 81 65 +e 81 80 65 +e 67 82 66 +e 82 81 66 +e 68 83 67 +e 83 82 67 +e 69 84 68 +e 84 83 68 +e 70 85 69 +e 85 84 69 +e 71 86 70 +e 86 85 70 +e 72 87 71 +e 87 86 71 +e 73 88 72 +e 88 87 72 +e 74 89 73 +e 89 88 73 +e 76 91 75 +e 91 90 75 +e 77 92 76 +e 92 91 76 +e 78 93 77 +e 93 92 77 +e 79 94 78 +e 94 93 78 +e 80 95 79 +e 95 94 79 +e 81 96 80 +e 96 95 80 +e 82 97 81 +e 97 96 81 +e 83 98 82 +e 98 97 82 +e 84 99 83 +e 99 98 83 +e 85 100 84 +e 100 99 84 +e 86 101 85 +e 101 100 85 +e 87 102 86 +e 102 101 86 +e 88 103 87 +e 103 102 87 +e 89 104 88 +e 104 103 88 +e 91 106 90 +e 106 105 90 +e 92 107 91 +e 107 106 91 +e 93 108 92 +e 108 107 92 +e 94 109 93 +e 109 108 93 +e 95 110 94 +e 110 109 94 +e 96 111 95 +e 111 110 95 +e 97 112 96 +e 112 111 96 +e 98 113 97 +e 113 112 97 +e 99 114 98 +e 114 113 98 +e 100 115 99 +e 115 114 99 +e 101 116 100 +e 116 115 100 +e 102 117 101 +e 117 116 101 +e 103 118 102 +e 118 117 102 +e 104 119 103 +e 119 118 103 +e 106 121 105 +e 121 120 105 +e 107 122 106 +e 122 121 106 +e 108 123 107 +e 123 122 107 +e 109 124 108 +e 124 123 108 +e 110 125 109 +e 125 124 109 +e 111 126 110 +e 126 125 110 +e 112 127 111 +e 127 126 111 +e 113 128 112 +e 128 127 112 +e 114 129 113 +e 129 128 113 +e 115 130 114 +e 130 129 114 +e 116 131 115 +e 131 130 115 +e 117 132 116 +e 132 131 116 +e 118 133 117 +e 133 132 117 +e 119 134 118 +e 134 133 118 +e 121 136 120 +e 136 135 120 +e 122 137 121 +e 137 136 121 +e 123 138 122 +e 138 137 122 +e 124 139 123 +e 139 138 123 +e 125 140 124 +e 140 139 124 +e 126 141 125 +e 141 140 125 +e 127 142 126 +e 142 141 126 +e 128 143 127 +e 143 142 127 +e 129 144 128 +e 144 143 128 +e 130 145 129 +e 145 144 129 +e 131 146 130 +e 146 145 130 +e 132 147 131 +e 147 146 131 +e 133 148 132 +e 148 147 132 +e 134 149 133 +e 149 148 133 +e 136 151 135 +e 151 150 135 +e 137 152 136 +e 152 151 136 +e 138 153 137 +e 153 152 137 +e 139 154 138 +e 154 153 138 +e 140 155 139 +e 155 154 139 +e 141 156 140 +e 156 155 140 +e 142 157 141 +e 157 156 141 +e 143 158 142 +e 158 157 142 +e 144 159 143 +e 159 158 143 +e 145 160 144 +e 160 159 144 +e 146 161 145 +e 161 160 145 +e 147 162 146 +e 162 161 146 +e 148 163 147 +e 163 162 147 +e 149 164 148 +e 164 163 148 +e 151 166 150 +e 166 165 150 +e 152 167 151 +e 167 166 151 +e 153 168 152 +e 168 167 152 +e 154 169 153 +e 169 168 153 +e 155 170 154 +e 170 169 154 +e 156 171 155 +e 171 170 155 +e 157 172 156 +e 172 171 156 +e 158 173 157 +e 173 172 157 +e 159 174 158 +e 174 173 158 +e 160 175 159 +e 175 174 159 +e 161 176 160 +e 176 175 160 +e 162 177 161 +e 177 176 161 +e 163 178 162 +e 178 177 162 +e 164 179 163 +e 179 178 163 +e 166 181 165 +e 181 180 165 +e 167 182 166 +e 182 181 166 +e 168 183 167 +e 183 182 167 +e 169 184 168 +e 184 183 168 +e 170 185 169 +e 185 184 169 +e 171 186 170 +e 186 185 170 +e 172 187 171 +e 187 186 171 +e 173 188 172 +e 188 187 172 +e 174 189 173 +e 189 188 173 +e 175 190 174 +e 190 189 174 +e 176 191 175 +e 191 190 175 +e 177 192 176 +e 192 191 176 +e 178 193 177 +e 193 192 177 +e 179 194 178 +e 194 193 178 +e 181 196 180 +e 196 195 180 +e 182 197 181 +e 197 196 181 +e 183 198 182 +e 198 197 182 +e 184 199 183 +e 199 198 183 +e 185 200 184 +e 200 199 184 +e 186 201 185 +e 201 200 185 +e 187 202 186 +e 202 201 186 +e 188 203 187 +e 203 202 187 +e 189 204 188 +e 204 203 188 +e 190 205 189 +e 205 204 189 +e 191 206 190 +e 206 205 190 +e 192 207 191 +e 207 206 191 +e 193 208 192 +e 208 207 192 +e 194 209 193 +e 209 208 193 +e 196 211 195 +e 211 210 195 +e 197 212 196 +e 212 211 196 +e 198 213 197 +e 213 212 197 +e 199 214 198 +e 214 213 198 +e 200 215 199 +e 215 214 199 +e 201 216 200 +e 216 215 200 +e 202 217 201 +e 217 216 201 +e 203 218 202 +e 218 217 202 +e 204 219 203 +e 219 218 203 +e 205 220 204 +e 220 219 204 +e 206 221 205 +e 221 220 205 +e 207 222 206 +e 222 221 206 +e 208 223 207 +e 223 222 207 +e 209 224 208 +e 224 223 208 +e 211 226 210 +e 226 225 210 +e 212 227 211 +e 227 226 211 +e 213 228 212 +e 228 227 212 +e 214 229 213 +e 229 228 213 +e 215 230 214 +e 230 229 214 +e 216 231 215 +e 231 230 215 +e 217 232 216 +e 232 231 216 +e 218 233 217 +e 233 232 217 +e 219 234 218 +e 234 233 218 +e 220 235 219 +e 235 234 219 +e 221 236 220 +e 236 235 220 +e 222 237 221 +e 237 236 221 +e 223 238 222 +e 238 237 222 +e 224 239 223 +e 239 238 223 +e 226 241 225 +e 241 240 225 +e 227 242 226 +e 242 241 226 +e 228 243 227 +e 243 242 227 +e 229 244 228 +e 244 243 228 +e 230 245 229 +e 245 244 229 +e 231 246 230 +e 246 245 230 +e 232 247 231 +e 247 246 231 +e 233 248 232 +e 248 247 232 +e 234 249 233 +e 249 248 233 +e 235 250 234 +e 250 249 234 +e 236 251 235 +e 251 250 235 +e 237 252 236 +e 252 251 236 +e 238 253 237 +e 253 252 237 +e 239 254 238 +e 254 253 238 +e 241 256 240 +e 256 255 240 +e 242 257 241 +e 257 256 241 +e 243 258 242 +e 258 257 242 +e 244 259 243 +e 259 258 243 +e 245 260 244 +e 260 259 244 +e 246 261 245 +e 261 260 245 +e 247 262 246 +e 262 261 246 +e 248 263 247 +e 263 262 247 +e 249 264 248 +e 264 263 248 +e 250 265 249 +e 265 264 249 +e 251 266 250 +e 266 265 250 +e 252 267 251 +e 267 266 251 +e 253 268 252 +e 268 267 252 +e 254 269 253 +e 269 268 253 +e 256 271 255 +e 271 270 255 +e 257 272 256 +e 272 271 256 +e 258 273 257 +e 273 272 257 +e 259 274 258 +e 274 273 258 +e 260 275 259 +e 275 274 259 +e 261 276 260 +e 276 275 260 +e 262 277 261 +e 277 276 261 +e 263 278 262 +e 278 277 262 +e 264 279 263 +e 279 278 263 +e 265 280 264 +e 280 279 264 +e 266 281 265 +e 281 280 265 +e 267 282 266 +e 282 281 266 +e 268 283 267 +e 283 282 267 +e 269 284 268 +e 284 283 268 +e 271 286 270 +e 286 285 270 +e 272 287 271 +e 287 286 271 +e 273 288 272 +e 288 287 272 +e 274 289 273 +e 289 288 273 +e 275 290 274 +e 290 289 274 +e 276 291 275 +e 291 290 275 +e 277 292 276 +e 292 291 276 +e 278 293 277 +e 293 292 277 +e 279 294 278 +e 294 293 278 +e 280 295 279 +e 295 294 279 +e 281 296 280 +e 296 295 280 +e 282 297 281 +e 297 296 281 +e 283 298 282 +e 298 297 282 +e 284 299 283 +e 299 298 283 +e 286 301 285 +e 301 300 285 +e 287 302 286 +e 302 301 286 +e 288 303 287 +e 303 302 287 +e 289 304 288 +e 304 303 288 +e 290 305 289 +e 305 304 289 +e 291 306 290 +e 306 305 290 +e 292 307 291 +e 307 306 291 +e 293 308 292 +e 308 307 292 +e 294 309 293 +e 309 308 293 +e 295 310 294 +e 310 309 294 +e 296 311 295 +e 311 310 295 +e 297 312 296 +e 312 311 296 +e 298 313 297 +e 313 312 297 +e 299 314 298 +e 314 313 298 +e 301 316 300 +e 316 315 300 +e 302 317 301 +e 317 316 301 +e 303 318 302 +e 318 317 302 +e 304 319 303 +e 319 318 303 +e 305 320 304 +e 320 319 304 +e 306 321 305 +e 321 320 305 +e 307 322 306 +e 322 321 306 +e 308 323 307 +e 323 322 307 +e 309 324 308 +e 324 323 308 +e 310 325 309 +e 325 324 309 +e 311 326 310 +e 326 325 310 +e 312 327 311 +e 327 326 311 +e 313 328 312 +e 328 327 312 +e 314 329 313 +e 329 328 313 +e 316 331 315 +e 331 330 315 +e 317 332 316 +e 332 331 316 +e 318 333 317 +e 333 332 317 +e 319 334 318 +e 334 333 318 +e 320 335 319 +e 335 334 319 +e 321 336 320 +e 336 335 320 +e 322 337 321 +e 337 336 321 +e 323 338 322 +e 338 337 322 +e 324 339 323 +e 339 338 323 +e 325 340 324 +e 340 339 324 +e 326 341 325 +e 341 340 325 +e 327 342 326 +e 342 341 326 +e 328 343 327 +e 343 342 327 +e 329 344 328 +e 344 343 328 +e 331 346 330 +e 346 345 330 +e 332 347 331 +e 347 346 331 +e 333 348 332 +e 348 347 332 +e 334 349 333 +e 349 348 333 +e 335 350 334 +e 350 349 334 +e 336 351 335 +e 351 350 335 +e 337 352 336 +e 352 351 336 +e 338 353 337 +e 353 352 337 +e 339 354 338 +e 354 353 338 +e 340 355 339 +e 355 354 339 +e 341 356 340 +e 356 355 340 +e 342 357 341 +e 357 356 341 +e 343 358 342 +e 358 357 342 +e 344 359 343 +e 359 358 343 +e 346 361 345 +e 361 360 345 +e 347 362 346 +e 362 361 346 +e 348 363 347 +e 363 362 347 +e 349 364 348 +e 364 363 348 +e 350 365 349 +e 365 364 349 +e 351 366 350 +e 366 365 350 +e 352 367 351 +e 367 366 351 +e 353 368 352 +e 368 367 352 +e 354 369 353 +e 369 368 353 +e 355 370 354 +e 370 369 354 +e 356 371 355 +e 371 370 355 +e 357 372 356 +e 372 371 356 +e 358 373 357 +e 373 372 357 +e 359 374 358 +e 374 373 358 +e 361 376 360 +e 376 375 360 +e 362 377 361 +e 377 376 361 +e 363 378 362 +e 378 377 362 +e 364 379 363 +e 379 378 363 +e 365 380 364 +e 380 379 364 +e 366 381 365 +e 381 380 365 +e 367 382 366 +e 382 381 366 +e 368 383 367 +e 383 382 367 +e 369 384 368 +e 384 383 368 +e 370 385 369 +e 385 384 369 +e 371 386 370 +e 386 385 370 +e 372 387 371 +e 387 386 371 +e 373 388 372 +e 388 387 372 +e 374 389 373 +e 389 388 373 +e 376 391 375 +e 391 390 375 +e 377 392 376 +e 392 391 376 +e 378 393 377 +e 393 392 377 +e 379 394 378 +e 394 393 378 +e 380 395 379 +e 395 394 379 +e 381 396 380 +e 396 395 380 +e 382 397 381 +e 397 396 381 +e 383 398 382 +e 398 397 382 +e 384 399 383 +e 399 398 383 +e 385 400 384 +e 400 399 384 +e 386 401 385 +e 401 400 385 +e 387 402 386 +e 402 401 386 +e 388 403 387 +e 403 402 387 +e 389 404 388 +e 404 403 388 +e 391 406 390 +e 406 405 390 +e 392 407 391 +e 407 406 391 +e 393 408 392 +e 408 407 392 +e 394 409 393 +e 409 408 393 +e 395 410 394 +e 410 409 394 +e 396 411 395 +e 411 410 395 +e 397 412 396 +e 412 411 396 +e 398 413 397 +e 413 412 397 +e 399 414 398 +e 414 413 398 +e 400 415 399 +e 415 414 399 +e 401 416 400 +e 416 415 400 +e 402 417 401 +e 417 416 401 +e 403 418 402 +e 418 417 402 +e 404 419 403 +e 419 418 403 +e 406 421 405 +e 421 420 405 +e 407 422 406 +e 422 421 406 +e 408 423 407 +e 423 422 407 +e 409 424 408 +e 424 423 408 +e 410 425 409 +e 425 424 409 +e 411 426 410 +e 426 425 410 +e 412 427 411 +e 427 426 411 +e 413 428 412 +e 428 427 412 +e 414 429 413 +e 429 428 413 +e 415 430 414 +e 430 429 414 +e 416 431 415 +e 431 430 415 +e 417 432 416 +e 432 431 416 +e 418 433 417 +e 433 432 417 +e 419 434 418 +e 434 433 418 +e 421 436 420 +e 436 435 420 +e 422 437 421 +e 437 436 421 +e 423 438 422 +e 438 437 422 +e 424 439 423 +e 439 438 423 +e 425 440 424 +e 440 439 424 +e 426 441 425 +e 441 440 425 +e 427 442 426 +e 442 441 426 +e 428 443 427 +e 443 442 427 +e 429 444 428 +e 444 443 428 +e 430 445 429 +e 445 444 429 +e 431 446 430 +e 446 445 430 +e 432 447 431 +e 447 446 431 +e 433 448 432 +e 448 447 432 +e 434 449 433 +e 449 448 433 +e 436 451 435 +e 451 450 435 +e 437 452 436 +e 452 451 436 +e 438 453 437 +e 453 452 437 +e 439 454 438 +e 454 453 438 +e 440 455 439 +e 455 454 439 +e 441 456 440 +e 456 455 440 +e 442 457 441 +e 457 456 441 +e 443 458 442 +e 458 457 442 +e 444 459 443 +e 459 458 443 +e 445 460 444 +e 460 459 444 +e 446 461 445 +e 461 460 445 +e 447 462 446 +e 462 461 446 +e 448 463 447 +e 463 462 447 +e 449 464 448 +e 464 463 448 +e 451 466 450 +e 466 465 450 +e 452 467 451 +e 467 466 451 +e 453 468 452 +e 468 467 452 +e 454 469 453 +e 469 468 453 +e 455 470 454 +e 470 469 454 +e 456 471 455 +e 471 470 455 +e 457 472 456 +e 472 471 456 +e 458 473 457 +e 473 472 457 +e 459 474 458 +e 474 473 458 +e 460 475 459 +e 475 474 459 +e 461 476 460 +e 476 475 460 +e 462 477 461 +e 477 476 461 +e 463 478 462 +e 478 477 462 +e 464 479 463 +e 479 478 463 +e 466 481 465 +e 481 480 465 +e 467 482 466 +e 482 481 466 +e 468 483 467 +e 483 482 467 +e 469 484 468 +e 484 483 468 +e 470 485 469 +e 485 484 469 +e 471 486 470 +e 486 485 470 +e 472 487 471 +e 487 486 471 +e 473 488 472 +e 488 487 472 +e 474 489 473 +e 489 488 473 +e 475 490 474 +e 490 489 474 +e 476 491 475 +e 491 490 475 +e 477 492 476 +e 492 491 476 +e 478 493 477 +e 493 492 477 +e 479 494 478 +e 494 493 478 +e 481 496 480 +e 496 495 480 +e 482 497 481 +e 497 496 481 +e 483 498 482 +e 498 497 482 +e 484 499 483 +e 499 498 483 +e 485 500 484 +e 500 499 484 +e 486 501 485 +e 501 500 485 +e 487 502 486 +e 502 501 486 +e 488 503 487 +e 503 502 487 +e 489 504 488 +e 504 503 488 +e 490 505 489 +e 505 504 489 +e 491 506 490 +e 506 505 490 +e 492 507 491 +e 507 506 491 +e 493 508 492 +e 508 507 492 +e 494 509 493 +e 509 508 493 +e 496 511 495 +e 511 510 495 +e 497 512 496 +e 512 511 496 +e 498 513 497 +e 513 512 497 +e 499 514 498 +e 514 513 498 +e 500 515 499 +e 515 514 499 +e 501 516 500 +e 516 515 500 +e 502 517 501 +e 517 516 501 +e 503 518 502 +e 518 517 502 +e 504 519 503 +e 519 518 503 +e 505 520 504 +e 520 519 504 +e 506 521 505 +e 521 520 505 +e 507 522 506 +e 522 521 506 +e 508 523 507 +e 523 522 507 +e 509 524 508 +e 524 523 508 +e 511 526 510 +e 526 525 510 +e 512 527 511 +e 527 526 511 +e 513 528 512 +e 528 527 512 +e 514 529 513 +e 529 528 513 +e 515 530 514 +e 530 529 514 +e 516 531 515 +e 531 530 515 +e 517 532 516 +e 532 531 516 +e 518 533 517 +e 533 532 517 +e 519 534 518 +e 534 533 518 +e 520 535 519 +e 535 534 519 +e 521 536 520 +e 536 535 520 +e 522 537 521 +e 537 536 521 +e 523 538 522 +e 538 537 522 +e 524 539 523 +e 539 538 523 +e 526 541 525 +e 541 540 525 +e 527 542 526 +e 542 541 526 +e 528 543 527 +e 543 542 527 +e 529 544 528 +e 544 543 528 +e 530 545 529 +e 545 544 529 +e 531 546 530 +e 546 545 530 +e 532 547 531 +e 547 546 531 +e 533 548 532 +e 548 547 532 +e 534 549 533 +e 549 548 533 +e 535 550 534 +e 550 549 534 +e 536 551 535 +e 551 550 535 +e 537 552 536 +e 552 551 536 +e 538 553 537 +e 553 552 537 +e 539 554 538 +e 554 553 538 +e 541 556 540 +e 556 555 540 +e 542 557 541 +e 557 556 541 +e 543 558 542 +e 558 557 542 +e 544 559 543 +e 559 558 543 +e 545 560 544 +e 560 559 544 +e 546 561 545 +e 561 560 545 +e 547 562 546 +e 562 561 546 +e 548 563 547 +e 563 562 547 +e 549 564 548 +e 564 563 548 +e 550 565 549 +e 565 564 549 +e 551 566 550 +e 566 565 550 +e 552 567 551 +e 567 566 551 +e 553 568 552 +e 568 567 552 +e 554 569 553 +e 569 568 553 +e 556 571 555 +e 571 570 555 +e 557 572 556 +e 572 571 556 +e 558 573 557 +e 573 572 557 +e 559 574 558 +e 574 573 558 +e 560 575 559 +e 575 574 559 +e 561 576 560 +e 576 575 560 +e 562 577 561 +e 577 576 561 +e 563 578 562 +e 578 577 562 +e 564 579 563 +e 579 578 563 +e 565 580 564 +e 580 579 564 +e 566 581 565 +e 581 580 565 +e 567 582 566 +e 582 581 566 +e 568 583 567 +e 583 582 567 +e 569 584 568 +e 584 583 568 +e 571 586 570 +e 586 585 570 +e 572 587 571 +e 587 586 571 +e 573 588 572 +e 588 587 572 +e 574 589 573 +e 589 588 573 +e 575 590 574 +e 590 589 574 +e 576 591 575 +e 591 590 575 +e 577 592 576 +e 592 591 576 +e 578 593 577 +e 593 592 577 +e 579 594 578 +e 594 593 578 +e 580 595 579 +e 595 594 579 +e 581 596 580 +e 596 595 580 +e 582 597 581 +e 597 596 581 +e 583 598 582 +e 598 597 582 +e 584 599 583 +e 599 598 583 +e 586 601 585 +e 601 600 585 +e 587 602 586 +e 602 601 586 +e 588 603 587 +e 603 602 587 +e 589 604 588 +e 604 603 588 +e 590 605 589 +e 605 604 589 +e 591 606 590 +e 606 605 590 +e 592 607 591 +e 607 606 591 +e 593 608 592 +e 608 607 592 +e 594 609 593 +e 609 608 593 +e 595 610 594 +e 610 609 594 +e 596 611 595 +e 611 610 595 +e 597 612 596 +e 612 611 596 +e 598 613 597 +e 613 612 597 +e 599 614 598 +e 614 613 598 +e 601 616 600 +e 616 615 600 +e 602 617 601 +e 617 616 601 +e 603 618 602 +e 618 617 602 +e 604 619 603 +e 619 618 603 +e 605 620 604 +e 620 619 604 +e 606 621 605 +e 621 620 605 +e 607 622 606 +e 622 621 606 +e 608 623 607 +e 623 622 607 +e 609 624 608 +e 624 623 608 +e 610 625 609 +e 625 624 609 +e 611 626 610 +e 626 625 610 +e 612 627 611 +e 627 626 611 +e 613 628 612 +e 628 627 612 +e 614 629 613 +e 629 628 613 +e 616 631 615 +e 631 630 615 +e 617 632 616 +e 632 631 616 +e 618 633 617 +e 633 632 617 +e 619 634 618 +e 634 633 618 +e 620 635 619 +e 635 634 619 +e 621 636 620 +e 636 635 620 +e 622 637 621 +e 637 636 621 +e 623 638 622 +e 638 637 622 +e 624 639 623 +e 639 638 623 +e 625 640 624 +e 640 639 624 +e 626 641 625 +e 641 640 625 +e 627 642 626 +e 642 641 626 +e 628 643 627 +e 643 642 627 +e 629 644 628 +e 644 643 628 +e 631 646 630 +e 646 645 630 +e 632 647 631 +e 647 646 631 +e 633 648 632 +e 648 647 632 +e 634 649 633 +e 649 648 633 +e 635 650 634 +e 650 649 634 +e 636 651 635 +e 651 650 635 +e 637 652 636 +e 652 651 636 +e 638 653 637 +e 653 652 637 +e 639 654 638 +e 654 653 638 +e 640 655 639 +e 655 654 639 +e 641 656 640 +e 656 655 640 +e 642 657 641 +e 657 656 641 +e 643 658 642 +e 658 657 642 +e 644 659 643 +e 659 658 643 +e 646 661 645 +e 661 660 645 +e 647 662 646 +e 662 661 646 +e 648 663 647 +e 663 662 647 +e 649 664 648 +e 664 663 648 +e 650 665 649 +e 665 664 649 +e 651 666 650 +e 666 665 650 +e 652 667 651 +e 667 666 651 +e 653 668 652 +e 668 667 652 +e 654 669 653 +e 669 668 653 +e 655 670 654 +e 670 669 654 +e 656 671 655 +e 671 670 655 +e 657 672 656 +e 672 671 656 +e 658 673 657 +e 673 672 657 +e 659 674 658 +e 674 673 658 +e 661 676 660 +e 676 675 660 +e 662 677 661 +e 677 676 661 +e 663 678 662 +e 678 677 662 +e 664 679 663 +e 679 678 663 +e 665 680 664 +e 680 679 664 +e 666 681 665 +e 681 680 665 +e 667 682 666 +e 682 681 666 +e 668 683 667 +e 683 682 667 +e 669 684 668 +e 684 683 668 +e 670 685 669 +e 685 684 669 +e 671 686 670 +e 686 685 670 +e 672 687 671 +e 687 686 671 +e 673 688 672 +e 688 687 672 +e 674 689 673 +e 689 688 673 +e 676 691 675 +e 691 690 675 +e 677 692 676 +e 692 691 676 +e 678 693 677 +e 693 692 677 +e 679 694 678 +e 694 693 678 +e 680 695 679 +e 695 694 679 +e 681 696 680 +e 696 695 680 +e 682 697 681 +e 697 696 681 +e 683 698 682 +e 698 697 682 +e 684 699 683 +e 699 698 683 +e 685 700 684 +e 700 699 684 +e 686 701 685 +e 701 700 685 +e 687 702 686 +e 702 701 686 +e 688 703 687 +e 703 702 687 +e 689 704 688 +e 704 703 688 +e 691 706 690 +e 706 705 690 +e 692 707 691 +e 707 706 691 +e 693 708 692 +e 708 707 692 +e 694 709 693 +e 709 708 693 +e 695 710 694 +e 710 709 694 +e 696 711 695 +e 711 710 695 +e 697 712 696 +e 712 711 696 +e 698 713 697 +e 713 712 697 +e 699 714 698 +e 714 713 698 +e 700 715 699 +e 715 714 699 +e 701 716 700 +e 716 715 700 +e 702 717 701 +e 717 716 701 +e 703 718 702 +e 718 717 702 +e 704 719 703 +e 719 718 703 +e 706 721 705 +e 721 720 705 +e 707 722 706 +e 722 721 706 +e 708 723 707 +e 723 722 707 +e 709 724 708 +e 724 723 708 +e 710 725 709 +e 725 724 709 +e 711 726 710 +e 726 725 710 +e 712 727 711 +e 727 726 711 +e 713 728 712 +e 728 727 712 +e 714 729 713 +e 729 728 713 +e 715 730 714 +e 730 729 714 +e 716 731 715 +e 731 730 715 +e 717 732 716 +e 732 731 716 +e 718 733 717 +e 733 732 717 +e 719 734 718 +e 734 733 718 +e 721 736 720 +e 736 735 720 +e 722 737 721 +e 737 736 721 +e 723 738 722 +e 738 737 722 +e 724 739 723 +e 739 738 723 +e 725 740 724 +e 740 739 724 +e 726 741 725 +e 741 740 725 +e 727 742 726 +e 742 741 726 +e 728 743 727 +e 743 742 727 +e 729 744 728 +e 744 743 728 +e 730 745 729 +e 745 744 729 +e 731 746 730 +e 746 745 730 +e 732 747 731 +e 747 746 731 +e 733 748 732 +e 748 747 732 +e 734 749 733 +e 749 748 733 +e 736 751 735 +e 751 750 735 +e 737 752 736 +e 752 751 736 +e 738 753 737 +e 753 752 737 +e 739 754 738 +e 754 753 738 +e 740 755 739 +e 755 754 739 +e 741 756 740 +e 756 755 740 +e 742 757 741 +e 757 756 741 +e 743 758 742 +e 758 757 742 +e 744 759 743 +e 759 758 743 +e 745 760 744 +e 760 759 744 +e 746 761 745 +e 761 760 745 +e 747 762 746 +e 762 761 746 +e 748 763 747 +e 763 762 747 +e 749 764 748 +e 764 763 748 +e 1 0 765 +e 765 0 766 +e 28 767 29 +e 767 768 29 +e 0 30 766 +e 766 30 769 +e 29 768 44 +e 768 770 44 +e 30 45 769 +e 769 45 771 +e 44 770 59 +e 770 772 59 +e 45 60 771 +e 771 60 773 +e 59 772 74 +e 772 774 74 +e 60 75 773 +e 773 75 775 +e 74 774 89 +e 774 776 89 +e 75 90 775 +e 775 90 777 +e 89 776 104 +e 776 778 104 +e 90 105 777 +e 777 105 779 +e 104 778 119 +e 778 780 119 +e 105 120 779 +e 779 120 781 +e 119 780 134 +e 780 782 134 +e 120 135 781 +e 781 135 783 +e 134 782 149 +e 782 784 149 +e 135 150 783 +e 783 150 785 +e 149 784 164 +e 784 786 164 +e 150 165 785 +e 785 165 787 +e 164 786 179 +e 786 788 179 +e 165 180 787 +e 787 180 789 +e 179 788 194 +e 788 790 194 +e 180 195 789 +e 789 195 791 +e 194 790 209 +e 790 792 209 +e 195 210 791 +e 791 210 793 +e 209 792 224 +e 792 794 224 +e 210 225 793 +e 793 225 795 +e 224 794 239 +e 794 796 239 +e 225 240 795 +e 795 240 797 +e 239 796 254 +e 796 798 254 +e 240 255 797 +e 797 255 799 +e 254 798 269 +e 798 800 269 +e 255 270 799 +e 799 270 801 +e 269 800 284 +e 800 802 284 +e 270 285 801 +e 801 285 803 +e 284 802 299 +e 802 804 299 +e 285 300 803 +e 803 300 805 +e 299 804 314 +e 804 806 314 +e 300 315 805 +e 805 315 807 +e 314 806 329 +e 806 808 329 +e 315 330 807 +e 807 330 809 +e 329 808 344 +e 808 810 344 +e 330 345 809 +e 809 345 811 +e 344 810 359 +e 810 812 359 +e 345 360 811 +e 811 360 813 +e 359 812 374 +e 812 814 374 +e 360 375 813 +e 813 375 815 +e 374 814 389 +e 814 816 389 +e 375 390 815 +e 815 390 817 +e 389 816 404 +e 816 818 404 +e 390 405 817 +e 817 405 819 +e 404 818 419 +e 818 820 419 +e 405 420 819 +e 819 420 821 +e 419 820 434 +e 820 822 434 +e 420 435 821 +e 821 435 823 +e 434 822 449 +e 822 824 449 +e 435 450 823 +e 823 450 825 +e 449 824 464 +e 824 826 464 +e 450 465 825 +e 825 465 827 +e 464 826 479 +e 826 828 479 +e 465 480 827 +e 827 480 829 +e 479 828 494 +e 828 830 494 +e 480 495 829 +e 829 495 831 +e 494 830 509 +e 830 832 509 +e 495 510 831 +e 831 510 833 +e 509 832 524 +e 832 834 524 +e 510 525 833 +e 833 525 835 +e 524 834 539 +e 834 836 539 +e 525 540 835 +e 835 540 837 +e 539 836 554 +e 836 838 554 +e 540 555 837 +e 837 555 839 +e 554 838 569 +e 838 840 569 +e 555 570 839 +e 839 570 841 +e 569 840 584 +e 840 842 584 +e 570 585 841 +e 841 585 843 +e 584 842 599 +e 842 844 599 +e 585 600 843 +e 843 600 845 +e 599 844 614 +e 844 846 614 +e 600 615 845 +e 845 615 847 +e 614 846 629 +e 846 848 629 +e 615 630 847 +e 847 630 849 +e 629 848 644 +e 848 850 644 +e 630 645 849 +e 849 645 851 +e 644 850 659 +e 850 852 659 +e 645 660 851 +e 851 660 853 +e 659 852 674 +e 852 854 674 +e 660 675 853 +e 853 675 855 +e 674 854 689 +e 854 856 689 +e 675 690 855 +e 855 690 857 +e 689 856 704 +e 856 858 704 +e 690 705 857 +e 857 705 859 +e 704 858 719 +e 858 860 719 +e 705 720 859 +e 859 720 861 +e 719 860 734 +e 860 862 734 +e 720 735 861 +e 861 735 863 +e 734 862 749 +e 862 864 749 +e 735 750 863 +e 863 750 865 +e 749 864 764 +e 864 866 764 +e 765 766 867 +e 867 766 868 +e 767 869 768 +e 869 870 768 +e 766 769 868 +e 868 769 871 +e 768 870 770 +e 870 872 770 +e 769 771 871 +e 871 771 873 +e 770 872 772 +e 872 874 772 +e 771 773 873 +e 873 773 875 +e 772 874 774 +e 874 876 774 +e 773 775 875 +e 875 775 877 +e 774 876 776 +e 876 878 776 +e 775 777 877 +e 877 777 879 +e 776 878 778 +e 878 880 778 +e 777 779 879 +e 879 779 881 +e 778 880 780 +e 880 882 780 +e 779 781 881 +e 881 781 883 +e 780 882 782 +e 882 884 782 +e 781 783 883 +e 883 783 885 +e 782 884 784 +e 884 886 784 +e 783 785 885 +e 885 785 887 +e 784 886 786 +e 886 888 786 +e 785 787 887 +e 887 787 889 +e 786 888 788 +e 888 890 788 +e 787 789 889 +e 889 789 891 +e 788 890 790 +e 890 892 790 +e 789 791 891 +e 891 791 893 +e 790 892 792 +e 892 894 792 +e 791 793 893 +e 893 793 895 +e 792 894 794 +e 894 896 794 +e 793 795 895 +e 895 795 897 +e 794 896 796 +e 896 898 796 +e 795 797 897 +e 897 797 899 +e 796 898 798 +e 898 900 798 +e 797 799 899 +e 899 799 901 +e 798 900 800 +e 900 902 800 +e 799 801 901 +e 901 801 903 +e 800 902 802 +e 902 904 802 +e 801 803 903 +e 903 803 905 +e 802 904 804 +e 904 906 804 +e 803 805 905 +e 905 805 907 +e 804 906 806 +e 906 908 806 +e 805 807 907 +e 907 807 909 +e 806 908 808 +e 908 910 808 +e 807 809 909 +e 909 809 911 +e 808 910 810 +e 910 912 810 +e 809 811 911 +e 911 811 913 +e 810 912 812 +e 912 914 812 +e 811 813 913 +e 913 813 915 +e 812 914 814 +e 914 916 814 +e 813 815 915 +e 915 815 917 +e 814 916 816 +e 916 918 816 +e 815 817 917 +e 917 817 919 +e 816 918 818 +e 918 920 818 +e 817 819 919 +e 919 819 921 +e 818 920 820 +e 920 922 820 +e 819 821 921 +e 921 821 923 +e 820 922 822 +e 922 924 822 +e 821 823 923 +e 923 823 925 +e 822 924 824 +e 924 926 824 +e 823 825 925 +e 925 825 927 +e 824 926 826 +e 926 928 826 +e 825 827 927 +e 927 827 929 +e 826 928 828 +e 928 930 828 +e 827 829 929 +e 929 829 931 +e 828 930 830 +e 930 932 830 +e 829 831 931 +e 931 831 933 +e 830 932 832 +e 932 934 832 +e 831 833 933 +e 933 833 935 +e 832 934 834 +e 934 936 834 +e 833 835 935 +e 935 835 937 +e 834 936 836 +e 936 938 836 +e 835 837 937 +e 937 837 939 +e 836 938 838 +e 938 940 838 +e 837 839 939 +e 939 839 941 +e 838 940 840 +e 940 942 840 +e 839 841 941 +e 941 841 943 +e 840 942 842 +e 942 944 842 +e 841 843 943 +e 943 843 945 +e 842 944 844 +e 944 946 844 +e 843 845 945 +e 945 845 947 +e 844 946 846 +e 946 948 846 +e 845 847 947 +e 947 847 949 +e 846 948 848 +e 948 950 848 +e 847 849 949 +e 949 849 951 +e 848 950 850 +e 950 952 850 +e 849 851 951 +e 951 851 953 +e 850 952 852 +e 952 954 852 +e 851 853 953 +e 953 853 955 +e 852 954 854 +e 954 956 854 +e 853 855 955 +e 955 855 957 +e 854 956 856 +e 956 958 856 +e 855 857 957 +e 957 857 959 +e 856 958 858 +e 958 960 858 +e 857 859 959 +e 959 859 961 +e 858 960 860 +e 960 962 860 +e 859 861 961 +e 961 861 963 +e 860 962 862 +e 962 964 862 +e 861 863 963 +e 963 863 965 +e 862 964 864 +e 964 966 864 +e 863 865 965 +e 965 865 967 +e 864 966 866 +e 966 968 866 +e 867 868 969 +e 969 868 970 +e 869 971 870 +e 971 972 870 +e 868 871 970 +e 970 871 973 +e 870 972 872 +e 972 974 872 +e 871 873 973 +e 973 873 975 +e 872 974 874 +e 974 976 874 +e 873 875 975 +e 975 875 977 +e 874 976 876 +e 976 978 876 +e 875 877 977 +e 977 877 979 +e 876 978 878 +e 978 980 878 +e 877 879 979 +e 979 879 981 +e 878 980 880 +e 980 982 880 +e 879 881 981 +e 981 881 983 +e 880 982 882 +e 982 984 882 +e 881 883 983 +e 983 883 985 +e 882 984 884 +e 984 986 884 +e 883 885 985 +e 985 885 987 +e 884 986 886 +e 986 988 886 +e 885 887 987 +e 987 887 989 +e 886 988 888 +e 988 990 888 +e 887 889 989 +e 989 889 991 +e 888 990 890 +e 990 992 890 +e 889 891 991 +e 991 891 993 +e 890 992 892 +e 992 994 892 +e 891 893 993 +e 993 893 995 +e 892 994 894 +e 994 996 894 +e 893 895 995 +e 995 895 997 +e 894 996 896 +e 996 998 896 +e 895 897 997 +e 997 897 999 +e 896 998 898 +e 998 1000 898 +e 897 899 999 +e 999 899 1001 +e 898 1000 900 +e 1000 1002 900 +e 899 901 1001 +e 1001 901 1003 +e 900 1002 902 +e 1002 1004 902 +e 901 903 1003 +e 1003 903 1005 +e 902 1004 904 +e 1004 1006 904 +e 903 905 1005 +e 1005 905 1007 +e 904 1006 906 +e 1006 1008 906 +e 905 907 1007 +e 1007 907 1009 +e 906 1008 908 +e 1008 1010 908 +e 907 909 1009 +e 1009 909 1011 +e 908 1010 910 +e 1010 1012 910 +e 909 911 1011 +e 1011 911 1013 +e 910 1012 912 +e 1012 1014 912 +e 911 913 1013 +e 1013 913 1015 +e 912 1014 914 +e 1014 1016 914 +e 913 915 1015 +e 1015 915 1017 +e 914 1016 916 +e 1016 1018 916 +e 915 917 1017 +e 1017 917 1019 +e 916 1018 918 +e 1018 1020 918 +e 917 919 1019 +e 1019 919 1021 +e 918 1020 920 +e 1020 1022 920 +e 919 921 1021 +e 1021 921 1023 +e 920 1022 922 +e 1022 1024 922 +e 921 923 1023 +e 1023 923 1025 +e 922 1024 924 +e 1024 1026 924 +e 923 925 1025 +e 1025 925 1027 +e 924 1026 926 +e 1026 1028 926 +e 925 927 1027 +e 1027 927 1029 +e 926 1028 928 +e 1028 1030 928 +e 927 929 1029 +e 1029 929 1031 +e 928 1030 930 +e 1030 1032 930 +e 929 931 1031 +e 1031 931 1033 +e 930 1032 932 +e 1032 1034 932 +e 931 933 1033 +e 1033 933 1035 +e 932 1034 934 +e 1034 1036 934 +e 933 935 1035 +e 1035 935 1037 +e 934 1036 936 +e 1036 1038 936 +e 935 937 1037 +e 1037 937 1039 +e 936 1038 938 +e 1038 1040 938 +e 937 939 1039 +e 1039 939 1041 +e 938 1040 940 +e 1040 1042 940 +e 939 941 1041 +e 1041 941 1043 +e 940 1042 942 +e 1042 1044 942 +e 941 943 1043 +e 1043 943 1045 +e 942 1044 944 +e 1044 1046 944 +e 943 945 1045 +e 1045 945 1047 +e 944 1046 946 +e 1046 1048 946 +e 945 947 1047 +e 1047 947 1049 +e 946 1048 948 +e 1048 1050 948 +e 947 949 1049 +e 1049 949 1051 +e 948 1050 950 +e 1050 1052 950 +e 949 951 1051 +e 1051 951 1053 +e 950 1052 952 +e 1052 1054 952 +e 951 953 1053 +e 1053 953 1055 +e 952 1054 954 +e 1054 1056 954 +e 953 955 1055 +e 1055 955 1057 +e 954 1056 956 +e 1056 1058 956 +e 955 957 1057 +e 1057 957 1059 +e 956 1058 958 +e 1058 1060 958 +e 957 959 1059 +e 1059 959 1061 +e 958 1060 960 +e 1060 1062 960 +e 959 961 1061 +e 1061 961 1063 +e 960 1062 962 +e 1062 1064 962 +e 961 963 1063 +e 1063 963 1065 +e 962 1064 964 +e 1064 1066 964 +e 963 965 1065 +e 1065 965 1067 +e 964 1066 966 +e 1066 1068 966 +e 965 967 1067 +e 1067 967 1069 +e 966 1068 968 +e 1068 1070 968 +e 969 970 1071 +e 1071 970 1072 +e 971 1073 972 +e 1073 1074 972 +e 970 973 1072 +e 1072 973 1075 +e 972 1074 974 +e 1074 1076 974 +e 973 975 1075 +e 1075 975 1077 +e 974 1076 976 +e 1076 1078 976 +e 975 977 1077 +e 1077 977 1079 +e 976 1078 978 +e 1078 1080 978 +e 977 979 1079 +e 1079 979 1081 +e 978 1080 980 +e 1080 1082 980 +e 979 981 1081 +e 1081 981 1083 +e 980 1082 982 +e 1082 1084 982 +e 981 983 1083 +e 1083 983 1085 +e 982 1084 984 +e 1084 1086 984 +e 983 985 1085 +e 1085 985 1087 +e 984 1086 986 +e 1086 1088 986 +e 985 987 1087 +e 1087 987 1089 +e 986 1088 988 +e 1088 1090 988 +e 987 989 1089 +e 1089 989 1091 +e 988 1090 990 +e 1090 1092 990 +e 989 991 1091 +e 1091 991 1093 +e 990 1092 992 +e 1092 1094 992 +e 991 993 1093 +e 1093 993 1095 +e 992 1094 994 +e 1094 1096 994 +e 993 995 1095 +e 1095 995 1097 +e 994 1096 996 +e 1096 1098 996 +e 995 997 1097 +e 1097 997 1099 +e 996 1098 998 +e 1098 1100 998 +e 997 999 1099 +e 1099 999 1101 +e 998 1100 1000 +e 1100 1102 1000 +e 999 1001 1101 +e 1101 1001 1103 +e 1000 1102 1002 +e 1102 1104 1002 +e 1001 1003 1103 +e 1103 1003 1105 +e 1002 1104 1004 +e 1104 1106 1004 +e 1003 1005 1105 +e 1105 1005 1107 +e 1004 1106 1006 +e 1106 1108 1006 +e 1005 1007 1107 +e 1107 1007 1109 +e 1006 1108 1008 +e 1108 1110 1008 +e 1007 1009 1109 +e 1109 1009 1111 +e 1008 1110 1010 +e 1110 1112 1010 +e 1009 1011 1111 +e 1111 1011 1113 +e 1010 1112 1012 +e 1112 1114 1012 +e 1011 1013 1113 +e 1113 1013 1115 +e 1012 1114 1014 +e 1114 1116 1014 +e 1013 1015 1115 +e 1115 1015 1117 +e 1014 1116 1016 +e 1116 1118 1016 +e 1015 1017 1117 +e 1117 1017 1119 +e 1016 1118 1018 +e 1118 1120 1018 +e 1017 1019 1119 +e 1119 1019 1121 +e 1018 1120 1020 +e 1120 1122 1020 +e 1019 1021 1121 +e 1121 1021 1123 +e 1020 1122 1022 +e 1122 1124 1022 +e 1021 1023 1123 +e 1123 1023 1125 +e 1022 1124 1024 +e 1124 1126 1024 +e 1023 1025 1125 +e 1125 1025 1127 +e 1024 1126 1026 +e 1126 1128 1026 +e 1025 1027 1127 +e 1127 1027 1129 +e 1026 1128 1028 +e 1128 1130 1028 +e 1027 1029 1129 +e 1129 1029 1131 +e 1028 1130 1030 +e 1130 1132 1030 +e 1029 1031 1131 +e 1131 1031 1133 +e 1030 1132 1032 +e 1132 1134 1032 +e 1031 1033 1133 +e 1133 1033 1135 +e 1032 1134 1034 +e 1134 1136 1034 +e 1033 1035 1135 +e 1135 1035 1137 +e 1034 1136 1036 +e 1136 1138 1036 +e 1035 1037 1137 +e 1137 1037 1139 +e 1036 1138 1038 +e 1138 1140 1038 +e 1037 1039 1139 +e 1139 1039 1141 +e 1038 1140 1040 +e 1140 1142 1040 +e 1039 1041 1141 +e 1141 1041 1143 +e 1040 1142 1042 +e 1142 1144 1042 +e 1041 1043 1143 +e 1143 1043 1145 +e 1042 1144 1044 +e 1144 1146 1044 +e 1043 1045 1145 +e 1145 1045 1147 +e 1044 1146 1046 +e 1146 1148 1046 +e 1045 1047 1147 +e 1147 1047 1149 +e 1046 1148 1048 +e 1148 1150 1048 +e 1047 1049 1149 +e 1149 1049 1151 +e 1048 1150 1050 +e 1150 1152 1050 +e 1049 1051 1151 +e 1151 1051 1153 +e 1050 1152 1052 +e 1152 1154 1052 +e 1051 1053 1153 +e 1153 1053 1155 +e 1052 1154 1054 +e 1154 1156 1054 +e 1053 1055 1155 +e 1155 1055 1157 +e 1054 1156 1056 +e 1156 1158 1056 +e 1055 1057 1157 +e 1157 1057 1159 +e 1056 1158 1058 +e 1158 1160 1058 +e 1057 1059 1159 +e 1159 1059 1161 +e 1058 1160 1060 +e 1160 1162 1060 +e 1059 1061 1161 +e 1161 1061 1163 +e 1060 1162 1062 +e 1162 1164 1062 +e 1061 1063 1163 +e 1163 1063 1165 +e 1062 1164 1064 +e 1164 1166 1064 +e 1063 1065 1165 +e 1165 1065 1167 +e 1064 1166 1066 +e 1166 1168 1066 +e 1065 1067 1167 +e 1167 1067 1169 +e 1066 1168 1068 +e 1168 1170 1068 +e 1067 1069 1169 +e 1169 1069 1171 +e 1068 1170 1070 +e 1170 1172 1070 +e 1071 1072 1173 +e 1173 1072 1174 +e 1073 1175 1074 +e 1175 1176 1074 +e 1072 1075 1174 +e 1174 1075 1177 +e 1074 1176 1076 +e 1176 1178 1076 +e 1075 1077 1177 +e 1177 1077 1179 +e 1076 1178 1078 +e 1178 1180 1078 +e 1077 1079 1179 +e 1179 1079 1181 +e 1078 1180 1080 +e 1180 1182 1080 +e 1079 1081 1181 +e 1181 1081 1183 +e 1080 1182 1082 +e 1182 1184 1082 +e 1081 1083 1183 +e 1183 1083 1185 +e 1082 1184 1084 +e 1184 1186 1084 +e 1083 1085 1185 +e 1185 1085 1187 +e 1084 1186 1086 +e 1186 1188 1086 +e 1085 1087 1187 +e 1187 1087 1189 +e 1086 1188 1088 +e 1188 1190 1088 +e 1087 1089 1189 +e 1189 1089 1191 +e 1088 1190 1090 +e 1190 1192 1090 +e 1089 1091 1191 +e 1191 1091 1193 +e 1090 1192 1092 +e 1192 1194 1092 +e 1091 1093 1193 +e 1193 1093 1195 +e 1092 1194 1094 +e 1194 1196 1094 +e 1093 1095 1195 +e 1195 1095 1197 +e 1094 1196 1096 +e 1196 1198 1096 +e 1095 1097 1197 +e 1197 1097 1199 +e 1096 1198 1098 +e 1198 1200 1098 +e 1097 1099 1199 +e 1199 1099 1201 +e 1098 1200 1100 +e 1200 1202 1100 +e 1099 1101 1201 +e 1201 1101 1203 +e 1100 1202 1102 +e 1202 1204 1102 +e 1101 1103 1203 +e 1203 1103 1205 +e 1102 1204 1104 +e 1204 1206 1104 +e 1103 1105 1205 +e 1205 1105 1207 +e 1104 1206 1106 +e 1206 1208 1106 +e 1105 1107 1207 +e 1207 1107 1209 +e 1106 1208 1108 +e 1208 1210 1108 +e 1107 1109 1209 +e 1209 1109 1211 +e 1108 1210 1110 +e 1210 1212 1110 +e 1109 1111 1211 +e 1211 1111 1213 +e 1110 1212 1112 +e 1212 1214 1112 +e 1111 1113 1213 +e 1213 1113 1215 +e 1112 1214 1114 +e 1214 1216 1114 +e 1113 1115 1215 +e 1215 1115 1217 +e 1114 1216 1116 +e 1216 1218 1116 +e 1115 1117 1217 +e 1217 1117 1219 +e 1116 1218 1118 +e 1218 1220 1118 +e 1117 1119 1219 +e 1219 1119 1221 +e 1118 1220 1120 +e 1220 1222 1120 +e 1119 1121 1221 +e 1221 1121 1223 +e 1120 1222 1122 +e 1222 1224 1122 +e 1121 1123 1223 +e 1223 1123 1225 +e 1122 1224 1124 +e 1224 1226 1124 +e 1123 1125 1225 +e 1225 1125 1227 +e 1124 1226 1126 +e 1226 1228 1126 +e 1125 1127 1227 +e 1227 1127 1229 +e 1126 1228 1128 +e 1228 1230 1128 +e 1127 1129 1229 +e 1229 1129 1231 +e 1128 1230 1130 +e 1230 1232 1130 +e 1129 1131 1231 +e 1231 1131 1233 +e 1130 1232 1132 +e 1232 1234 1132 +e 1131 1133 1233 +e 1233 1133 1235 +e 1132 1234 1134 +e 1234 1236 1134 +e 1133 1135 1235 +e 1235 1135 1237 +e 1134 1236 1136 +e 1236 1238 1136 +e 1135 1137 1237 +e 1237 1137 1239 +e 1136 1238 1138 +e 1238 1240 1138 +e 1137 1139 1239 +e 1239 1139 1241 +e 1138 1240 1140 +e 1240 1242 1140 +e 1139 1141 1241 +e 1241 1141 1243 +e 1140 1242 1142 +e 1242 1244 1142 +e 1141 1143 1243 +e 1243 1143 1245 +e 1142 1244 1144 +e 1244 1246 1144 +e 1143 1145 1245 +e 1245 1145 1247 +e 1144 1246 1146 +e 1246 1248 1146 +e 1145 1147 1247 +e 1247 1147 1249 +e 1146 1248 1148 +e 1248 1250 1148 +e 1147 1149 1249 +e 1249 1149 1251 +e 1148 1250 1150 +e 1250 1252 1150 +e 1149 1151 1251 +e 1251 1151 1253 +e 1150 1252 1152 +e 1252 1254 1152 +e 1151 1153 1253 +e 1253 1153 1255 +e 1152 1254 1154 +e 1254 1256 1154 +e 1153 1155 1255 +e 1255 1155 1257 +e 1154 1256 1156 +e 1256 1258 1156 +e 1155 1157 1257 +e 1257 1157 1259 +e 1156 1258 1158 +e 1258 1260 1158 +e 1157 1159 1259 +e 1259 1159 1261 +e 1158 1260 1160 +e 1260 1262 1160 +e 1159 1161 1261 +e 1261 1161 1263 +e 1160 1262 1162 +e 1262 1264 1162 +e 1161 1163 1263 +e 1263 1163 1265 +e 1162 1264 1164 +e 1264 1266 1164 +e 1163 1165 1265 +e 1265 1165 1267 +e 1164 1266 1166 +e 1266 1268 1166 +e 1165 1167 1267 +e 1267 1167 1269 +e 1166 1268 1168 +e 1268 1270 1168 +e 1167 1169 1269 +e 1269 1169 1271 +e 1168 1270 1170 +e 1270 1272 1170 +e 1169 1171 1271 +e 1271 1171 1273 +e 1170 1272 1172 +e 1272 1274 1172 +e 1173 1174 1275 +e 1275 1174 1276 +e 1175 1277 1176 +e 1277 1278 1176 +e 1174 1177 1276 +e 1276 1177 1279 +e 1176 1278 1178 +e 1278 1280 1178 +e 1177 1179 1279 +e 1279 1179 1281 +e 1178 1280 1180 +e 1280 1282 1180 +e 1179 1181 1281 +e 1281 1181 1283 +e 1180 1282 1182 +e 1282 1284 1182 +e 1181 1183 1283 +e 1283 1183 1285 +e 1182 1284 1184 +e 1284 1286 1184 +e 1183 1185 1285 +e 1285 1185 1287 +e 1184 1286 1186 +e 1286 1288 1186 +e 1185 1187 1287 +e 1287 1187 1289 +e 1186 1288 1188 +e 1288 1290 1188 +e 1187 1189 1289 +e 1289 1189 1291 +e 1188 1290 1190 +e 1290 1292 1190 +e 1189 1191 1291 +e 1291 1191 1293 +e 1190 1292 1192 +e 1292 1294 1192 +e 1191 1193 1293 +e 1293 1193 1295 +e 1192 1294 1194 +e 1294 1296 1194 +e 1193 1195 1295 +e 1295 1195 1297 +e 1194 1296 1196 +e 1296 1298 1196 +e 1195 1197 1297 +e 1297 1197 1299 +e 1196 1298 1198 +e 1298 1300 1198 +e 1197 1199 1299 +e 1299 1199 1301 +e 1198 1300 1200 +e 1300 1302 1200 +e 1199 1201 1301 +e 1301 1201 1303 +e 1200 1302 1202 +e 1302 1304 1202 +e 1201 1203 1303 +e 1303 1203 1305 +e 1202 1304 1204 +e 1304 1306 1204 +e 1203 1205 1305 +e 1305 1205 1307 +e 1204 1306 1206 +e 1306 1308 1206 +e 1205 1207 1307 +e 1307 1207 1309 +e 1206 1308 1208 +e 1308 1310 1208 +e 1207 1209 1309 +e 1309 1209 1311 +e 1208 1310 1210 +e 1310 1312 1210 +e 1209 1211 1311 +e 1311 1211 1313 +e 1210 1312 1212 +e 1312 1314 1212 +e 1211 1213 1313 +e 1313 1213 1315 +e 1212 1314 1214 +e 1314 1316 1214 +e 1213 1215 1315 +e 1315 1215 1317 +e 1214 1316 1216 +e 1316 1318 1216 +e 1215 1217 1317 +e 1317 1217 1319 +e 1216 1318 1218 +e 1318 1320 1218 +e 1217 1219 1319 +e 1319 1219 1321 +e 1218 1320 1220 +e 1320 1322 1220 +e 1219 1221 1321 +e 1321 1221 1323 +e 1220 1322 1222 +e 1322 1324 1222 +e 1221 1223 1323 +e 1323 1223 1325 +e 1222 1324 1224 +e 1324 1326 1224 +e 1223 1225 1325 +e 1325 1225 1327 +e 1224 1326 1226 +e 1326 1328 1226 +e 1225 1227 1327 +e 1327 1227 1329 +e 1226 1328 1228 +e 1328 1330 1228 +e 1227 1229 1329 +e 1329 1229 1331 +e 1228 1330 1230 +e 1330 1332 1230 +e 1229 1231 1331 +e 1331 1231 1333 +e 1230 1332 1232 +e 1332 1334 1232 +e 1231 1233 1333 +e 1333 1233 1335 +e 1232 1334 1234 +e 1334 1336 1234 +e 1233 1235 1335 +e 1335 1235 1337 +e 1234 1336 1236 +e 1336 1338 1236 +e 1235 1237 1337 +e 1337 1237 1339 +e 1236 1338 1238 +e 1338 1340 1238 +e 1237 1239 1339 +e 1339 1239 1341 +e 1238 1340 1240 +e 1340 1342 1240 +e 1239 1241 1341 +e 1341 1241 1343 +e 1240 1342 1242 +e 1342 1344 1242 +e 1241 1243 1343 +e 1343 1243 1345 +e 1242 1344 1244 +e 1344 1346 1244 +e 1243 1245 1345 +e 1345 1245 1347 +e 1244 1346 1246 +e 1346 1348 1246 +e 1245 1247 1347 +e 1347 1247 1349 +e 1246 1348 1248 +e 1348 1350 1248 +e 1247 1249 1349 +e 1349 1249 1351 +e 1248 1350 1250 +e 1350 1352 1250 +e 1249 1251 1351 +e 1351 1251 1353 +e 1250 1352 1252 +e 1352 1354 1252 +e 1251 1253 1353 +e 1353 1253 1355 +e 1252 1354 1254 +e 1354 1356 1254 +e 1253 1255 1355 +e 1355 1255 1357 +e 1254 1356 1256 +e 1356 1358 1256 +e 1255 1257 1357 +e 1357 1257 1359 +e 1256 1358 1258 +e 1358 1360 1258 +e 1257 1259 1359 +e 1359 1259 1361 +e 1258 1360 1260 +e 1360 1362 1260 +e 1259 1261 1361 +e 1361 1261 1363 +e 1260 1362 1262 +e 1362 1364 1262 +e 1261 1263 1363 +e 1363 1263 1365 +e 1262 1364 1264 +e 1364 1366 1264 +e 1263 1265 1365 +e 1365 1265 1367 +e 1264 1366 1266 +e 1366 1368 1266 +e 1265 1267 1367 +e 1367 1267 1369 +e 1266 1368 1268 +e 1368 1370 1268 +e 1267 1269 1369 +e 1369 1269 1371 +e 1268 1370 1270 +e 1370 1372 1270 +e 1269 1271 1371 +e 1371 1271 1373 +e 1270 1372 1272 +e 1372 1374 1272 +e 1271 1273 1373 +e 1373 1273 1375 +e 1272 1374 1274 +e 1374 1376 1274 +e 1275 1276 1377 +e 1377 1276 1378 +e 1277 1379 1278 +e 1379 1380 1278 +e 1276 1279 1378 +e 1378 1279 1381 +e 1278 1380 1280 +e 1380 1382 1280 +e 1279 1281 1381 +e 1381 1281 1383 +e 1280 1382 1282 +e 1382 1384 1282 +e 1281 1283 1383 +e 1383 1283 1385 +e 1282 1384 1284 +e 1384 1386 1284 +e 1283 1285 1385 +e 1385 1285 1387 +e 1284 1386 1286 +e 1386 1388 1286 +e 1285 1287 1387 +e 1387 1287 1389 +e 1286 1388 1288 +e 1388 1390 1288 +e 1287 1289 1389 +e 1389 1289 1391 +e 1288 1390 1290 +e 1390 1392 1290 +e 1289 1291 1391 +e 1391 1291 1393 +e 1290 1392 1292 +e 1392 1394 1292 +e 1291 1293 1393 +e 1393 1293 1395 +e 1292 1394 1294 +e 1394 1396 1294 +e 1293 1295 1395 +e 1395 1295 1397 +e 1294 1396 1296 +e 1396 1398 1296 +e 1295 1297 1397 +e 1397 1297 1399 +e 1296 1398 1298 +e 1398 1400 1298 +e 1297 1299 1399 +e 1399 1299 1401 +e 1298 1400 1300 +e 1400 1402 1300 +e 1299 1301 1401 +e 1401 1301 1403 +e 1300 1402 1302 +e 1402 1404 1302 +e 1301 1303 1403 +e 1403 1303 1405 +e 1302 1404 1304 +e 1404 1406 1304 +e 1303 1305 1405 +e 1405 1305 1407 +e 1304 1406 1306 +e 1406 1408 1306 +e 1305 1307 1407 +e 1407 1307 1409 +e 1306 1408 1308 +e 1408 1410 1308 +e 1307 1309 1409 +e 1409 1309 1411 +e 1308 1410 1310 +e 1410 1412 1310 +e 1309 1311 1411 +e 1411 1311 1413 +e 1310 1412 1312 +e 1412 1414 1312 +e 1311 1313 1413 +e 1413 1313 1415 +e 1312 1414 1314 +e 1414 1416 1314 +e 1313 1315 1415 +e 1415 1315 1417 +e 1314 1416 1316 +e 1416 1418 1316 +e 1315 1317 1417 +e 1417 1317 1419 +e 1316 1418 1318 +e 1418 1420 1318 +e 1317 1319 1419 +e 1419 1319 1421 +e 1318 1420 1320 +e 1420 1422 1320 +e 1319 1321 1421 +e 1421 1321 1423 +e 1320 1422 1322 +e 1422 1424 1322 +e 1321 1323 1423 +e 1423 1323 1425 +e 1322 1424 1324 +e 1424 1426 1324 +e 1323 1325 1425 +e 1425 1325 1427 +e 1324 1426 1326 +e 1426 1428 1326 +e 1325 1327 1427 +e 1427 1327 1429 +e 1326 1428 1328 +e 1428 1430 1328 +e 1327 1329 1429 +e 1429 1329 1431 +e 1328 1430 1330 +e 1430 1432 1330 +e 1329 1331 1431 +e 1431 1331 1433 +e 1330 1432 1332 +e 1432 1434 1332 +e 1331 1333 1433 +e 1433 1333 1435 +e 1332 1434 1334 +e 1434 1436 1334 +e 1333 1335 1435 +e 1435 1335 1437 +e 1334 1436 1336 +e 1436 1438 1336 +e 1335 1337 1437 +e 1437 1337 1439 +e 1336 1438 1338 +e 1438 1440 1338 +e 1337 1339 1439 +e 1439 1339 1441 +e 1338 1440 1340 +e 1440 1442 1340 +e 1339 1341 1441 +e 1441 1341 1443 +e 1340 1442 1342 +e 1442 1444 1342 +e 1341 1343 1443 +e 1443 1343 1445 +e 1342 1444 1344 +e 1444 1446 1344 +e 1343 1345 1445 +e 1445 1345 1447 +e 1344 1446 1346 +e 1446 1448 1346 +e 1345 1347 1447 +e 1447 1347 1449 +e 1346 1448 1348 +e 1448 1450 1348 +e 1347 1349 1449 +e 1449 1349 1451 +e 1348 1450 1350 +e 1450 1452 1350 +e 1349 1351 1451 +e 1451 1351 1453 +e 1350 1452 1352 +e 1452 1454 1352 +e 1351 1353 1453 +e 1453 1353 1455 +e 1352 1454 1354 +e 1454 1456 1354 +e 1353 1355 1455 +e 1455 1355 1457 +e 1354 1456 1356 +e 1456 1458 1356 +e 1355 1357 1457 +e 1457 1357 1459 +e 1356 1458 1358 +e 1458 1460 1358 +e 1357 1359 1459 +e 1459 1359 1461 +e 1358 1460 1360 +e 1460 1462 1360 +e 1359 1361 1461 +e 1461 1361 1463 +e 1360 1462 1362 +e 1462 1464 1362 +e 1361 1363 1463 +e 1463 1363 1465 +e 1362 1464 1364 +e 1464 1466 1364 +e 1363 1365 1465 +e 1465 1365 1467 +e 1364 1466 1366 +e 1466 1468 1366 +e 1365 1367 1467 +e 1467 1367 1469 +e 1366 1468 1368 +e 1468 1470 1368 +e 1367 1369 1469 +e 1469 1369 1471 +e 1368 1470 1370 +e 1470 1472 1370 +e 1369 1371 1471 +e 1471 1371 1473 +e 1370 1472 1372 +e 1472 1474 1372 +e 1371 1373 1473 +e 1473 1373 1475 +e 1372 1474 1374 +e 1474 1476 1374 +e 1373 1375 1475 +e 1475 1375 1477 +e 1374 1476 1376 +e 1476 1478 1376 +e 1377 1378 1479 +e 1479 1378 1480 +e 1379 1481 1380 +e 1481 1482 1380 +e 1378 1381 1480 +e 1480 1381 1483 +e 1380 1482 1382 +e 1482 1484 1382 +e 1381 1383 1483 +e 1483 1383 1485 +e 1382 1484 1384 +e 1484 1486 1384 +e 1383 1385 1485 +e 1485 1385 1487 +e 1384 1486 1386 +e 1486 1488 1386 +e 1385 1387 1487 +e 1487 1387 1489 +e 1386 1488 1388 +e 1488 1490 1388 +e 1387 1389 1489 +e 1489 1389 1491 +e 1388 1490 1390 +e 1490 1492 1390 +e 1389 1391 1491 +e 1491 1391 1493 +e 1390 1492 1392 +e 1492 1494 1392 +e 1391 1393 1493 +e 1493 1393 1495 +e 1392 1494 1394 +e 1494 1496 1394 +e 1393 1395 1495 +e 1495 1395 1497 +e 1394 1496 1396 +e 1496 1498 1396 +e 1395 1397 1497 +e 1497 1397 1499 +e 1396 1498 1398 +e 1498 1500 1398 +e 1397 1399 1499 +e 1499 1399 1501 +e 1398 1500 1400 +e 1500 1502 1400 +e 1399 1401 1501 +e 1501 1401 1503 +e 1400 1502 1402 +e 1502 1504 1402 +e 1401 1403 1503 +e 1503 1403 1505 +e 1402 1504 1404 +e 1504 1506 1404 +e 1403 1405 1505 +e 1505 1405 1507 +e 1404 1506 1406 +e 1506 1508 1406 +e 1405 1407 1507 +e 1507 1407 1509 +e 1406 1508 1408 +e 1508 1510 1408 +e 1407 1409 1509 +e 1509 1409 1511 +e 1408 1510 1410 +e 1510 1512 1410 +e 1409 1411 1511 +e 1511 1411 1513 +e 1410 1512 1412 +e 1512 1514 1412 +e 1411 1413 1513 +e 1513 1413 1515 +e 1412 1514 1414 +e 1514 1516 1414 +e 1413 1415 1515 +e 1515 1415 1517 +e 1414 1516 1416 +e 1516 1518 1416 +e 1415 1417 1517 +e 1517 1417 1519 +e 1416 1518 1418 +e 1518 1520 1418 +e 1417 1419 1519 +e 1519 1419 1521 +e 1418 1520 1420 +e 1520 1522 1420 +e 1419 1421 1521 +e 1521 1421 1523 +e 1420 1522 1422 +e 1522 1524 1422 +e 1421 1423 1523 +e 1523 1423 1525 +e 1422 1524 1424 +e 1524 1526 1424 +e 1423 1425 1525 +e 1525 1425 1527 +e 1424 1526 1426 +e 1526 1528 1426 +e 1425 1427 1527 +e 1527 1427 1529 +e 1426 1528 1428 +e 1528 1530 1428 +e 1427 1429 1529 +e 1529 1429 1531 +e 1428 1530 1430 +e 1530 1532 1430 +e 1429 1431 1531 +e 1531 1431 1533 +e 1430 1532 1432 +e 1532 1534 1432 +e 1431 1433 1533 +e 1533 1433 1535 +e 1432 1534 1434 +e 1534 1536 1434 +e 1433 1435 1535 +e 1535 1435 1537 +e 1434 1536 1436 +e 1536 1538 1436 +e 1435 1437 1537 +e 1537 1437 1539 +e 1436 1538 1438 +e 1538 1540 1438 +e 1437 1439 1539 +e 1539 1439 1541 +e 1438 1540 1440 +e 1540 1542 1440 +e 1439 1441 1541 +e 1541 1441 1543 +e 1440 1542 1442 +e 1542 1544 1442 +e 1441 1443 1543 +e 1543 1443 1545 +e 1442 1544 1444 +e 1544 1546 1444 +e 1443 1445 1545 +e 1545 1445 1547 +e 1444 1546 1446 +e 1546 1548 1446 +e 1445 1447 1547 +e 1547 1447 1549 +e 1446 1548 1448 +e 1548 1550 1448 +e 1447 1449 1549 +e 1549 1449 1551 +e 1448 1550 1450 +e 1550 1552 1450 +e 1449 1451 1551 +e 1551 1451 1553 +e 1450 1552 1452 +e 1552 1554 1452 +e 1451 1453 1553 +e 1553 1453 1555 +e 1452 1554 1454 +e 1554 1556 1454 +e 1453 1455 1555 +e 1555 1455 1557 +e 1454 1556 1456 +e 1556 1558 1456 +e 1455 1457 1557 +e 1557 1457 1559 +e 1456 1558 1458 +e 1558 1560 1458 +e 1457 1459 1559 +e 1559 1459 1561 +e 1458 1560 1460 +e 1560 1562 1460 +e 1459 1461 1561 +e 1561 1461 1563 +e 1460 1562 1462 +e 1562 1564 1462 +e 1461 1463 1563 +e 1563 1463 1565 +e 1462 1564 1464 +e 1564 1566 1464 +e 1463 1465 1565 +e 1565 1465 1567 +e 1464 1566 1466 +e 1566 1568 1466 +e 1465 1467 1567 +e 1567 1467 1569 +e 1466 1568 1468 +e 1568 1570 1468 +e 1467 1469 1569 +e 1569 1469 1571 +e 1468 1570 1470 +e 1570 1572 1470 +e 1469 1471 1571 +e 1571 1471 1573 +e 1470 1572 1472 +e 1572 1574 1472 +e 1471 1473 1573 +e 1573 1473 1575 +e 1472 1574 1474 +e 1574 1576 1474 +e 1473 1475 1575 +e 1575 1475 1577 +e 1474 1576 1476 +e 1576 1578 1476 +e 1475 1477 1577 +e 1577 1477 1579 +e 1476 1578 1478 +e 1578 1580 1478 +e 1479 1480 1581 +e 1581 1480 1582 +e 1481 1583 1482 +e 1583 1584 1482 +e 1480 1483 1582 +e 1582 1483 1585 +e 1482 1584 1484 +e 1584 1586 1484 +e 1483 1485 1585 +e 1585 1485 1587 +e 1484 1586 1486 +e 1586 1588 1486 +e 1485 1487 1587 +e 1587 1487 1589 +e 1486 1588 1488 +e 1588 1590 1488 +e 1487 1489 1589 +e 1589 1489 1591 +e 1488 1590 1490 +e 1590 1592 1490 +e 1489 1491 1591 +e 1591 1491 1593 +e 1490 1592 1492 +e 1592 1594 1492 +e 1491 1493 1593 +e 1593 1493 1595 +e 1492 1594 1494 +e 1594 1596 1494 +e 1493 1495 1595 +e 1595 1495 1597 +e 1494 1596 1496 +e 1596 1598 1496 +e 1495 1497 1597 +e 1597 1497 1599 +e 1496 1598 1498 +e 1598 1600 1498 +e 1497 1499 1599 +e 1599 1499 1601 +e 1498 1600 1500 +e 1600 1602 1500 +e 1499 1501 1601 +e 1601 1501 1603 +e 1500 1602 1502 +e 1602 1604 1502 +e 1501 1503 1603 +e 1603 1503 1605 +e 1502 1604 1504 +e 1604 1606 1504 +e 1503 1505 1605 +e 1605 1505 1607 +e 1504 1606 1506 +e 1606 1608 1506 +e 1505 1507 1607 +e 1607 1507 1609 +e 1506 1608 1508 +e 1608 1610 1508 +e 1507 1509 1609 +e 1609 1509 1611 +e 1508 1610 1510 +e 1610 1612 1510 +e 1509 1511 1611 +e 1611 1511 1613 +e 1510 1612 1512 +e 1612 1614 1512 +e 1511 1513 1613 +e 1613 1513 1615 +e 1512 1614 1514 +e 1614 1616 1514 +e 1513 1515 1615 +e 1615 1515 1617 +e 1514 1616 1516 +e 1616 1618 1516 +e 1515 1517 1617 +e 1617 1517 1619 +e 1516 1618 1518 +e 1618 1620 1518 +e 1517 1519 1619 +e 1619 1519 1621 +e 1518 1620 1520 +e 1620 1622 1520 +e 1519 1521 1621 +e 1621 1521 1623 +e 1520 1622 1522 +e 1622 1624 1522 +e 1521 1523 1623 +e 1623 1523 1625 +e 1522 1624 1524 +e 1624 1626 1524 +e 1523 1525 1625 +e 1625 1525 1627 +e 1524 1626 1526 +e 1626 1628 1526 +e 1525 1527 1627 +e 1627 1527 1629 +e 1526 1628 1528 +e 1628 1630 1528 +e 1527 1529 1629 +e 1629 1529 1631 +e 1528 1630 1530 +e 1630 1632 1530 +e 1529 1531 1631 +e 1631 1531 1633 +e 1530 1632 1532 +e 1632 1634 1532 +e 1531 1533 1633 +e 1633 1533 1635 +e 1532 1634 1534 +e 1634 1636 1534 +e 1533 1535 1635 +e 1635 1535 1637 +e 1534 1636 1536 +e 1636 1638 1536 +e 1535 1537 1637 +e 1637 1537 1639 +e 1536 1638 1538 +e 1638 1640 1538 +e 1537 1539 1639 +e 1639 1539 1641 +e 1538 1640 1540 +e 1640 1642 1540 +e 1539 1541 1641 +e 1641 1541 1643 +e 1540 1642 1542 +e 1642 1644 1542 +e 1541 1543 1643 +e 1643 1543 1645 +e 1542 1644 1544 +e 1644 1646 1544 +e 1543 1545 1645 +e 1645 1545 1647 +e 1544 1646 1546 +e 1646 1648 1546 +e 1545 1547 1647 +e 1647 1547 1649 +e 1546 1648 1548 +e 1648 1650 1548 +e 1547 1549 1649 +e 1649 1549 1651 +e 1548 1650 1550 +e 1650 1652 1550 +e 1549 1551 1651 +e 1651 1551 1653 +e 1550 1652 1552 +e 1652 1654 1552 +e 1551 1553 1653 +e 1653 1553 1655 +e 1552 1654 1554 +e 1654 1656 1554 +e 1553 1555 1655 +e 1655 1555 1657 +e 1554 1656 1556 +e 1656 1658 1556 +e 1555 1557 1657 +e 1657 1557 1659 +e 1556 1658 1558 +e 1658 1660 1558 +e 1557 1559 1659 +e 1659 1559 1661 +e 1558 1660 1560 +e 1660 1662 1560 +e 1559 1561 1661 +e 1661 1561 1663 +e 1560 1662 1562 +e 1662 1664 1562 +e 1561 1563 1663 +e 1663 1563 1665 +e 1562 1664 1564 +e 1664 1666 1564 +e 1563 1565 1665 +e 1665 1565 1667 +e 1564 1666 1566 +e 1666 1668 1566 +e 1565 1567 1667 +e 1667 1567 1669 +e 1566 1668 1568 +e 1668 1670 1568 +e 1567 1569 1669 +e 1669 1569 1671 +e 1568 1670 1570 +e 1670 1672 1570 +e 1569 1571 1671 +e 1671 1571 1673 +e 1570 1672 1572 +e 1672 1674 1572 +e 1571 1573 1673 +e 1673 1573 1675 +e 1572 1674 1574 +e 1674 1676 1574 +e 1573 1575 1675 +e 1675 1575 1677 +e 1574 1676 1576 +e 1676 1678 1576 +e 1575 1577 1677 +e 1677 1577 1679 +e 1576 1678 1578 +e 1678 1680 1578 +e 1577 1579 1679 +e 1679 1579 1681 +e 1578 1680 1580 +e 1680 1682 1580 +e 1581 1582 1683 +e 1683 1582 1684 +e 1583 1685 1584 +e 1685 1686 1584 +e 1582 1585 1684 +e 1684 1585 1687 +e 1584 1686 1586 +e 1686 1688 1586 +e 1585 1587 1687 +e 1687 1587 1689 +e 1586 1688 1588 +e 1688 1690 1588 +e 1587 1589 1689 +e 1689 1589 1691 +e 1588 1690 1590 +e 1690 1692 1590 +e 1589 1591 1691 +e 1691 1591 1693 +e 1590 1692 1592 +e 1692 1694 1592 +e 1591 1593 1693 +e 1693 1593 1695 +e 1592 1694 1594 +e 1694 1696 1594 +e 1593 1595 1695 +e 1695 1595 1697 +e 1594 1696 1596 +e 1696 1698 1596 +e 1595 1597 1697 +e 1697 1597 1699 +e 1596 1698 1598 +e 1698 1700 1598 +e 1597 1599 1699 +e 1699 1599 1701 +e 1598 1700 1600 +e 1700 1702 1600 +e 1599 1601 1701 +e 1701 1601 1703 +e 1600 1702 1602 +e 1702 1704 1602 +e 1601 1603 1703 +e 1703 1603 1705 +e 1602 1704 1604 +e 1704 1706 1604 +e 1603 1605 1705 +e 1705 1605 1707 +e 1604 1706 1606 +e 1706 1708 1606 +e 1605 1607 1707 +e 1707 1607 1709 +e 1606 1708 1608 +e 1708 1710 1608 +e 1607 1609 1709 +e 1709 1609 1711 +e 1608 1710 1610 +e 1710 1712 1610 +e 1609 1611 1711 +e 1711 1611 1713 +e 1610 1712 1612 +e 1712 1714 1612 +e 1611 1613 1713 +e 1713 1613 1715 +e 1612 1714 1614 +e 1714 1716 1614 +e 1613 1615 1715 +e 1715 1615 1717 +e 1614 1716 1616 +e 1716 1718 1616 +e 1615 1617 1717 +e 1717 1617 1719 +e 1616 1718 1618 +e 1718 1720 1618 +e 1617 1619 1719 +e 1719 1619 1721 +e 1618 1720 1620 +e 1720 1722 1620 +e 1619 1621 1721 +e 1721 1621 1723 +e 1620 1722 1622 +e 1722 1724 1622 +e 1621 1623 1723 +e 1723 1623 1725 +e 1622 1724 1624 +e 1724 1726 1624 +e 1623 1625 1725 +e 1725 1625 1727 +e 1624 1726 1626 +e 1726 1728 1626 +e 1625 1627 1727 +e 1727 1627 1729 +e 1626 1728 1628 +e 1728 1730 1628 +e 1627 1629 1729 +e 1729 1629 1731 +e 1628 1730 1630 +e 1730 1732 1630 +e 1629 1631 1731 +e 1731 1631 1733 +e 1630 1732 1632 +e 1732 1734 1632 +e 1631 1633 1733 +e 1733 1633 1735 +e 1632 1734 1634 +e 1734 1736 1634 +e 1633 1635 1735 +e 1735 1635 1737 +e 1634 1736 1636 +e 1736 1738 1636 +e 1635 1637 1737 +e 1737 1637 1739 +e 1636 1738 1638 +e 1738 1740 1638 +e 1637 1639 1739 +e 1739 1639 1741 +e 1638 1740 1640 +e 1740 1742 1640 +e 1639 1641 1741 +e 1741 1641 1743 +e 1640 1742 1642 +e 1742 1744 1642 +e 1641 1643 1743 +e 1743 1643 1745 +e 1642 1744 1644 +e 1744 1746 1644 +e 1643 1645 1745 +e 1745 1645 1747 +e 1644 1746 1646 +e 1746 1748 1646 +e 1645 1647 1747 +e 1747 1647 1749 +e 1646 1748 1648 +e 1748 1750 1648 +e 1647 1649 1749 +e 1749 1649 1751 +e 1648 1750 1650 +e 1750 1752 1650 +e 1649 1651 1751 +e 1751 1651 1753 +e 1650 1752 1652 +e 1752 1754 1652 +e 1651 1653 1753 +e 1753 1653 1755 +e 1652 1754 1654 +e 1754 1756 1654 +e 1653 1655 1755 +e 1755 1655 1757 +e 1654 1756 1656 +e 1756 1758 1656 +e 1655 1657 1757 +e 1757 1657 1759 +e 1656 1758 1658 +e 1758 1760 1658 +e 1657 1659 1759 +e 1759 1659 1761 +e 1658 1760 1660 +e 1760 1762 1660 +e 1659 1661 1761 +e 1761 1661 1763 +e 1660 1762 1662 +e 1762 1764 1662 +e 1661 1663 1763 +e 1763 1663 1765 +e 1662 1764 1664 +e 1764 1766 1664 +e 1663 1665 1765 +e 1765 1665 1767 +e 1664 1766 1666 +e 1766 1768 1666 +e 1665 1667 1767 +e 1767 1667 1769 +e 1666 1768 1668 +e 1768 1770 1668 +e 1667 1669 1769 +e 1769 1669 1771 +e 1668 1770 1670 +e 1770 1772 1670 +e 1669 1671 1771 +e 1771 1671 1773 +e 1670 1772 1672 +e 1772 1774 1672 +e 1671 1673 1773 +e 1773 1673 1775 +e 1672 1774 1674 +e 1774 1776 1674 +e 1673 1675 1775 +e 1775 1675 1777 +e 1674 1776 1676 +e 1776 1778 1676 +e 1675 1677 1777 +e 1777 1677 1779 +e 1676 1778 1678 +e 1778 1780 1678 +e 1677 1679 1779 +e 1779 1679 1781 +e 1678 1780 1680 +e 1780 1782 1680 +e 1679 1681 1781 +e 1781 1681 1783 +e 1680 1782 1682 +e 1782 1784 1682 +e 1683 1684 1785 +e 1785 1684 1786 +e 1685 1787 1686 +e 1787 1788 1686 +e 1684 1687 1786 +e 1786 1687 1789 +e 1686 1788 1688 +e 1788 1790 1688 +e 1687 1689 1789 +e 1789 1689 1791 +e 1688 1790 1690 +e 1790 1792 1690 +e 1689 1691 1791 +e 1791 1691 1793 +e 1690 1792 1692 +e 1792 1794 1692 +e 1691 1693 1793 +e 1793 1693 1795 +e 1692 1794 1694 +e 1794 1796 1694 +e 1693 1695 1795 +e 1795 1695 1797 +e 1694 1796 1696 +e 1796 1798 1696 +e 1695 1697 1797 +e 1797 1697 1799 +e 1696 1798 1698 +e 1798 1800 1698 +e 1697 1699 1799 +e 1799 1699 1801 +e 1698 1800 1700 +e 1800 1802 1700 +e 1699 1701 1801 +e 1801 1701 1803 +e 1700 1802 1702 +e 1802 1804 1702 +e 1701 1703 1803 +e 1803 1703 1805 +e 1702 1804 1704 +e 1804 1806 1704 +e 1703 1705 1805 +e 1805 1705 1807 +e 1704 1806 1706 +e 1806 1808 1706 +e 1705 1707 1807 +e 1807 1707 1809 +e 1706 1808 1708 +e 1808 1810 1708 +e 1707 1709 1809 +e 1809 1709 1811 +e 1708 1810 1710 +e 1810 1812 1710 +e 1709 1711 1811 +e 1811 1711 1813 +e 1710 1812 1712 +e 1812 1814 1712 +e 1711 1713 1813 +e 1813 1713 1815 +e 1712 1814 1714 +e 1814 1816 1714 +e 1713 1715 1815 +e 1815 1715 1817 +e 1714 1816 1716 +e 1816 1818 1716 +e 1715 1717 1817 +e 1817 1717 1819 +e 1716 1818 1718 +e 1818 1820 1718 +e 1717 1719 1819 +e 1819 1719 1821 +e 1718 1820 1720 +e 1820 1822 1720 +e 1719 1721 1821 +e 1821 1721 1823 +e 1720 1822 1722 +e 1822 1824 1722 +e 1721 1723 1823 +e 1823 1723 1825 +e 1722 1824 1724 +e 1824 1826 1724 +e 1723 1725 1825 +e 1825 1725 1827 +e 1724 1826 1726 +e 1826 1828 1726 +e 1725 1727 1827 +e 1827 1727 1829 +e 1726 1828 1728 +e 1828 1830 1728 +e 1727 1729 1829 +e 1829 1729 1831 +e 1728 1830 1730 +e 1830 1832 1730 +e 1729 1731 1831 +e 1831 1731 1833 +e 1730 1832 1732 +e 1832 1834 1732 +e 1731 1733 1833 +e 1833 1733 1835 +e 1732 1834 1734 +e 1834 1836 1734 +e 1733 1735 1835 +e 1835 1735 1837 +e 1734 1836 1736 +e 1836 1838 1736 +e 1735 1737 1837 +e 1837 1737 1839 +e 1736 1838 1738 +e 1838 1840 1738 +e 1737 1739 1839 +e 1839 1739 1841 +e 1738 1840 1740 +e 1840 1842 1740 +e 1739 1741 1841 +e 1841 1741 1843 +e 1740 1842 1742 +e 1842 1844 1742 +e 1741 1743 1843 +e 1843 1743 1845 +e 1742 1844 1744 +e 1844 1846 1744 +e 1743 1745 1845 +e 1845 1745 1847 +e 1744 1846 1746 +e 1846 1848 1746 +e 1745 1747 1847 +e 1847 1747 1849 +e 1746 1848 1748 +e 1848 1850 1748 +e 1747 1749 1849 +e 1849 1749 1851 +e 1748 1850 1750 +e 1850 1852 1750 +e 1749 1751 1851 +e 1851 1751 1853 +e 1750 1852 1752 +e 1852 1854 1752 +e 1751 1753 1853 +e 1853 1753 1855 +e 1752 1854 1754 +e 1854 1856 1754 +e 1753 1755 1855 +e 1855 1755 1857 +e 1754 1856 1756 +e 1856 1858 1756 +e 1755 1757 1857 +e 1857 1757 1859 +e 1756 1858 1758 +e 1858 1860 1758 +e 1757 1759 1859 +e 1859 1759 1861 +e 1758 1860 1760 +e 1860 1862 1760 +e 1759 1761 1861 +e 1861 1761 1863 +e 1760 1862 1762 +e 1862 1864 1762 +e 1761 1763 1863 +e 1863 1763 1865 +e 1762 1864 1764 +e 1864 1866 1764 +e 1763 1765 1865 +e 1865 1765 1867 +e 1764 1866 1766 +e 1866 1868 1766 +e 1765 1767 1867 +e 1867 1767 1869 +e 1766 1868 1768 +e 1868 1870 1768 +e 1767 1769 1869 +e 1869 1769 1871 +e 1768 1870 1770 +e 1870 1872 1770 +e 1769 1771 1871 +e 1871 1771 1873 +e 1770 1872 1772 +e 1872 1874 1772 +e 1771 1773 1873 +e 1873 1773 1875 +e 1772 1874 1774 +e 1874 1876 1774 +e 1773 1775 1875 +e 1875 1775 1877 +e 1774 1876 1776 +e 1876 1878 1776 +e 1775 1777 1877 +e 1877 1777 1879 +e 1776 1878 1778 +e 1878 1880 1778 +e 1777 1779 1879 +e 1879 1779 1881 +e 1778 1880 1780 +e 1880 1882 1780 +e 1779 1781 1881 +e 1881 1781 1883 +e 1780 1882 1782 +e 1882 1884 1782 +e 1781 1783 1883 +e 1883 1783 1885 +e 1782 1884 1784 +e 1884 1886 1784 +e 1785 1786 1887 +e 1887 1786 1888 +e 1787 1889 1788 +e 1889 1890 1788 +e 1786 1789 1888 +e 1888 1789 1891 +e 1788 1890 1790 +e 1890 1892 1790 +e 1789 1791 1891 +e 1891 1791 1893 +e 1790 1892 1792 +e 1892 1894 1792 +e 1791 1793 1893 +e 1893 1793 1895 +e 1792 1894 1794 +e 1894 1896 1794 +e 1793 1795 1895 +e 1895 1795 1897 +e 1794 1896 1796 +e 1896 1898 1796 +e 1795 1797 1897 +e 1897 1797 1899 +e 1796 1898 1798 +e 1898 1900 1798 +e 1797 1799 1899 +e 1899 1799 1901 +e 1798 1900 1800 +e 1900 1902 1800 +e 1799 1801 1901 +e 1901 1801 1903 +e 1800 1902 1802 +e 1902 1904 1802 +e 1801 1803 1903 +e 1903 1803 1905 +e 1802 1904 1804 +e 1904 1906 1804 +e 1803 1805 1905 +e 1905 1805 1907 +e 1804 1906 1806 +e 1906 1908 1806 +e 1805 1807 1907 +e 1907 1807 1909 +e 1806 1908 1808 +e 1908 1910 1808 +e 1807 1809 1909 +e 1909 1809 1911 +e 1808 1910 1810 +e 1910 1912 1810 +e 1809 1811 1911 +e 1911 1811 1913 +e 1810 1912 1812 +e 1912 1914 1812 +e 1811 1813 1913 +e 1913 1813 1915 +e 1812 1914 1814 +e 1914 1916 1814 +e 1813 1815 1915 +e 1915 1815 1917 +e 1814 1916 1816 +e 1916 1918 1816 +e 1815 1817 1917 +e 1917 1817 1919 +e 1816 1918 1818 +e 1918 1920 1818 +e 1817 1819 1919 +e 1919 1819 1921 +e 1818 1920 1820 +e 1920 1922 1820 +e 1819 1821 1921 +e 1921 1821 1923 +e 1820 1922 1822 +e 1922 1924 1822 +e 1821 1823 1923 +e 1923 1823 1925 +e 1822 1924 1824 +e 1924 1926 1824 +e 1823 1825 1925 +e 1925 1825 1927 +e 1824 1926 1826 +e 1926 1928 1826 +e 1825 1827 1927 +e 1927 1827 1929 +e 1826 1928 1828 +e 1928 1930 1828 +e 1827 1829 1929 +e 1929 1829 1931 +e 1828 1930 1830 +e 1930 1932 1830 +e 1829 1831 1931 +e 1931 1831 1933 +e 1830 1932 1832 +e 1932 1934 1832 +e 1831 1833 1933 +e 1933 1833 1935 +e 1832 1934 1834 +e 1934 1936 1834 +e 1833 1835 1935 +e 1935 1835 1937 +e 1834 1936 1836 +e 1936 1938 1836 +e 1835 1837 1937 +e 1937 1837 1939 +e 1836 1938 1838 +e 1938 1940 1838 +e 1837 1839 1939 +e 1939 1839 1941 +e 1838 1940 1840 +e 1940 1942 1840 +e 1839 1841 1941 +e 1941 1841 1943 +e 1840 1942 1842 +e 1942 1944 1842 +e 1841 1843 1943 +e 1943 1843 1945 +e 1842 1944 1844 +e 1944 1946 1844 +e 1843 1845 1945 +e 1945 1845 1947 +e 1844 1946 1846 +e 1946 1948 1846 +e 1845 1847 1947 +e 1947 1847 1949 +e 1846 1948 1848 +e 1948 1950 1848 +e 1847 1849 1949 +e 1949 1849 1951 +e 1848 1950 1850 +e 1950 1952 1850 +e 1849 1851 1951 +e 1951 1851 1953 +e 1850 1952 1852 +e 1952 1954 1852 +e 1851 1853 1953 +e 1953 1853 1955 +e 1852 1954 1854 +e 1954 1956 1854 +e 1853 1855 1955 +e 1955 1855 1957 +e 1854 1956 1856 +e 1956 1958 1856 +e 1855 1857 1957 +e 1957 1857 1959 +e 1856 1958 1858 +e 1958 1960 1858 +e 1857 1859 1959 +e 1959 1859 1961 +e 1858 1960 1860 +e 1960 1962 1860 +e 1859 1861 1961 +e 1961 1861 1963 +e 1860 1962 1862 +e 1962 1964 1862 +e 1861 1863 1963 +e 1963 1863 1965 +e 1862 1964 1864 +e 1964 1966 1864 +e 1863 1865 1965 +e 1965 1865 1967 +e 1864 1966 1866 +e 1966 1968 1866 +e 1865 1867 1967 +e 1967 1867 1969 +e 1866 1968 1868 +e 1968 1970 1868 +e 1867 1869 1969 +e 1969 1869 1971 +e 1868 1970 1870 +e 1970 1972 1870 +e 1869 1871 1971 +e 1971 1871 1973 +e 1870 1972 1872 +e 1972 1974 1872 +e 1871 1873 1973 +e 1973 1873 1975 +e 1872 1974 1874 +e 1974 1976 1874 +e 1873 1875 1975 +e 1975 1875 1977 +e 1874 1976 1876 +e 1976 1978 1876 +e 1875 1877 1977 +e 1977 1877 1979 +e 1876 1978 1878 +e 1978 1980 1878 +e 1877 1879 1979 +e 1979 1879 1981 +e 1878 1980 1880 +e 1980 1982 1880 +e 1879 1881 1981 +e 1981 1881 1983 +e 1880 1982 1882 +e 1982 1984 1882 +e 1881 1883 1983 +e 1983 1883 1985 +e 1882 1984 1884 +e 1984 1986 1884 +e 1883 1885 1985 +e 1985 1885 1987 +e 1884 1986 1886 +e 1986 1988 1886 +e 1887 1888 1989 +e 1989 1888 1990 +e 1889 1991 1890 +e 1991 1992 1890 +e 1888 1891 1990 +e 1990 1891 1993 +e 1890 1992 1892 +e 1992 1994 1892 +e 1891 1893 1993 +e 1993 1893 1995 +e 1892 1994 1894 +e 1994 1996 1894 +e 1893 1895 1995 +e 1995 1895 1997 +e 1894 1996 1896 +e 1996 1998 1896 +e 1895 1897 1997 +e 1997 1897 1999 +e 1896 1998 1898 +e 1998 2000 1898 +e 1897 1899 1999 +e 1999 1899 2001 +e 1898 2000 1900 +e 2000 2002 1900 +e 1899 1901 2001 +e 2001 1901 2003 +e 1900 2002 1902 +e 2002 2004 1902 +e 1901 1903 2003 +e 2003 1903 2005 +e 1902 2004 1904 +e 2004 2006 1904 +e 1903 1905 2005 +e 2005 1905 2007 +e 1904 2006 1906 +e 2006 2008 1906 +e 1905 1907 2007 +e 2007 1907 2009 +e 1906 2008 1908 +e 2008 2010 1908 +e 1907 1909 2009 +e 2009 1909 2011 +e 1908 2010 1910 +e 2010 2012 1910 +e 1909 1911 2011 +e 2011 1911 2013 +e 1910 2012 1912 +e 2012 2014 1912 +e 1911 1913 2013 +e 2013 1913 2015 +e 1912 2014 1914 +e 2014 2016 1914 +e 1913 1915 2015 +e 2015 1915 2017 +e 1914 2016 1916 +e 2016 2018 1916 +e 1915 1917 2017 +e 2017 1917 2019 +e 1916 2018 1918 +e 2018 2020 1918 +e 1917 1919 2019 +e 2019 1919 2021 +e 1918 2020 1920 +e 2020 2022 1920 +e 1919 1921 2021 +e 2021 1921 2023 +e 1920 2022 1922 +e 2022 2024 1922 +e 1921 1923 2023 +e 2023 1923 2025 +e 1922 2024 1924 +e 2024 2026 1924 +e 1923 1925 2025 +e 2025 1925 2027 +e 1924 2026 1926 +e 2026 2028 1926 +e 1925 1927 2027 +e 2027 1927 2029 +e 1926 2028 1928 +e 2028 2030 1928 +e 1927 1929 2029 +e 2029 1929 2031 +e 1928 2030 1930 +e 2030 2032 1930 +e 1929 1931 2031 +e 2031 1931 2033 +e 1930 2032 1932 +e 2032 2034 1932 +e 1931 1933 2033 +e 2033 1933 2035 +e 1932 2034 1934 +e 2034 2036 1934 +e 1933 1935 2035 +e 2035 1935 2037 +e 1934 2036 1936 +e 2036 2038 1936 +e 1935 1937 2037 +e 2037 1937 2039 +e 1936 2038 1938 +e 2038 2040 1938 +e 1937 1939 2039 +e 2039 1939 2041 +e 1938 2040 1940 +e 2040 2042 1940 +e 1939 1941 2041 +e 2041 1941 2043 +e 1940 2042 1942 +e 2042 2044 1942 +e 1941 1943 2043 +e 2043 1943 2045 +e 1942 2044 1944 +e 2044 2046 1944 +e 1943 1945 2045 +e 2045 1945 2047 +e 1944 2046 1946 +e 2046 2048 1946 +e 1945 1947 2047 +e 2047 1947 2049 +e 1946 2048 1948 +e 2048 2050 1948 +e 1947 1949 2049 +e 2049 1949 2051 +e 1948 2050 1950 +e 2050 2052 1950 +e 1949 1951 2051 +e 2051 1951 2053 +e 1950 2052 1952 +e 2052 2054 1952 +e 1951 1953 2053 +e 2053 1953 2055 +e 1952 2054 1954 +e 2054 2056 1954 +e 1953 1955 2055 +e 2055 1955 2057 +e 1954 2056 1956 +e 2056 2058 1956 +e 1955 1957 2057 +e 2057 1957 2059 +e 1956 2058 1958 +e 2058 2060 1958 +e 1957 1959 2059 +e 2059 1959 2061 +e 1958 2060 1960 +e 2060 2062 1960 +e 1959 1961 2061 +e 2061 1961 2063 +e 1960 2062 1962 +e 2062 2064 1962 +e 1961 1963 2063 +e 2063 1963 2065 +e 1962 2064 1964 +e 2064 2066 1964 +e 1963 1965 2065 +e 2065 1965 2067 +e 1964 2066 1966 +e 2066 2068 1966 +e 1965 1967 2067 +e 2067 1967 2069 +e 1966 2068 1968 +e 2068 2070 1968 +e 1967 1969 2069 +e 2069 1969 2071 +e 1968 2070 1970 +e 2070 2072 1970 +e 1969 1971 2071 +e 2071 1971 2073 +e 1970 2072 1972 +e 2072 2074 1972 +e 1971 1973 2073 +e 2073 1973 2075 +e 1972 2074 1974 +e 2074 2076 1974 +e 1973 1975 2075 +e 2075 1975 2077 +e 1974 2076 1976 +e 2076 2078 1976 +e 1975 1977 2077 +e 2077 1977 2079 +e 1976 2078 1978 +e 2078 2080 1978 +e 1977 1979 2079 +e 2079 1979 2081 +e 1978 2080 1980 +e 2080 2082 1980 +e 1979 1981 2081 +e 2081 1981 2083 +e 1980 2082 1982 +e 2082 2084 1982 +e 1981 1983 2083 +e 2083 1983 2085 +e 1982 2084 1984 +e 2084 2086 1984 +e 1983 1985 2085 +e 2085 1985 2087 +e 1984 2086 1986 +e 2086 2088 1986 +e 1985 1987 2087 +e 2087 1987 2089 +e 1986 2088 1988 +e 2088 2090 1988 +e 1989 1990 2091 +e 2091 1990 2092 +e 1991 2093 1992 +e 2093 2094 1992 +e 1990 1993 2092 +e 2092 1993 2095 +e 1992 2094 1994 +e 2094 2096 1994 +e 1993 1995 2095 +e 2095 1995 2097 +e 1994 2096 1996 +e 2096 2098 1996 +e 1995 1997 2097 +e 2097 1997 2099 +e 1996 2098 1998 +e 2098 2100 1998 +e 1997 1999 2099 +e 2099 1999 2101 +e 1998 2100 2000 +e 2100 2102 2000 +e 1999 2001 2101 +e 2101 2001 2103 +e 2000 2102 2002 +e 2102 2104 2002 +e 2001 2003 2103 +e 2103 2003 2105 +e 2002 2104 2004 +e 2104 2106 2004 +e 2003 2005 2105 +e 2105 2005 2107 +e 2004 2106 2006 +e 2106 2108 2006 +e 2005 2007 2107 +e 2107 2007 2109 +e 2006 2108 2008 +e 2108 2110 2008 +e 2007 2009 2109 +e 2109 2009 2111 +e 2008 2110 2010 +e 2110 2112 2010 +e 2009 2011 2111 +e 2111 2011 2113 +e 2010 2112 2012 +e 2112 2114 2012 +e 2011 2013 2113 +e 2113 2013 2115 +e 2012 2114 2014 +e 2114 2116 2014 +e 2013 2015 2115 +e 2115 2015 2117 +e 2014 2116 2016 +e 2116 2118 2016 +e 2015 2017 2117 +e 2117 2017 2119 +e 2016 2118 2018 +e 2118 2120 2018 +e 2017 2019 2119 +e 2119 2019 2121 +e 2018 2120 2020 +e 2120 2122 2020 +e 2019 2021 2121 +e 2121 2021 2123 +e 2020 2122 2022 +e 2122 2124 2022 +e 2021 2023 2123 +e 2123 2023 2125 +e 2022 2124 2024 +e 2124 2126 2024 +e 2023 2025 2125 +e 2125 2025 2127 +e 2024 2126 2026 +e 2126 2128 2026 +e 2025 2027 2127 +e 2127 2027 2129 +e 2026 2128 2028 +e 2128 2130 2028 +e 2027 2029 2129 +e 2129 2029 2131 +e 2028 2130 2030 +e 2130 2132 2030 +e 2029 2031 2131 +e 2131 2031 2133 +e 2030 2132 2032 +e 2132 2134 2032 +e 2031 2033 2133 +e 2133 2033 2135 +e 2032 2134 2034 +e 2134 2136 2034 +e 2033 2035 2135 +e 2135 2035 2137 +e 2034 2136 2036 +e 2136 2138 2036 +e 2035 2037 2137 +e 2137 2037 2139 +e 2036 2138 2038 +e 2138 2140 2038 +e 2037 2039 2139 +e 2139 2039 2141 +e 2038 2140 2040 +e 2140 2142 2040 +e 2039 2041 2141 +e 2141 2041 2143 +e 2040 2142 2042 +e 2142 2144 2042 +e 2041 2043 2143 +e 2143 2043 2145 +e 2042 2144 2044 +e 2144 2146 2044 +e 2043 2045 2145 +e 2145 2045 2147 +e 2044 2146 2046 +e 2146 2148 2046 +e 2045 2047 2147 +e 2147 2047 2149 +e 2046 2148 2048 +e 2148 2150 2048 +e 2047 2049 2149 +e 2149 2049 2151 +e 2048 2150 2050 +e 2150 2152 2050 +e 2049 2051 2151 +e 2151 2051 2153 +e 2050 2152 2052 +e 2152 2154 2052 +e 2051 2053 2153 +e 2153 2053 2155 +e 2052 2154 2054 +e 2154 2156 2054 +e 2053 2055 2155 +e 2155 2055 2157 +e 2054 2156 2056 +e 2156 2158 2056 +e 2055 2057 2157 +e 2157 2057 2159 +e 2056 2158 2058 +e 2158 2160 2058 +e 2057 2059 2159 +e 2159 2059 2161 +e 2058 2160 2060 +e 2160 2162 2060 +e 2059 2061 2161 +e 2161 2061 2163 +e 2060 2162 2062 +e 2162 2164 2062 +e 2061 2063 2163 +e 2163 2063 2165 +e 2062 2164 2064 +e 2164 2166 2064 +e 2063 2065 2165 +e 2165 2065 2167 +e 2064 2166 2066 +e 2166 2168 2066 +e 2065 2067 2167 +e 2167 2067 2169 +e 2066 2168 2068 +e 2168 2170 2068 +e 2067 2069 2169 +e 2169 2069 2171 +e 2068 2170 2070 +e 2170 2172 2070 +e 2069 2071 2171 +e 2171 2071 2173 +e 2070 2172 2072 +e 2172 2174 2072 +e 2071 2073 2173 +e 2173 2073 2175 +e 2072 2174 2074 +e 2174 2176 2074 +e 2073 2075 2175 +e 2175 2075 2177 +e 2074 2176 2076 +e 2176 2178 2076 +e 2075 2077 2177 +e 2177 2077 2179 +e 2076 2178 2078 +e 2178 2180 2078 +e 2077 2079 2179 +e 2179 2079 2181 +e 2078 2180 2080 +e 2180 2182 2080 +e 2079 2081 2181 +e 2181 2081 2183 +e 2080 2182 2082 +e 2182 2184 2082 +e 2081 2083 2183 +e 2183 2083 2185 +e 2082 2184 2084 +e 2184 2186 2084 +e 2083 2085 2185 +e 2185 2085 2187 +e 2084 2186 2086 +e 2186 2188 2086 +e 2085 2087 2187 +e 2187 2087 2189 +e 2086 2188 2088 +e 2188 2190 2088 +e 2087 2089 2189 +e 2189 2089 2191 +e 2088 2190 2090 +e 2190 2192 2090 +e 2091 2092 2193 +e 2193 2092 2194 +e 2093 2195 2094 +e 2195 2196 2094 +e 2092 2095 2194 +e 2194 2095 2197 +e 2094 2196 2096 +e 2196 2198 2096 +e 2095 2097 2197 +e 2197 2097 2199 +e 2096 2198 2098 +e 2198 2200 2098 +e 2097 2099 2199 +e 2199 2099 2201 +e 2098 2200 2100 +e 2200 2202 2100 +e 2099 2101 2201 +e 2201 2101 2203 +e 2100 2202 2102 +e 2202 2204 2102 +e 2101 2103 2203 +e 2203 2103 2205 +e 2102 2204 2104 +e 2204 2206 2104 +e 2103 2105 2205 +e 2205 2105 2207 +e 2104 2206 2106 +e 2206 2208 2106 +e 2105 2107 2207 +e 2207 2107 2209 +e 2106 2208 2108 +e 2208 2210 2108 +e 2107 2109 2209 +e 2209 2109 2211 +e 2108 2210 2110 +e 2210 2212 2110 +e 2109 2111 2211 +e 2211 2111 2213 +e 2110 2212 2112 +e 2212 2214 2112 +e 2111 2113 2213 +e 2213 2113 2215 +e 2112 2214 2114 +e 2214 2216 2114 +e 2113 2115 2215 +e 2215 2115 2217 +e 2114 2216 2116 +e 2216 2218 2116 +e 2115 2117 2217 +e 2217 2117 2219 +e 2116 2218 2118 +e 2218 2220 2118 +e 2117 2119 2219 +e 2219 2119 2221 +e 2118 2220 2120 +e 2220 2222 2120 +e 2119 2121 2221 +e 2221 2121 2223 +e 2120 2222 2122 +e 2222 2224 2122 +e 2121 2123 2223 +e 2223 2123 2225 +e 2122 2224 2124 +e 2224 2226 2124 +e 2123 2125 2225 +e 2225 2125 2227 +e 2124 2226 2126 +e 2226 2228 2126 +e 2125 2127 2227 +e 2227 2127 2229 +e 2126 2228 2128 +e 2228 2230 2128 +e 2127 2129 2229 +e 2229 2129 2231 +e 2128 2230 2130 +e 2230 2232 2130 +e 2129 2131 2231 +e 2231 2131 2233 +e 2130 2232 2132 +e 2232 2234 2132 +e 2131 2133 2233 +e 2233 2133 2235 +e 2132 2234 2134 +e 2234 2236 2134 +e 2133 2135 2235 +e 2235 2135 2237 +e 2134 2236 2136 +e 2236 2238 2136 +e 2135 2137 2237 +e 2237 2137 2239 +e 2136 2238 2138 +e 2238 2240 2138 +e 2137 2139 2239 +e 2239 2139 2241 +e 2138 2240 2140 +e 2240 2242 2140 +e 2139 2141 2241 +e 2241 2141 2243 +e 2140 2242 2142 +e 2242 2244 2142 +e 2141 2143 2243 +e 2243 2143 2245 +e 2142 2244 2144 +e 2244 2246 2144 +e 2143 2145 2245 +e 2245 2145 2247 +e 2144 2246 2146 +e 2246 2248 2146 +e 2145 2147 2247 +e 2247 2147 2249 +e 2146 2248 2148 +e 2248 2250 2148 +e 2147 2149 2249 +e 2249 2149 2251 +e 2148 2250 2150 +e 2250 2252 2150 +e 2149 2151 2251 +e 2251 2151 2253 +e 2150 2252 2152 +e 2252 2254 2152 +e 2151 2153 2253 +e 2253 2153 2255 +e 2152 2254 2154 +e 2254 2256 2154 +e 2153 2155 2255 +e 2255 2155 2257 +e 2154 2256 2156 +e 2256 2258 2156 +e 2155 2157 2257 +e 2257 2157 2259 +e 2156 2258 2158 +e 2258 2260 2158 +e 2157 2159 2259 +e 2259 2159 2261 +e 2158 2260 2160 +e 2260 2262 2160 +e 2159 2161 2261 +e 2261 2161 2263 +e 2160 2262 2162 +e 2262 2264 2162 +e 2161 2163 2263 +e 2263 2163 2265 +e 2162 2264 2164 +e 2264 2266 2164 +e 2163 2165 2265 +e 2265 2165 2267 +e 2164 2266 2166 +e 2266 2268 2166 +e 2165 2167 2267 +e 2267 2167 2269 +e 2166 2268 2168 +e 2268 2270 2168 +e 2167 2169 2269 +e 2269 2169 2271 +e 2168 2270 2170 +e 2270 2272 2170 +e 2169 2171 2271 +e 2271 2171 2273 +e 2170 2272 2172 +e 2272 2274 2172 +e 2171 2173 2273 +e 2273 2173 2275 +e 2172 2274 2174 +e 2274 2276 2174 +e 2173 2175 2275 +e 2275 2175 2277 +e 2174 2276 2176 +e 2276 2278 2176 +e 2175 2177 2277 +e 2277 2177 2279 +e 2176 2278 2178 +e 2278 2280 2178 +e 2177 2179 2279 +e 2279 2179 2281 +e 2178 2280 2180 +e 2280 2282 2180 +e 2179 2181 2281 +e 2281 2181 2283 +e 2180 2282 2182 +e 2282 2284 2182 +e 2181 2183 2283 +e 2283 2183 2285 +e 2182 2284 2184 +e 2284 2286 2184 +e 2183 2185 2285 +e 2285 2185 2287 +e 2184 2286 2186 +e 2286 2288 2186 +e 2185 2187 2287 +e 2287 2187 2289 +e 2186 2288 2188 +e 2288 2290 2188 +e 2187 2189 2289 +e 2289 2189 2291 +e 2188 2290 2190 +e 2290 2292 2190 +e 2189 2191 2291 +e 2291 2191 2293 +e 2190 2292 2192 +e 2292 2294 2192 +e 2193 2194 2295 +e 2295 2194 2296 +e 2195 2297 2196 +e 2297 2298 2196 +e 2194 2197 2296 +e 2296 2197 2299 +e 2196 2298 2198 +e 2298 2300 2198 +e 2197 2199 2299 +e 2299 2199 2301 +e 2198 2300 2200 +e 2300 2302 2200 +e 2199 2201 2301 +e 2301 2201 2303 +e 2200 2302 2202 +e 2302 2304 2202 +e 2201 2203 2303 +e 2303 2203 2305 +e 2202 2304 2204 +e 2304 2306 2204 +e 2203 2205 2305 +e 2305 2205 2307 +e 2204 2306 2206 +e 2306 2308 2206 +e 2205 2207 2307 +e 2307 2207 2309 +e 2206 2308 2208 +e 2308 2310 2208 +e 2207 2209 2309 +e 2309 2209 2311 +e 2208 2310 2210 +e 2310 2312 2210 +e 2209 2211 2311 +e 2311 2211 2313 +e 2210 2312 2212 +e 2312 2314 2212 +e 2211 2213 2313 +e 2313 2213 2315 +e 2212 2314 2214 +e 2314 2316 2214 +e 2213 2215 2315 +e 2315 2215 2317 +e 2214 2316 2216 +e 2316 2318 2216 +e 2215 2217 2317 +e 2317 2217 2319 +e 2216 2318 2218 +e 2318 2320 2218 +e 2217 2219 2319 +e 2319 2219 2321 +e 2218 2320 2220 +e 2320 2322 2220 +e 2219 2221 2321 +e 2321 2221 2323 +e 2220 2322 2222 +e 2322 2324 2222 +e 2221 2223 2323 +e 2323 2223 2325 +e 2222 2324 2224 +e 2324 2326 2224 +e 2223 2225 2325 +e 2325 2225 2327 +e 2224 2326 2226 +e 2326 2328 2226 +e 2225 2227 2327 +e 2327 2227 2329 +e 2226 2328 2228 +e 2328 2330 2228 +e 2227 2229 2329 +e 2329 2229 2331 +e 2228 2330 2230 +e 2330 2332 2230 +e 2229 2231 2331 +e 2331 2231 2333 +e 2230 2332 2232 +e 2332 2334 2232 +e 2231 2233 2333 +e 2333 2233 2335 +e 2232 2334 2234 +e 2334 2336 2234 +e 2233 2235 2335 +e 2335 2235 2337 +e 2234 2336 2236 +e 2336 2338 2236 +e 2235 2237 2337 +e 2337 2237 2339 +e 2236 2338 2238 +e 2338 2340 2238 +e 2237 2239 2339 +e 2339 2239 2341 +e 2238 2340 2240 +e 2340 2342 2240 +e 2239 2241 2341 +e 2341 2241 2343 +e 2240 2342 2242 +e 2342 2344 2242 +e 2241 2243 2343 +e 2343 2243 2345 +e 2242 2344 2244 +e 2344 2346 2244 +e 2243 2245 2345 +e 2345 2245 2347 +e 2244 2346 2246 +e 2346 2348 2246 +e 2245 2247 2347 +e 2347 2247 2349 +e 2246 2348 2248 +e 2348 2350 2248 +e 2247 2249 2349 +e 2349 2249 2351 +e 2248 2350 2250 +e 2350 2352 2250 +e 2249 2251 2351 +e 2351 2251 2353 +e 2250 2352 2252 +e 2352 2354 2252 +e 2251 2253 2353 +e 2353 2253 2355 +e 2252 2354 2254 +e 2354 2356 2254 +e 2253 2255 2355 +e 2355 2255 2357 +e 2254 2356 2256 +e 2356 2358 2256 +e 2255 2257 2357 +e 2357 2257 2359 +e 2256 2358 2258 +e 2358 2360 2258 +e 2257 2259 2359 +e 2359 2259 2361 +e 2258 2360 2260 +e 2360 2362 2260 +e 2259 2261 2361 +e 2361 2261 2363 +e 2260 2362 2262 +e 2362 2364 2262 +e 2261 2263 2363 +e 2363 2263 2365 +e 2262 2364 2264 +e 2364 2366 2264 +e 2263 2265 2365 +e 2365 2265 2367 +e 2264 2366 2266 +e 2366 2368 2266 +e 2265 2267 2367 +e 2367 2267 2369 +e 2266 2368 2268 +e 2368 2370 2268 +e 2267 2269 2369 +e 2369 2269 2371 +e 2268 2370 2270 +e 2370 2372 2270 +e 2269 2271 2371 +e 2371 2271 2373 +e 2270 2372 2272 +e 2372 2374 2272 +e 2271 2273 2373 +e 2373 2273 2375 +e 2272 2374 2274 +e 2374 2376 2274 +e 2273 2275 2375 +e 2375 2275 2377 +e 2274 2376 2276 +e 2376 2378 2276 +e 2275 2277 2377 +e 2377 2277 2379 +e 2276 2378 2278 +e 2378 2380 2278 +e 2277 2279 2379 +e 2379 2279 2381 +e 2278 2380 2280 +e 2380 2382 2280 +e 2279 2281 2381 +e 2381 2281 2383 +e 2280 2382 2282 +e 2382 2384 2282 +e 2281 2283 2383 +e 2383 2283 2385 +e 2282 2384 2284 +e 2384 2386 2284 +e 2283 2285 2385 +e 2385 2285 2387 +e 2284 2386 2286 +e 2386 2388 2286 +e 2285 2287 2387 +e 2387 2287 2389 +e 2286 2388 2288 +e 2388 2390 2288 +e 2287 2289 2389 +e 2389 2289 2391 +e 2288 2390 2290 +e 2390 2392 2290 +e 2289 2291 2391 +e 2391 2291 2393 +e 2290 2392 2292 +e 2392 2394 2292 +e 2291 2293 2393 +e 2393 2293 2395 +e 2292 2394 2294 +e 2394 2396 2294 +e 2295 2296 2397 +e 2397 2296 2398 +e 2297 2399 2298 +e 2399 2400 2298 +e 2296 2299 2398 +e 2398 2299 2401 +e 2298 2400 2300 +e 2400 2402 2300 +e 2299 2301 2401 +e 2401 2301 2403 +e 2300 2402 2302 +e 2402 2404 2302 +e 2301 2303 2403 +e 2403 2303 2405 +e 2302 2404 2304 +e 2404 2406 2304 +e 2303 2305 2405 +e 2405 2305 2407 +e 2304 2406 2306 +e 2406 2408 2306 +e 2305 2307 2407 +e 2407 2307 2409 +e 2306 2408 2308 +e 2408 2410 2308 +e 2307 2309 2409 +e 2409 2309 2411 +e 2308 2410 2310 +e 2410 2412 2310 +e 2309 2311 2411 +e 2411 2311 2413 +e 2310 2412 2312 +e 2412 2414 2312 +e 2311 2313 2413 +e 2413 2313 2415 +e 2312 2414 2314 +e 2414 2416 2314 +e 2313 2315 2415 +e 2415 2315 2417 +e 2314 2416 2316 +e 2416 2418 2316 +e 2315 2317 2417 +e 2417 2317 2419 +e 2316 2418 2318 +e 2418 2420 2318 +e 2317 2319 2419 +e 2419 2319 2421 +e 2318 2420 2320 +e 2420 2422 2320 +e 2319 2321 2421 +e 2421 2321 2423 +e 2320 2422 2322 +e 2422 2424 2322 +e 2321 2323 2423 +e 2423 2323 2425 +e 2322 2424 2324 +e 2424 2426 2324 +e 2323 2325 2425 +e 2425 2325 2427 +e 2324 2426 2326 +e 2426 2428 2326 +e 2325 2327 2427 +e 2427 2327 2429 +e 2326 2428 2328 +e 2428 2430 2328 +e 2327 2329 2429 +e 2429 2329 2431 +e 2328 2430 2330 +e 2430 2432 2330 +e 2329 2331 2431 +e 2431 2331 2433 +e 2330 2432 2332 +e 2432 2434 2332 +e 2331 2333 2433 +e 2433 2333 2435 +e 2332 2434 2334 +e 2434 2436 2334 +e 2333 2335 2435 +e 2435 2335 2437 +e 2334 2436 2336 +e 2436 2438 2336 +e 2335 2337 2437 +e 2437 2337 2439 +e 2336 2438 2338 +e 2438 2440 2338 +e 2337 2339 2439 +e 2439 2339 2441 +e 2338 2440 2340 +e 2440 2442 2340 +e 2339 2341 2441 +e 2441 2341 2443 +e 2340 2442 2342 +e 2442 2444 2342 +e 2341 2343 2443 +e 2443 2343 2445 +e 2342 2444 2344 +e 2444 2446 2344 +e 2343 2345 2445 +e 2445 2345 2447 +e 2344 2446 2346 +e 2446 2448 2346 +e 2345 2347 2447 +e 2447 2347 2449 +e 2346 2448 2348 +e 2448 2450 2348 +e 2347 2349 2449 +e 2449 2349 2451 +e 2348 2450 2350 +e 2450 2452 2350 +e 2349 2351 2451 +e 2451 2351 2453 +e 2350 2452 2352 +e 2452 2454 2352 +e 2351 2353 2453 +e 2453 2353 2455 +e 2352 2454 2354 +e 2454 2456 2354 +e 2353 2355 2455 +e 2455 2355 2457 +e 2354 2456 2356 +e 2456 2458 2356 +e 2355 2357 2457 +e 2457 2357 2459 +e 2356 2458 2358 +e 2458 2460 2358 +e 2357 2359 2459 +e 2459 2359 2461 +e 2358 2460 2360 +e 2460 2462 2360 +e 2359 2361 2461 +e 2461 2361 2463 +e 2360 2462 2362 +e 2462 2464 2362 +e 2361 2363 2463 +e 2463 2363 2465 +e 2362 2464 2364 +e 2464 2466 2364 +e 2363 2365 2465 +e 2465 2365 2467 +e 2364 2466 2366 +e 2466 2468 2366 +e 2365 2367 2467 +e 2467 2367 2469 +e 2366 2468 2368 +e 2468 2470 2368 +e 2367 2369 2469 +e 2469 2369 2471 +e 2368 2470 2370 +e 2470 2472 2370 +e 2369 2371 2471 +e 2471 2371 2473 +e 2370 2472 2372 +e 2472 2474 2372 +e 2371 2373 2473 +e 2473 2373 2475 +e 2372 2474 2374 +e 2474 2476 2374 +e 2373 2375 2475 +e 2475 2375 2477 +e 2374 2476 2376 +e 2476 2478 2376 +e 2375 2377 2477 +e 2477 2377 2479 +e 2376 2478 2378 +e 2478 2480 2378 +e 2377 2379 2479 +e 2479 2379 2481 +e 2378 2480 2380 +e 2480 2482 2380 +e 2379 2381 2481 +e 2481 2381 2483 +e 2380 2482 2382 +e 2482 2484 2382 +e 2381 2383 2483 +e 2483 2383 2485 +e 2382 2484 2384 +e 2484 2486 2384 +e 2383 2385 2485 +e 2485 2385 2487 +e 2384 2486 2386 +e 2486 2488 2386 +e 2385 2387 2487 +e 2487 2387 2489 +e 2386 2488 2388 +e 2488 2490 2388 +e 2387 2389 2489 +e 2489 2389 2491 +e 2388 2490 2390 +e 2490 2492 2390 +e 2389 2391 2491 +e 2491 2391 2493 +e 2390 2492 2392 +e 2492 2494 2392 +e 2391 2393 2493 +e 2493 2393 2495 +e 2392 2494 2394 +e 2494 2496 2394 +e 2393 2395 2495 +e 2495 2395 2497 +e 2394 2496 2396 +e 2496 2498 2396 +e 2397 2398 2499 +e 2499 2398 2500 +e 2399 2501 2400 +e 2501 2502 2400 +e 2398 2401 2500 +e 2500 2401 2503 +e 2400 2502 2402 +e 2502 2504 2402 +e 2401 2403 2503 +e 2503 2403 2505 +e 2402 2504 2404 +e 2504 2506 2404 +e 2403 2405 2505 +e 2505 2405 2507 +e 2404 2506 2406 +e 2506 2508 2406 +e 2405 2407 2507 +e 2507 2407 2509 +e 2406 2508 2408 +e 2508 2510 2408 +e 2407 2409 2509 +e 2509 2409 2511 +e 2408 2510 2410 +e 2510 2512 2410 +e 2409 2411 2511 +e 2511 2411 2513 +e 2410 2512 2412 +e 2512 2514 2412 +e 2411 2413 2513 +e 2513 2413 2515 +e 2412 2514 2414 +e 2514 2516 2414 +e 2413 2415 2515 +e 2515 2415 2517 +e 2414 2516 2416 +e 2516 2518 2416 +e 2415 2417 2517 +e 2517 2417 2519 +e 2416 2518 2418 +e 2518 2520 2418 +e 2417 2419 2519 +e 2519 2419 2521 +e 2418 2520 2420 +e 2520 2522 2420 +e 2419 2421 2521 +e 2521 2421 2523 +e 2420 2522 2422 +e 2522 2524 2422 +e 2421 2423 2523 +e 2523 2423 2525 +e 2422 2524 2424 +e 2524 2526 2424 +e 2423 2425 2525 +e 2525 2425 2527 +e 2424 2526 2426 +e 2526 2528 2426 +e 2425 2427 2527 +e 2527 2427 2529 +e 2426 2528 2428 +e 2528 2530 2428 +e 2427 2429 2529 +e 2529 2429 2531 +e 2428 2530 2430 +e 2530 2532 2430 +e 2429 2431 2531 +e 2531 2431 2533 +e 2430 2532 2432 +e 2532 2534 2432 +e 2431 2433 2533 +e 2533 2433 2535 +e 2432 2534 2434 +e 2534 2536 2434 +e 2433 2435 2535 +e 2535 2435 2537 +e 2434 2536 2436 +e 2536 2538 2436 +e 2435 2437 2537 +e 2537 2437 2539 +e 2436 2538 2438 +e 2538 2540 2438 +e 2437 2439 2539 +e 2539 2439 2541 +e 2438 2540 2440 +e 2540 2542 2440 +e 2439 2441 2541 +e 2541 2441 2543 +e 2440 2542 2442 +e 2542 2544 2442 +e 2441 2443 2543 +e 2543 2443 2545 +e 2442 2544 2444 +e 2544 2546 2444 +e 2443 2445 2545 +e 2545 2445 2547 +e 2444 2546 2446 +e 2546 2548 2446 +e 2445 2447 2547 +e 2547 2447 2549 +e 2446 2548 2448 +e 2548 2550 2448 +e 2447 2449 2549 +e 2549 2449 2551 +e 2448 2550 2450 +e 2550 2552 2450 +e 2449 2451 2551 +e 2551 2451 2553 +e 2450 2552 2452 +e 2552 2554 2452 +e 2451 2453 2553 +e 2553 2453 2555 +e 2452 2554 2454 +e 2554 2556 2454 +e 2453 2455 2555 +e 2555 2455 2557 +e 2454 2556 2456 +e 2556 2558 2456 +e 2455 2457 2557 +e 2557 2457 2559 +e 2456 2558 2458 +e 2558 2560 2458 +e 2457 2459 2559 +e 2559 2459 2561 +e 2458 2560 2460 +e 2560 2562 2460 +e 2459 2461 2561 +e 2561 2461 2563 +e 2460 2562 2462 +e 2562 2564 2462 +e 2461 2463 2563 +e 2563 2463 2565 +e 2462 2564 2464 +e 2564 2566 2464 +e 2463 2465 2565 +e 2565 2465 2567 +e 2464 2566 2466 +e 2566 2568 2466 +e 2465 2467 2567 +e 2567 2467 2569 +e 2466 2568 2468 +e 2568 2570 2468 +e 2467 2469 2569 +e 2569 2469 2571 +e 2468 2570 2470 +e 2570 2572 2470 +e 2469 2471 2571 +e 2571 2471 2573 +e 2470 2572 2472 +e 2572 2574 2472 +e 2471 2473 2573 +e 2573 2473 2575 +e 2472 2574 2474 +e 2574 2576 2474 +e 2473 2475 2575 +e 2575 2475 2577 +e 2474 2576 2476 +e 2576 2578 2476 +e 2475 2477 2577 +e 2577 2477 2579 +e 2476 2578 2478 +e 2578 2580 2478 +e 2477 2479 2579 +e 2579 2479 2581 +e 2478 2580 2480 +e 2580 2582 2480 +e 2479 2481 2581 +e 2581 2481 2583 +e 2480 2582 2482 +e 2582 2584 2482 +e 2481 2483 2583 +e 2583 2483 2585 +e 2482 2584 2484 +e 2584 2586 2484 +e 2483 2485 2585 +e 2585 2485 2587 +e 2484 2586 2486 +e 2586 2588 2486 +e 2485 2487 2587 +e 2587 2487 2589 +e 2486 2588 2488 +e 2588 2590 2488 +e 2487 2489 2589 +e 2589 2489 2591 +e 2488 2590 2490 +e 2590 2592 2490 +e 2489 2491 2591 +e 2591 2491 2593 +e 2490 2592 2492 +e 2592 2594 2492 +e 2491 2493 2593 +e 2593 2493 2595 +e 2492 2594 2494 +e 2594 2596 2494 +e 2493 2495 2595 +e 2595 2495 2597 +e 2494 2596 2496 +e 2596 2598 2496 +e 2495 2497 2597 +e 2597 2497 2599 +e 2496 2598 2498 +e 2598 2600 2498 +e 2499 2500 2601 +e 2601 2500 2602 +e 2501 2603 2502 +e 2603 2604 2502 +e 2500 2503 2602 +e 2602 2503 2605 +e 2502 2604 2504 +e 2604 2606 2504 +e 2503 2505 2605 +e 2605 2505 2607 +e 2504 2606 2506 +e 2606 2608 2506 +e 2505 2507 2607 +e 2607 2507 2609 +e 2506 2608 2508 +e 2608 2610 2508 +e 2507 2509 2609 +e 2609 2509 2611 +e 2508 2610 2510 +e 2610 2612 2510 +e 2509 2511 2611 +e 2611 2511 2613 +e 2510 2612 2512 +e 2612 2614 2512 +e 2511 2513 2613 +e 2613 2513 2615 +e 2512 2614 2514 +e 2614 2616 2514 +e 2513 2515 2615 +e 2615 2515 2617 +e 2514 2616 2516 +e 2616 2618 2516 +e 2515 2517 2617 +e 2617 2517 2619 +e 2516 2618 2518 +e 2618 2620 2518 +e 2517 2519 2619 +e 2619 2519 2621 +e 2518 2620 2520 +e 2620 2622 2520 +e 2519 2521 2621 +e 2621 2521 2623 +e 2520 2622 2522 +e 2622 2624 2522 +e 2521 2523 2623 +e 2623 2523 2625 +e 2522 2624 2524 +e 2624 2626 2524 +e 2523 2525 2625 +e 2625 2525 2627 +e 2524 2626 2526 +e 2626 2628 2526 +e 2525 2527 2627 +e 2627 2527 2629 +e 2526 2628 2528 +e 2628 2630 2528 +e 2527 2529 2629 +e 2629 2529 2631 +e 2528 2630 2530 +e 2630 2632 2530 +e 2529 2531 2631 +e 2631 2531 2633 +e 2530 2632 2532 +e 2632 2634 2532 +e 2531 2533 2633 +e 2633 2533 2635 +e 2532 2634 2534 +e 2634 2636 2534 +e 2533 2535 2635 +e 2635 2535 2637 +e 2534 2636 2536 +e 2636 2638 2536 +e 2535 2537 2637 +e 2637 2537 2639 +e 2536 2638 2538 +e 2638 2640 2538 +e 2537 2539 2639 +e 2639 2539 2641 +e 2538 2640 2540 +e 2640 2642 2540 +e 2539 2541 2641 +e 2641 2541 2643 +e 2540 2642 2542 +e 2642 2644 2542 +e 2541 2543 2643 +e 2643 2543 2645 +e 2542 2644 2544 +e 2644 2646 2544 +e 2543 2545 2645 +e 2645 2545 2647 +e 2544 2646 2546 +e 2646 2648 2546 +e 2545 2547 2647 +e 2647 2547 2649 +e 2546 2648 2548 +e 2648 2650 2548 +e 2547 2549 2649 +e 2649 2549 2651 +e 2548 2650 2550 +e 2650 2652 2550 +e 2549 2551 2651 +e 2651 2551 2653 +e 2550 2652 2552 +e 2652 2654 2552 +e 2551 2553 2653 +e 2653 2553 2655 +e 2552 2654 2554 +e 2654 2656 2554 +e 2553 2555 2655 +e 2655 2555 2657 +e 2554 2656 2556 +e 2656 2658 2556 +e 2555 2557 2657 +e 2657 2557 2659 +e 2556 2658 2558 +e 2658 2660 2558 +e 2557 2559 2659 +e 2659 2559 2661 +e 2558 2660 2560 +e 2660 2662 2560 +e 2559 2561 2661 +e 2661 2561 2663 +e 2560 2662 2562 +e 2662 2664 2562 +e 2561 2563 2663 +e 2663 2563 2665 +e 2562 2664 2564 +e 2664 2666 2564 +e 2563 2565 2665 +e 2665 2565 2667 +e 2564 2666 2566 +e 2666 2668 2566 +e 2565 2567 2667 +e 2667 2567 2669 +e 2566 2668 2568 +e 2668 2670 2568 +e 2567 2569 2669 +e 2669 2569 2671 +e 2568 2670 2570 +e 2670 2672 2570 +e 2569 2571 2671 +e 2671 2571 2673 +e 2570 2672 2572 +e 2672 2674 2572 +e 2571 2573 2673 +e 2673 2573 2675 +e 2572 2674 2574 +e 2674 2676 2574 +e 2573 2575 2675 +e 2675 2575 2677 +e 2574 2676 2576 +e 2676 2678 2576 +e 2575 2577 2677 +e 2677 2577 2679 +e 2576 2678 2578 +e 2678 2680 2578 +e 2577 2579 2679 +e 2679 2579 2681 +e 2578 2680 2580 +e 2680 2682 2580 +e 2579 2581 2681 +e 2681 2581 2683 +e 2580 2682 2582 +e 2682 2684 2582 +e 2581 2583 2683 +e 2683 2583 2685 +e 2582 2684 2584 +e 2684 2686 2584 +e 2583 2585 2685 +e 2685 2585 2687 +e 2584 2686 2586 +e 2686 2688 2586 +e 2585 2587 2687 +e 2687 2587 2689 +e 2586 2688 2588 +e 2688 2690 2588 +e 2587 2589 2689 +e 2689 2589 2691 +e 2588 2690 2590 +e 2690 2692 2590 +e 2589 2591 2691 +e 2691 2591 2693 +e 2590 2692 2592 +e 2692 2694 2592 +e 2591 2593 2693 +e 2693 2593 2695 +e 2592 2694 2594 +e 2694 2696 2594 +e 2593 2595 2695 +e 2695 2595 2697 +e 2594 2696 2596 +e 2696 2698 2596 +e 2595 2597 2697 +e 2697 2597 2699 +e 2596 2698 2598 +e 2698 2700 2598 +e 2597 2599 2699 +e 2699 2599 2701 +e 2598 2700 2600 +e 2700 2702 2600 +e 2601 2602 2703 +e 2703 2602 2704 +e 2603 2705 2604 +e 2705 2706 2604 +e 2602 2605 2704 +e 2704 2605 2707 +e 2604 2706 2606 +e 2706 2708 2606 +e 2605 2607 2707 +e 2707 2607 2709 +e 2606 2708 2608 +e 2708 2710 2608 +e 2607 2609 2709 +e 2709 2609 2711 +e 2608 2710 2610 +e 2710 2712 2610 +e 2609 2611 2711 +e 2711 2611 2713 +e 2610 2712 2612 +e 2712 2714 2612 +e 2611 2613 2713 +e 2713 2613 2715 +e 2612 2714 2614 +e 2714 2716 2614 +e 2613 2615 2715 +e 2715 2615 2717 +e 2614 2716 2616 +e 2716 2718 2616 +e 2615 2617 2717 +e 2717 2617 2719 +e 2616 2718 2618 +e 2718 2720 2618 +e 2617 2619 2719 +e 2719 2619 2721 +e 2618 2720 2620 +e 2720 2722 2620 +e 2619 2621 2721 +e 2721 2621 2723 +e 2620 2722 2622 +e 2722 2724 2622 +e 2621 2623 2723 +e 2723 2623 2725 +e 2622 2724 2624 +e 2724 2726 2624 +e 2623 2625 2725 +e 2725 2625 2727 +e 2624 2726 2626 +e 2726 2728 2626 +e 2625 2627 2727 +e 2727 2627 2729 +e 2626 2728 2628 +e 2728 2730 2628 +e 2627 2629 2729 +e 2729 2629 2731 +e 2628 2730 2630 +e 2730 2732 2630 +e 2629 2631 2731 +e 2731 2631 2733 +e 2630 2732 2632 +e 2732 2734 2632 +e 2631 2633 2733 +e 2733 2633 2735 +e 2632 2734 2634 +e 2734 2736 2634 +e 2633 2635 2735 +e 2735 2635 2737 +e 2634 2736 2636 +e 2736 2738 2636 +e 2635 2637 2737 +e 2737 2637 2739 +e 2636 2738 2638 +e 2738 2740 2638 +e 2637 2639 2739 +e 2739 2639 2741 +e 2638 2740 2640 +e 2740 2742 2640 +e 2639 2641 2741 +e 2741 2641 2743 +e 2640 2742 2642 +e 2742 2744 2642 +e 2641 2643 2743 +e 2743 2643 2745 +e 2642 2744 2644 +e 2744 2746 2644 +e 2643 2645 2745 +e 2745 2645 2747 +e 2644 2746 2646 +e 2746 2748 2646 +e 2645 2647 2747 +e 2747 2647 2749 +e 2646 2748 2648 +e 2748 2750 2648 +e 2647 2649 2749 +e 2749 2649 2751 +e 2648 2750 2650 +e 2750 2752 2650 +e 2649 2651 2751 +e 2751 2651 2753 +e 2650 2752 2652 +e 2752 2754 2652 +e 2651 2653 2753 +e 2753 2653 2755 +e 2652 2754 2654 +e 2754 2756 2654 +e 2653 2655 2755 +e 2755 2655 2757 +e 2654 2756 2656 +e 2756 2758 2656 +e 2655 2657 2757 +e 2757 2657 2759 +e 2656 2758 2658 +e 2758 2760 2658 +e 2657 2659 2759 +e 2759 2659 2761 +e 2658 2760 2660 +e 2760 2762 2660 +e 2659 2661 2761 +e 2761 2661 2763 +e 2660 2762 2662 +e 2762 2764 2662 +e 2661 2663 2763 +e 2763 2663 2765 +e 2662 2764 2664 +e 2764 2766 2664 +e 2663 2665 2765 +e 2765 2665 2767 +e 2664 2766 2666 +e 2766 2768 2666 +e 2665 2667 2767 +e 2767 2667 2769 +e 2666 2768 2668 +e 2768 2770 2668 +e 2667 2669 2769 +e 2769 2669 2771 +e 2668 2770 2670 +e 2770 2772 2670 +e 2669 2671 2771 +e 2771 2671 2773 +e 2670 2772 2672 +e 2772 2774 2672 +e 2671 2673 2773 +e 2773 2673 2775 +e 2672 2774 2674 +e 2774 2776 2674 +e 2673 2675 2775 +e 2775 2675 2777 +e 2674 2776 2676 +e 2776 2778 2676 +e 2675 2677 2777 +e 2777 2677 2779 +e 2676 2778 2678 +e 2778 2780 2678 +e 2677 2679 2779 +e 2779 2679 2781 +e 2678 2780 2680 +e 2780 2782 2680 +e 2679 2681 2781 +e 2781 2681 2783 +e 2680 2782 2682 +e 2782 2784 2682 +e 2681 2683 2783 +e 2783 2683 2785 +e 2682 2784 2684 +e 2784 2786 2684 +e 2683 2685 2785 +e 2785 2685 2787 +e 2684 2786 2686 +e 2786 2788 2686 +e 2685 2687 2787 +e 2787 2687 2789 +e 2686 2788 2688 +e 2788 2790 2688 +e 2687 2689 2789 +e 2789 2689 2791 +e 2688 2790 2690 +e 2790 2792 2690 +e 2689 2691 2791 +e 2791 2691 2793 +e 2690 2792 2692 +e 2792 2794 2692 +e 2691 2693 2793 +e 2793 2693 2795 +e 2692 2794 2694 +e 2794 2796 2694 +e 2693 2695 2795 +e 2795 2695 2797 +e 2694 2796 2696 +e 2796 2798 2696 +e 2695 2697 2797 +e 2797 2697 2799 +e 2696 2798 2698 +e 2798 2800 2698 +e 2697 2699 2799 +e 2799 2699 2801 +e 2698 2800 2700 +e 2800 2802 2700 +e 2699 2701 2801 +e 2801 2701 2803 +e 2700 2802 2702 +e 2802 2804 2702 +e 2703 2704 2805 +e 2805 2704 2806 +e 2705 2807 2706 +e 2807 2808 2706 +e 2704 2707 2806 +e 2806 2707 2809 +e 2706 2808 2708 +e 2808 2810 2708 +e 2707 2709 2809 +e 2809 2709 2811 +e 2708 2810 2710 +e 2810 2812 2710 +e 2709 2711 2811 +e 2811 2711 2813 +e 2710 2812 2712 +e 2812 2814 2712 +e 2711 2713 2813 +e 2813 2713 2815 +e 2712 2814 2714 +e 2814 2816 2714 +e 2713 2715 2815 +e 2815 2715 2817 +e 2714 2816 2716 +e 2816 2818 2716 +e 2715 2717 2817 +e 2817 2717 2819 +e 2716 2818 2718 +e 2818 2820 2718 +e 2717 2719 2819 +e 2819 2719 2821 +e 2718 2820 2720 +e 2820 2822 2720 +e 2719 2721 2821 +e 2821 2721 2823 +e 2720 2822 2722 +e 2822 2824 2722 +e 2721 2723 2823 +e 2823 2723 2825 +e 2722 2824 2724 +e 2824 2826 2724 +e 2723 2725 2825 +e 2825 2725 2827 +e 2724 2826 2726 +e 2826 2828 2726 +e 2725 2727 2827 +e 2827 2727 2829 +e 2726 2828 2728 +e 2828 2830 2728 +e 2727 2729 2829 +e 2829 2729 2831 +e 2728 2830 2730 +e 2830 2832 2730 +e 2729 2731 2831 +e 2831 2731 2833 +e 2730 2832 2732 +e 2832 2834 2732 +e 2731 2733 2833 +e 2833 2733 2835 +e 2732 2834 2734 +e 2834 2836 2734 +e 2733 2735 2835 +e 2835 2735 2837 +e 2734 2836 2736 +e 2836 2838 2736 +e 2735 2737 2837 +e 2837 2737 2839 +e 2736 2838 2738 +e 2838 2840 2738 +e 2737 2739 2839 +e 2839 2739 2841 +e 2738 2840 2740 +e 2840 2842 2740 +e 2739 2741 2841 +e 2841 2741 2843 +e 2740 2842 2742 +e 2842 2844 2742 +e 2741 2743 2843 +e 2843 2743 2845 +e 2742 2844 2744 +e 2844 2846 2744 +e 2743 2745 2845 +e 2845 2745 2847 +e 2744 2846 2746 +e 2846 2848 2746 +e 2745 2747 2847 +e 2847 2747 2849 +e 2746 2848 2748 +e 2848 2850 2748 +e 2747 2749 2849 +e 2849 2749 2851 +e 2748 2850 2750 +e 2850 2852 2750 +e 2749 2751 2851 +e 2851 2751 2853 +e 2750 2852 2752 +e 2852 2854 2752 +e 2751 2753 2853 +e 2853 2753 2855 +e 2752 2854 2754 +e 2854 2856 2754 +e 2753 2755 2855 +e 2855 2755 2857 +e 2754 2856 2756 +e 2856 2858 2756 +e 2755 2757 2857 +e 2857 2757 2859 +e 2756 2858 2758 +e 2858 2860 2758 +e 2757 2759 2859 +e 2859 2759 2861 +e 2758 2860 2760 +e 2860 2862 2760 +e 2759 2761 2861 +e 2861 2761 2863 +e 2760 2862 2762 +e 2862 2864 2762 +e 2761 2763 2863 +e 2863 2763 2865 +e 2762 2864 2764 +e 2864 2866 2764 +e 2763 2765 2865 +e 2865 2765 2867 +e 2764 2866 2766 +e 2866 2868 2766 +e 2765 2767 2867 +e 2867 2767 2869 +e 2766 2868 2768 +e 2868 2870 2768 +e 2767 2769 2869 +e 2869 2769 2871 +e 2768 2870 2770 +e 2870 2872 2770 +e 2769 2771 2871 +e 2871 2771 2873 +e 2770 2872 2772 +e 2872 2874 2772 +e 2771 2773 2873 +e 2873 2773 2875 +e 2772 2874 2774 +e 2874 2876 2774 +e 2773 2775 2875 +e 2875 2775 2877 +e 2774 2876 2776 +e 2876 2878 2776 +e 2775 2777 2877 +e 2877 2777 2879 +e 2776 2878 2778 +e 2878 2880 2778 +e 2777 2779 2879 +e 2879 2779 2881 +e 2778 2880 2780 +e 2880 2882 2780 +e 2779 2781 2881 +e 2881 2781 2883 +e 2780 2882 2782 +e 2882 2884 2782 +e 2781 2783 2883 +e 2883 2783 2885 +e 2782 2884 2784 +e 2884 2886 2784 +e 2783 2785 2885 +e 2885 2785 2887 +e 2784 2886 2786 +e 2886 2888 2786 +e 2785 2787 2887 +e 2887 2787 2889 +e 2786 2888 2788 +e 2888 2890 2788 +e 2787 2789 2889 +e 2889 2789 2891 +e 2788 2890 2790 +e 2890 2892 2790 +e 2789 2791 2891 +e 2891 2791 2893 +e 2790 2892 2792 +e 2892 2894 2792 +e 2791 2793 2893 +e 2893 2793 2895 +e 2792 2894 2794 +e 2894 2896 2794 +e 2793 2795 2895 +e 2895 2795 2897 +e 2794 2896 2796 +e 2896 2898 2796 +e 2795 2797 2897 +e 2897 2797 2899 +e 2796 2898 2798 +e 2898 2900 2798 +e 2797 2799 2899 +e 2899 2799 2901 +e 2798 2900 2800 +e 2900 2902 2800 +e 2799 2801 2901 +e 2901 2801 2903 +e 2800 2902 2802 +e 2902 2904 2802 +e 2801 2803 2903 +e 2903 2803 2905 +e 2802 2904 2804 +e 2904 2906 2804 +e 2805 2806 2907 +e 2907 2806 2908 +e 2807 2909 2808 +e 2909 2910 2808 +e 2806 2809 2908 +e 2908 2809 2911 +e 2808 2910 2810 +e 2910 2912 2810 +e 2809 2811 2911 +e 2911 2811 2913 +e 2810 2912 2812 +e 2912 2914 2812 +e 2811 2813 2913 +e 2913 2813 2915 +e 2812 2914 2814 +e 2914 2916 2814 +e 2813 2815 2915 +e 2915 2815 2917 +e 2814 2916 2816 +e 2916 2918 2816 +e 2815 2817 2917 +e 2917 2817 2919 +e 2816 2918 2818 +e 2918 2920 2818 +e 2817 2819 2919 +e 2919 2819 2921 +e 2818 2920 2820 +e 2920 2922 2820 +e 2819 2821 2921 +e 2921 2821 2923 +e 2820 2922 2822 +e 2922 2924 2822 +e 2821 2823 2923 +e 2923 2823 2925 +e 2822 2924 2824 +e 2924 2926 2824 +e 2823 2825 2925 +e 2925 2825 2927 +e 2824 2926 2826 +e 2926 2928 2826 +e 2825 2827 2927 +e 2927 2827 2929 +e 2826 2928 2828 +e 2928 2930 2828 +e 2827 2829 2929 +e 2929 2829 2931 +e 2828 2930 2830 +e 2930 2932 2830 +e 2829 2831 2931 +e 2931 2831 2933 +e 2830 2932 2832 +e 2932 2934 2832 +e 2831 2833 2933 +e 2933 2833 2935 +e 2832 2934 2834 +e 2934 2936 2834 +e 2833 2835 2935 +e 2935 2835 2937 +e 2834 2936 2836 +e 2936 2938 2836 +e 2835 2837 2937 +e 2937 2837 2939 +e 2836 2938 2838 +e 2938 2940 2838 +e 2837 2839 2939 +e 2939 2839 2941 +e 2838 2940 2840 +e 2940 2942 2840 +e 2839 2841 2941 +e 2941 2841 2943 +e 2840 2942 2842 +e 2942 2944 2842 +e 2841 2843 2943 +e 2943 2843 2945 +e 2842 2944 2844 +e 2944 2946 2844 +e 2843 2845 2945 +e 2945 2845 2947 +e 2844 2946 2846 +e 2946 2948 2846 +e 2845 2847 2947 +e 2947 2847 2949 +e 2846 2948 2848 +e 2948 2950 2848 +e 2847 2849 2949 +e 2949 2849 2951 +e 2848 2950 2850 +e 2950 2952 2850 +e 2849 2851 2951 +e 2951 2851 2953 +e 2850 2952 2852 +e 2952 2954 2852 +e 2851 2853 2953 +e 2953 2853 2955 +e 2852 2954 2854 +e 2954 2956 2854 +e 2853 2855 2955 +e 2955 2855 2957 +e 2854 2956 2856 +e 2956 2958 2856 +e 2855 2857 2957 +e 2957 2857 2959 +e 2856 2958 2858 +e 2958 2960 2858 +e 2857 2859 2959 +e 2959 2859 2961 +e 2858 2960 2860 +e 2960 2962 2860 +e 2859 2861 2961 +e 2961 2861 2963 +e 2860 2962 2862 +e 2962 2964 2862 +e 2861 2863 2963 +e 2963 2863 2965 +e 2862 2964 2864 +e 2964 2966 2864 +e 2863 2865 2965 +e 2965 2865 2967 +e 2864 2966 2866 +e 2966 2968 2866 +e 2865 2867 2967 +e 2967 2867 2969 +e 2866 2968 2868 +e 2968 2970 2868 +e 2867 2869 2969 +e 2969 2869 2971 +e 2868 2970 2870 +e 2970 2972 2870 +e 2869 2871 2971 +e 2971 2871 2973 +e 2870 2972 2872 +e 2972 2974 2872 +e 2871 2873 2973 +e 2973 2873 2975 +e 2872 2974 2874 +e 2974 2976 2874 +e 2873 2875 2975 +e 2975 2875 2977 +e 2874 2976 2876 +e 2976 2978 2876 +e 2875 2877 2977 +e 2977 2877 2979 +e 2876 2978 2878 +e 2978 2980 2878 +e 2877 2879 2979 +e 2979 2879 2981 +e 2878 2980 2880 +e 2980 2982 2880 +e 2879 2881 2981 +e 2981 2881 2983 +e 2880 2982 2882 +e 2982 2984 2882 +e 2881 2883 2983 +e 2983 2883 2985 +e 2882 2984 2884 +e 2984 2986 2884 +e 2883 2885 2985 +e 2985 2885 2987 +e 2884 2986 2886 +e 2986 2988 2886 +e 2885 2887 2987 +e 2987 2887 2989 +e 2886 2988 2888 +e 2988 2990 2888 +e 2887 2889 2989 +e 2989 2889 2991 +e 2888 2990 2890 +e 2990 2992 2890 +e 2889 2891 2991 +e 2991 2891 2993 +e 2890 2992 2892 +e 2992 2994 2892 +e 2891 2893 2993 +e 2993 2893 2995 +e 2892 2994 2894 +e 2994 2996 2894 +e 2893 2895 2995 +e 2995 2895 2997 +e 2894 2996 2896 +e 2996 2998 2896 +e 2895 2897 2997 +e 2997 2897 2999 +e 2896 2998 2898 +e 2998 3000 2898 +e 2897 2899 2999 +e 2999 2899 3001 +e 2898 3000 2900 +e 3000 3002 2900 +e 2899 2901 3001 +e 3001 2901 3003 +e 2900 3002 2902 +e 3002 3004 2902 +e 2901 2903 3003 +e 3003 2903 3005 +e 2902 3004 2904 +e 3004 3006 2904 +e 2903 2905 3005 +e 3005 2905 3007 +e 2904 3006 2906 +e 3006 3008 2906 +e 2907 2908 3009 +e 3009 2908 3010 +e 2909 3011 2910 +e 3011 3012 2910 +e 2908 2911 3010 +e 3010 2911 3013 +e 2910 3012 2912 +e 3012 3014 2912 +e 2911 2913 3013 +e 3013 2913 3015 +e 2912 3014 2914 +e 3014 3016 2914 +e 2913 2915 3015 +e 3015 2915 3017 +e 2914 3016 2916 +e 3016 3018 2916 +e 2915 2917 3017 +e 3017 2917 3019 +e 2916 3018 2918 +e 3018 3020 2918 +e 2917 2919 3019 +e 3019 2919 3021 +e 2918 3020 2920 +e 3020 3022 2920 +e 2919 2921 3021 +e 3021 2921 3023 +e 2920 3022 2922 +e 3022 3024 2922 +e 2921 2923 3023 +e 3023 2923 3025 +e 2922 3024 2924 +e 3024 3026 2924 +e 2923 2925 3025 +e 3025 2925 3027 +e 2924 3026 2926 +e 3026 3028 2926 +e 2925 2927 3027 +e 3027 2927 3029 +e 2926 3028 2928 +e 3028 3030 2928 +e 2927 2929 3029 +e 3029 2929 3031 +e 2928 3030 2930 +e 3030 3032 2930 +e 2929 2931 3031 +e 3031 2931 3033 +e 2930 3032 2932 +e 3032 3034 2932 +e 2931 2933 3033 +e 3033 2933 3035 +e 2932 3034 2934 +e 3034 3036 2934 +e 2933 2935 3035 +e 3035 2935 3037 +e 2934 3036 2936 +e 3036 3038 2936 +e 2935 2937 3037 +e 3037 2937 3039 +e 2936 3038 2938 +e 3038 3040 2938 +e 2937 2939 3039 +e 3039 2939 3041 +e 2938 3040 2940 +e 3040 3042 2940 +e 2939 2941 3041 +e 3041 2941 3043 +e 2940 3042 2942 +e 3042 3044 2942 +e 2941 2943 3043 +e 3043 2943 3045 +e 2942 3044 2944 +e 3044 3046 2944 +e 2943 2945 3045 +e 3045 2945 3047 +e 2944 3046 2946 +e 3046 3048 2946 +e 2945 2947 3047 +e 3047 2947 3049 +e 2946 3048 2948 +e 3048 3050 2948 +e 2947 2949 3049 +e 3049 2949 3051 +e 2948 3050 2950 +e 3050 3052 2950 +e 2949 2951 3051 +e 3051 2951 3053 +e 2950 3052 2952 +e 3052 3054 2952 +e 2951 2953 3053 +e 3053 2953 3055 +e 2952 3054 2954 +e 3054 3056 2954 +e 2953 2955 3055 +e 3055 2955 3057 +e 2954 3056 2956 +e 3056 3058 2956 +e 2955 2957 3057 +e 3057 2957 3059 +e 2956 3058 2958 +e 3058 3060 2958 +e 2957 2959 3059 +e 3059 2959 3061 +e 2958 3060 2960 +e 3060 3062 2960 +e 2959 2961 3061 +e 3061 2961 3063 +e 2960 3062 2962 +e 3062 3064 2962 +e 2961 2963 3063 +e 3063 2963 3065 +e 2962 3064 2964 +e 3064 3066 2964 +e 2963 2965 3065 +e 3065 2965 3067 +e 2964 3066 2966 +e 3066 3068 2966 +e 2965 2967 3067 +e 3067 2967 3069 +e 2966 3068 2968 +e 3068 3070 2968 +e 2967 2969 3069 +e 3069 2969 3071 +e 2968 3070 2970 +e 3070 3072 2970 +e 2969 2971 3071 +e 3071 2971 3073 +e 2970 3072 2972 +e 3072 3074 2972 +e 2971 2973 3073 +e 3073 2973 3075 +e 2972 3074 2974 +e 3074 3076 2974 +e 2973 2975 3075 +e 3075 2975 3077 +e 2974 3076 2976 +e 3076 3078 2976 +e 2975 2977 3077 +e 3077 2977 3079 +e 2976 3078 2978 +e 3078 3080 2978 +e 2977 2979 3079 +e 3079 2979 3081 +e 2978 3080 2980 +e 3080 3082 2980 +e 2979 2981 3081 +e 3081 2981 3083 +e 2980 3082 2982 +e 3082 3084 2982 +e 2981 2983 3083 +e 3083 2983 3085 +e 2982 3084 2984 +e 3084 3086 2984 +e 2983 2985 3085 +e 3085 2985 3087 +e 2984 3086 2986 +e 3086 3088 2986 +e 2985 2987 3087 +e 3087 2987 3089 +e 2986 3088 2988 +e 3088 3090 2988 +e 2987 2989 3089 +e 3089 2989 3091 +e 2988 3090 2990 +e 3090 3092 2990 +e 2989 2991 3091 +e 3091 2991 3093 +e 2990 3092 2992 +e 3092 3094 2992 +e 2991 2993 3093 +e 3093 2993 3095 +e 2992 3094 2994 +e 3094 3096 2994 +e 2993 2995 3095 +e 3095 2995 3097 +e 2994 3096 2996 +e 3096 3098 2996 +e 2995 2997 3097 +e 3097 2997 3099 +e 2996 3098 2998 +e 3098 3100 2998 +e 2997 2999 3099 +e 3099 2999 3101 +e 2998 3100 3000 +e 3100 3102 3000 +e 2999 3001 3101 +e 3101 3001 3103 +e 3000 3102 3002 +e 3102 3104 3002 +e 3001 3003 3103 +e 3103 3003 3105 +e 3002 3104 3004 +e 3104 3106 3004 +e 3003 3005 3105 +e 3105 3005 3107 +e 3004 3106 3006 +e 3106 3108 3006 +e 3005 3007 3107 +e 3107 3007 3109 +e 3006 3108 3008 +e 3108 3110 3008 +e 3009 3010 3111 +e 3111 3010 3112 +e 3011 3113 3012 +e 3113 3114 3012 +e 3010 3013 3112 +e 3112 3013 3115 +e 3012 3114 3014 +e 3114 3116 3014 +e 3013 3015 3115 +e 3115 3015 3117 +e 3014 3116 3016 +e 3116 3118 3016 +e 3015 3017 3117 +e 3117 3017 3119 +e 3016 3118 3018 +e 3118 3120 3018 +e 3017 3019 3119 +e 3119 3019 3121 +e 3018 3120 3020 +e 3120 3122 3020 +e 3019 3021 3121 +e 3121 3021 3123 +e 3020 3122 3022 +e 3122 3124 3022 +e 3021 3023 3123 +e 3123 3023 3125 +e 3022 3124 3024 +e 3124 3126 3024 +e 3023 3025 3125 +e 3125 3025 3127 +e 3024 3126 3026 +e 3126 3128 3026 +e 3025 3027 3127 +e 3127 3027 3129 +e 3026 3128 3028 +e 3128 3130 3028 +e 3027 3029 3129 +e 3129 3029 3131 +e 3028 3130 3030 +e 3130 3132 3030 +e 3029 3031 3131 +e 3131 3031 3133 +e 3030 3132 3032 +e 3132 3134 3032 +e 3031 3033 3133 +e 3133 3033 3135 +e 3032 3134 3034 +e 3134 3136 3034 +e 3033 3035 3135 +e 3135 3035 3137 +e 3034 3136 3036 +e 3136 3138 3036 +e 3035 3037 3137 +e 3137 3037 3139 +e 3036 3138 3038 +e 3138 3140 3038 +e 3037 3039 3139 +e 3139 3039 3141 +e 3038 3140 3040 +e 3140 3142 3040 +e 3039 3041 3141 +e 3141 3041 3143 +e 3040 3142 3042 +e 3142 3144 3042 +e 3041 3043 3143 +e 3143 3043 3145 +e 3042 3144 3044 +e 3144 3146 3044 +e 3043 3045 3145 +e 3145 3045 3147 +e 3044 3146 3046 +e 3146 3148 3046 +e 3045 3047 3147 +e 3147 3047 3149 +e 3046 3148 3048 +e 3148 3150 3048 +e 3047 3049 3149 +e 3149 3049 3151 +e 3048 3150 3050 +e 3150 3152 3050 +e 3049 3051 3151 +e 3151 3051 3153 +e 3050 3152 3052 +e 3152 3154 3052 +e 3051 3053 3153 +e 3153 3053 3155 +e 3052 3154 3054 +e 3154 3156 3054 +e 3053 3055 3155 +e 3155 3055 3157 +e 3054 3156 3056 +e 3156 3158 3056 +e 3055 3057 3157 +e 3157 3057 3159 +e 3056 3158 3058 +e 3158 3160 3058 +e 3057 3059 3159 +e 3159 3059 3161 +e 3058 3160 3060 +e 3160 3162 3060 +e 3059 3061 3161 +e 3161 3061 3163 +e 3060 3162 3062 +e 3162 3164 3062 +e 3061 3063 3163 +e 3163 3063 3165 +e 3062 3164 3064 +e 3164 3166 3064 +e 3063 3065 3165 +e 3165 3065 3167 +e 3064 3166 3066 +e 3166 3168 3066 +e 3065 3067 3167 +e 3167 3067 3169 +e 3066 3168 3068 +e 3168 3170 3068 +e 3067 3069 3169 +e 3169 3069 3171 +e 3068 3170 3070 +e 3170 3172 3070 +e 3069 3071 3171 +e 3171 3071 3173 +e 3070 3172 3072 +e 3172 3174 3072 +e 3071 3073 3173 +e 3173 3073 3175 +e 3072 3174 3074 +e 3174 3176 3074 +e 3073 3075 3175 +e 3175 3075 3177 +e 3074 3176 3076 +e 3176 3178 3076 +e 3075 3077 3177 +e 3177 3077 3179 +e 3076 3178 3078 +e 3178 3180 3078 +e 3077 3079 3179 +e 3179 3079 3181 +e 3078 3180 3080 +e 3180 3182 3080 +e 3079 3081 3181 +e 3181 3081 3183 +e 3080 3182 3082 +e 3182 3184 3082 +e 3081 3083 3183 +e 3183 3083 3185 +e 3082 3184 3084 +e 3184 3186 3084 +e 3083 3085 3185 +e 3185 3085 3187 +e 3084 3186 3086 +e 3186 3188 3086 +e 3085 3087 3187 +e 3187 3087 3189 +e 3086 3188 3088 +e 3188 3190 3088 +e 3087 3089 3189 +e 3189 3089 3191 +e 3088 3190 3090 +e 3190 3192 3090 +e 3089 3091 3191 +e 3191 3091 3193 +e 3090 3192 3092 +e 3192 3194 3092 +e 3091 3093 3193 +e 3193 3093 3195 +e 3092 3194 3094 +e 3194 3196 3094 +e 3093 3095 3195 +e 3195 3095 3197 +e 3094 3196 3096 +e 3196 3198 3096 +e 3095 3097 3197 +e 3197 3097 3199 +e 3096 3198 3098 +e 3198 3200 3098 +e 3097 3099 3199 +e 3199 3099 3201 +e 3098 3200 3100 +e 3200 3202 3100 +e 3099 3101 3201 +e 3201 3101 3203 +e 3100 3202 3102 +e 3202 3204 3102 +e 3101 3103 3203 +e 3203 3103 3205 +e 3102 3204 3104 +e 3204 3206 3104 +e 3103 3105 3205 +e 3205 3105 3207 +e 3104 3206 3106 +e 3206 3208 3106 +e 3105 3107 3207 +e 3207 3107 3209 +e 3106 3208 3108 +e 3208 3210 3108 +e 3107 3109 3209 +e 3209 3109 3211 +e 3108 3210 3110 +e 3210 3212 3110 +e 3111 3112 3213 +e 3213 3112 3214 +e 3113 3215 3114 +e 3215 3216 3114 +e 3112 3115 3214 +e 3214 3115 3217 +e 3114 3216 3116 +e 3216 3218 3116 +e 3115 3117 3217 +e 3217 3117 3219 +e 3116 3218 3118 +e 3218 3220 3118 +e 3117 3119 3219 +e 3219 3119 3221 +e 3118 3220 3120 +e 3220 3222 3120 +e 3119 3121 3221 +e 3221 3121 3223 +e 3120 3222 3122 +e 3222 3224 3122 +e 3121 3123 3223 +e 3223 3123 3225 +e 3122 3224 3124 +e 3224 3226 3124 +e 3123 3125 3225 +e 3225 3125 3227 +e 3124 3226 3126 +e 3226 3228 3126 +e 3125 3127 3227 +e 3227 3127 3229 +e 3126 3228 3128 +e 3228 3230 3128 +e 3127 3129 3229 +e 3229 3129 3231 +e 3128 3230 3130 +e 3230 3232 3130 +e 3129 3131 3231 +e 3231 3131 3233 +e 3130 3232 3132 +e 3232 3234 3132 +e 3131 3133 3233 +e 3233 3133 3235 +e 3132 3234 3134 +e 3234 3236 3134 +e 3133 3135 3235 +e 3235 3135 3237 +e 3134 3236 3136 +e 3236 3238 3136 +e 3135 3137 3237 +e 3237 3137 3239 +e 3136 3238 3138 +e 3238 3240 3138 +e 3137 3139 3239 +e 3239 3139 3241 +e 3138 3240 3140 +e 3240 3242 3140 +e 3139 3141 3241 +e 3241 3141 3243 +e 3140 3242 3142 +e 3242 3244 3142 +e 3141 3143 3243 +e 3243 3143 3245 +e 3142 3244 3144 +e 3244 3246 3144 +e 3143 3145 3245 +e 3245 3145 3247 +e 3144 3246 3146 +e 3246 3248 3146 +e 3145 3147 3247 +e 3247 3147 3249 +e 3146 3248 3148 +e 3248 3250 3148 +e 3147 3149 3249 +e 3249 3149 3251 +e 3148 3250 3150 +e 3250 3252 3150 +e 3149 3151 3251 +e 3251 3151 3253 +e 3150 3252 3152 +e 3252 3254 3152 +e 3151 3153 3253 +e 3253 3153 3255 +e 3152 3254 3154 +e 3254 3256 3154 +e 3153 3155 3255 +e 3255 3155 3257 +e 3154 3256 3156 +e 3256 3258 3156 +e 3155 3157 3257 +e 3257 3157 3259 +e 3156 3258 3158 +e 3258 3260 3158 +e 3157 3159 3259 +e 3259 3159 3261 +e 3158 3260 3160 +e 3260 3262 3160 +e 3159 3161 3261 +e 3261 3161 3263 +e 3160 3262 3162 +e 3262 3264 3162 +e 3161 3163 3263 +e 3263 3163 3265 +e 3162 3264 3164 +e 3264 3266 3164 +e 3163 3165 3265 +e 3265 3165 3267 +e 3164 3266 3166 +e 3266 3268 3166 +e 3165 3167 3267 +e 3267 3167 3269 +e 3166 3268 3168 +e 3268 3270 3168 +e 3167 3169 3269 +e 3269 3169 3271 +e 3168 3270 3170 +e 3270 3272 3170 +e 3169 3171 3271 +e 3271 3171 3273 +e 3170 3272 3172 +e 3272 3274 3172 +e 3171 3173 3273 +e 3273 3173 3275 +e 3172 3274 3174 +e 3274 3276 3174 +e 3173 3175 3275 +e 3275 3175 3277 +e 3174 3276 3176 +e 3276 3278 3176 +e 3175 3177 3277 +e 3277 3177 3279 +e 3176 3278 3178 +e 3278 3280 3178 +e 3177 3179 3279 +e 3279 3179 3281 +e 3178 3280 3180 +e 3280 3282 3180 +e 3179 3181 3281 +e 3281 3181 3283 +e 3180 3282 3182 +e 3282 3284 3182 +e 3181 3183 3283 +e 3283 3183 3285 +e 3182 3284 3184 +e 3284 3286 3184 +e 3183 3185 3285 +e 3285 3185 3287 +e 3184 3286 3186 +e 3286 3288 3186 +e 3185 3187 3287 +e 3287 3187 3289 +e 3186 3288 3188 +e 3288 3290 3188 +e 3187 3189 3289 +e 3289 3189 3291 +e 3188 3290 3190 +e 3290 3292 3190 +e 3189 3191 3291 +e 3291 3191 3293 +e 3190 3292 3192 +e 3292 3294 3192 +e 3191 3193 3293 +e 3293 3193 3295 +e 3192 3294 3194 +e 3294 3296 3194 +e 3193 3195 3295 +e 3295 3195 3297 +e 3194 3296 3196 +e 3296 3298 3196 +e 3195 3197 3297 +e 3297 3197 3299 +e 3196 3298 3198 +e 3298 3300 3198 +e 3197 3199 3299 +e 3299 3199 3301 +e 3198 3300 3200 +e 3300 3302 3200 +e 3199 3201 3301 +e 3301 3201 3303 +e 3200 3302 3202 +e 3302 3304 3202 +e 3201 3203 3303 +e 3303 3203 3305 +e 3202 3304 3204 +e 3304 3306 3204 +e 3203 3205 3305 +e 3305 3205 3307 +e 3204 3306 3206 +e 3306 3308 3206 +e 3205 3207 3307 +e 3307 3207 3309 +e 3206 3308 3208 +e 3308 3310 3208 +e 3207 3209 3309 +e 3309 3209 3311 +e 3208 3310 3210 +e 3310 3312 3210 +e 3209 3211 3311 +e 3311 3211 3313 +e 3210 3312 3212 +e 3312 3314 3212 +e 3213 3214 3315 +e 3315 3214 3316 +e 3215 3317 3216 +e 3317 3318 3216 +e 3214 3217 3316 +e 3316 3217 3319 +e 3216 3318 3218 +e 3318 3320 3218 +e 3217 3219 3319 +e 3319 3219 3321 +e 3218 3320 3220 +e 3320 3322 3220 +e 3219 3221 3321 +e 3321 3221 3323 +e 3220 3322 3222 +e 3322 3324 3222 +e 3221 3223 3323 +e 3323 3223 3325 +e 3222 3324 3224 +e 3324 3326 3224 +e 3223 3225 3325 +e 3325 3225 3327 +e 3224 3326 3226 +e 3326 3328 3226 +e 3225 3227 3327 +e 3327 3227 3329 +e 3226 3328 3228 +e 3328 3330 3228 +e 3227 3229 3329 +e 3329 3229 3331 +e 3228 3330 3230 +e 3330 3332 3230 +e 3229 3231 3331 +e 3331 3231 3333 +e 3230 3332 3232 +e 3332 3334 3232 +e 3231 3233 3333 +e 3333 3233 3335 +e 3232 3334 3234 +e 3334 3336 3234 +e 3233 3235 3335 +e 3335 3235 3337 +e 3234 3336 3236 +e 3336 3338 3236 +e 3235 3237 3337 +e 3337 3237 3339 +e 3236 3338 3238 +e 3338 3340 3238 +e 3237 3239 3339 +e 3339 3239 3341 +e 3238 3340 3240 +e 3340 3342 3240 +e 3239 3241 3341 +e 3341 3241 3343 +e 3240 3342 3242 +e 3342 3344 3242 +e 3241 3243 3343 +e 3343 3243 3345 +e 3242 3344 3244 +e 3344 3346 3244 +e 3243 3245 3345 +e 3345 3245 3347 +e 3244 3346 3246 +e 3346 3348 3246 +e 3245 3247 3347 +e 3347 3247 3349 +e 3246 3348 3248 +e 3348 3350 3248 +e 3247 3249 3349 +e 3349 3249 3351 +e 3248 3350 3250 +e 3350 3352 3250 +e 3249 3251 3351 +e 3351 3251 3353 +e 3250 3352 3252 +e 3352 3354 3252 +e 3251 3253 3353 +e 3353 3253 3355 +e 3252 3354 3254 +e 3354 3356 3254 +e 3253 3255 3355 +e 3355 3255 3357 +e 3254 3356 3256 +e 3356 3358 3256 +e 3255 3257 3357 +e 3357 3257 3359 +e 3256 3358 3258 +e 3358 3360 3258 +e 3257 3259 3359 +e 3359 3259 3361 +e 3258 3360 3260 +e 3360 3362 3260 +e 3259 3261 3361 +e 3361 3261 3363 +e 3260 3362 3262 +e 3362 3364 3262 +e 3261 3263 3363 +e 3363 3263 3365 +e 3262 3364 3264 +e 3364 3366 3264 +e 3263 3265 3365 +e 3365 3265 3367 +e 3264 3366 3266 +e 3366 3368 3266 +e 3265 3267 3367 +e 3367 3267 3369 +e 3266 3368 3268 +e 3368 3370 3268 +e 3267 3269 3369 +e 3369 3269 3371 +e 3268 3370 3270 +e 3370 3372 3270 +e 3269 3271 3371 +e 3371 3271 3373 +e 3270 3372 3272 +e 3372 3374 3272 +e 3271 3273 3373 +e 3373 3273 3375 +e 3272 3374 3274 +e 3374 3376 3274 +e 3273 3275 3375 +e 3375 3275 3377 +e 3274 3376 3276 +e 3376 3378 3276 +e 3275 3277 3377 +e 3377 3277 3379 +e 3276 3378 3278 +e 3378 3380 3278 +e 3277 3279 3379 +e 3379 3279 3381 +e 3278 3380 3280 +e 3380 3382 3280 +e 3279 3281 3381 +e 3381 3281 3383 +e 3280 3382 3282 +e 3382 3384 3282 +e 3281 3283 3383 +e 3383 3283 3385 +e 3282 3384 3284 +e 3384 3386 3284 +e 3283 3285 3385 +e 3385 3285 3387 +e 3284 3386 3286 +e 3386 3388 3286 +e 3285 3287 3387 +e 3387 3287 3389 +e 3286 3388 3288 +e 3388 3390 3288 +e 3287 3289 3389 +e 3389 3289 3391 +e 3288 3390 3290 +e 3390 3392 3290 +e 3289 3291 3391 +e 3391 3291 3393 +e 3290 3392 3292 +e 3392 3394 3292 +e 3291 3293 3393 +e 3393 3293 3395 +e 3292 3394 3294 +e 3394 3396 3294 +e 3293 3295 3395 +e 3395 3295 3397 +e 3294 3396 3296 +e 3396 3398 3296 +e 3295 3297 3397 +e 3397 3297 3399 +e 3296 3398 3298 +e 3398 3400 3298 +e 3297 3299 3399 +e 3399 3299 3401 +e 3298 3400 3300 +e 3400 3402 3300 +e 3299 3301 3401 +e 3401 3301 3403 +e 3300 3402 3302 +e 3402 3404 3302 +e 3301 3303 3403 +e 3403 3303 3405 +e 3302 3404 3304 +e 3404 3406 3304 +e 3303 3305 3405 +e 3405 3305 3407 +e 3304 3406 3306 +e 3406 3408 3306 +e 3305 3307 3407 +e 3407 3307 3409 +e 3306 3408 3308 +e 3408 3410 3308 +e 3307 3309 3409 +e 3409 3309 3411 +e 3308 3410 3310 +e 3410 3412 3310 +e 3309 3311 3411 +e 3411 3311 3413 +e 3310 3412 3312 +e 3412 3414 3312 +e 3311 3313 3413 +e 3413 3313 3415 +e 3312 3414 3314 +e 3414 3416 3314 +e 3315 3316 3417 +e 3417 3316 3418 +e 3317 3419 3318 +e 3419 3420 3318 +e 3316 3319 3418 +e 3418 3319 3421 +e 3318 3420 3320 +e 3420 3422 3320 +e 3319 3321 3421 +e 3421 3321 3423 +e 3320 3422 3322 +e 3422 3424 3322 +e 3321 3323 3423 +e 3423 3323 3425 +e 3322 3424 3324 +e 3424 3426 3324 +e 3323 3325 3425 +e 3425 3325 3427 +e 3324 3426 3326 +e 3426 3428 3326 +e 3325 3327 3427 +e 3427 3327 3429 +e 3326 3428 3328 +e 3428 3430 3328 +e 3327 3329 3429 +e 3429 3329 3431 +e 3328 3430 3330 +e 3430 3432 3330 +e 3329 3331 3431 +e 3431 3331 3433 +e 3330 3432 3332 +e 3432 3434 3332 +e 3331 3333 3433 +e 3433 3333 3435 +e 3332 3434 3334 +e 3434 3436 3334 +e 3333 3335 3435 +e 3435 3335 3437 +e 3334 3436 3336 +e 3436 3438 3336 +e 3335 3337 3437 +e 3437 3337 3439 +e 3336 3438 3338 +e 3438 3440 3338 +e 3337 3339 3439 +e 3439 3339 3441 +e 3338 3440 3340 +e 3440 3442 3340 +e 3339 3341 3441 +e 3441 3341 3443 +e 3340 3442 3342 +e 3442 3444 3342 +e 3341 3343 3443 +e 3443 3343 3445 +e 3342 3444 3344 +e 3444 3446 3344 +e 3343 3345 3445 +e 3445 3345 3447 +e 3344 3446 3346 +e 3446 3448 3346 +e 3345 3347 3447 +e 3447 3347 3449 +e 3346 3448 3348 +e 3448 3450 3348 +e 3347 3349 3449 +e 3449 3349 3451 +e 3348 3450 3350 +e 3450 3452 3350 +e 3349 3351 3451 +e 3451 3351 3453 +e 3350 3452 3352 +e 3452 3454 3352 +e 3351 3353 3453 +e 3453 3353 3455 +e 3352 3454 3354 +e 3454 3456 3354 +e 3353 3355 3455 +e 3455 3355 3457 +e 3354 3456 3356 +e 3456 3458 3356 +e 3355 3357 3457 +e 3457 3357 3459 +e 3356 3458 3358 +e 3458 3460 3358 +e 3357 3359 3459 +e 3459 3359 3461 +e 3358 3460 3360 +e 3460 3462 3360 +e 3359 3361 3461 +e 3461 3361 3463 +e 3360 3462 3362 +e 3462 3464 3362 +e 3361 3363 3463 +e 3463 3363 3465 +e 3362 3464 3364 +e 3464 3466 3364 +e 3363 3365 3465 +e 3465 3365 3467 +e 3364 3466 3366 +e 3466 3468 3366 +e 3365 3367 3467 +e 3467 3367 3469 +e 3366 3468 3368 +e 3468 3470 3368 +e 3367 3369 3469 +e 3469 3369 3471 +e 3368 3470 3370 +e 3470 3472 3370 +e 3369 3371 3471 +e 3471 3371 3473 +e 3370 3472 3372 +e 3472 3474 3372 +e 3371 3373 3473 +e 3473 3373 3475 +e 3372 3474 3374 +e 3474 3476 3374 +e 3373 3375 3475 +e 3475 3375 3477 +e 3374 3476 3376 +e 3476 3478 3376 +e 3375 3377 3477 +e 3477 3377 3479 +e 3376 3478 3378 +e 3478 3480 3378 +e 3377 3379 3479 +e 3479 3379 3481 +e 3378 3480 3380 +e 3480 3482 3380 +e 3379 3381 3481 +e 3481 3381 3483 +e 3380 3482 3382 +e 3482 3484 3382 +e 3381 3383 3483 +e 3483 3383 3485 +e 3382 3484 3384 +e 3484 3486 3384 +e 3383 3385 3485 +e 3485 3385 3487 +e 3384 3486 3386 +e 3486 3488 3386 +e 3385 3387 3487 +e 3487 3387 3489 +e 3386 3488 3388 +e 3488 3490 3388 +e 3387 3389 3489 +e 3489 3389 3491 +e 3388 3490 3390 +e 3490 3492 3390 +e 3389 3391 3491 +e 3491 3391 3493 +e 3390 3492 3392 +e 3492 3494 3392 +e 3391 3393 3493 +e 3493 3393 3495 +e 3392 3494 3394 +e 3494 3496 3394 +e 3393 3395 3495 +e 3495 3395 3497 +e 3394 3496 3396 +e 3496 3498 3396 +e 3395 3397 3497 +e 3497 3397 3499 +e 3396 3498 3398 +e 3498 3500 3398 +e 3397 3399 3499 +e 3499 3399 3501 +e 3398 3500 3400 +e 3500 3502 3400 +e 3399 3401 3501 +e 3501 3401 3503 +e 3400 3502 3402 +e 3502 3504 3402 +e 3401 3403 3503 +e 3503 3403 3505 +e 3402 3504 3404 +e 3504 3506 3404 +e 3403 3405 3505 +e 3505 3405 3507 +e 3404 3506 3406 +e 3506 3508 3406 +e 3405 3407 3507 +e 3507 3407 3509 +e 3406 3508 3408 +e 3508 3510 3408 +e 3407 3409 3509 +e 3509 3409 3511 +e 3408 3510 3410 +e 3510 3512 3410 +e 3409 3411 3511 +e 3511 3411 3513 +e 3410 3512 3412 +e 3512 3514 3412 +e 3411 3413 3513 +e 3513 3413 3515 +e 3412 3514 3414 +e 3514 3516 3414 +e 3413 3415 3515 +e 3515 3415 3517 +e 3414 3516 3416 +e 3516 3518 3416 +e 3417 3418 3519 +e 3519 3418 3520 +e 3419 3521 3420 +e 3521 3522 3420 +e 3418 3421 3520 +e 3520 3421 3523 +e 3420 3522 3422 +e 3522 3524 3422 +e 3421 3423 3523 +e 3523 3423 3525 +e 3422 3524 3424 +e 3524 3526 3424 +e 3423 3425 3525 +e 3525 3425 3527 +e 3424 3526 3426 +e 3526 3528 3426 +e 3425 3427 3527 +e 3527 3427 3529 +e 3426 3528 3428 +e 3528 3530 3428 +e 3427 3429 3529 +e 3529 3429 3531 +e 3428 3530 3430 +e 3530 3532 3430 +e 3429 3431 3531 +e 3531 3431 3533 +e 3430 3532 3432 +e 3532 3534 3432 +e 3431 3433 3533 +e 3533 3433 3535 +e 3432 3534 3434 +e 3534 3536 3434 +e 3433 3435 3535 +e 3535 3435 3537 +e 3434 3536 3436 +e 3536 3538 3436 +e 3435 3437 3537 +e 3537 3437 3539 +e 3436 3538 3438 +e 3538 3540 3438 +e 3437 3439 3539 +e 3539 3439 3541 +e 3438 3540 3440 +e 3540 3542 3440 +e 3439 3441 3541 +e 3541 3441 3543 +e 3440 3542 3442 +e 3542 3544 3442 +e 3441 3443 3543 +e 3543 3443 3545 +e 3442 3544 3444 +e 3544 3546 3444 +e 3443 3445 3545 +e 3545 3445 3547 +e 3444 3546 3446 +e 3546 3548 3446 +e 3445 3447 3547 +e 3547 3447 3549 +e 3446 3548 3448 +e 3548 3550 3448 +e 3447 3449 3549 +e 3549 3449 3551 +e 3448 3550 3450 +e 3550 3552 3450 +e 3449 3451 3551 +e 3551 3451 3553 +e 3450 3552 3452 +e 3552 3554 3452 +e 3451 3453 3553 +e 3553 3453 3555 +e 3452 3554 3454 +e 3554 3556 3454 +e 3453 3455 3555 +e 3555 3455 3557 +e 3454 3556 3456 +e 3556 3558 3456 +e 3455 3457 3557 +e 3557 3457 3559 +e 3456 3558 3458 +e 3558 3560 3458 +e 3457 3459 3559 +e 3559 3459 3561 +e 3458 3560 3460 +e 3560 3562 3460 +e 3459 3461 3561 +e 3561 3461 3563 +e 3460 3562 3462 +e 3562 3564 3462 +e 3461 3463 3563 +e 3563 3463 3565 +e 3462 3564 3464 +e 3564 3566 3464 +e 3463 3465 3565 +e 3565 3465 3567 +e 3464 3566 3466 +e 3566 3568 3466 +e 3465 3467 3567 +e 3567 3467 3569 +e 3466 3568 3468 +e 3568 3570 3468 +e 3467 3469 3569 +e 3569 3469 3571 +e 3468 3570 3470 +e 3570 3572 3470 +e 3469 3471 3571 +e 3571 3471 3573 +e 3470 3572 3472 +e 3572 3574 3472 +e 3471 3473 3573 +e 3573 3473 3575 +e 3472 3574 3474 +e 3574 3576 3474 +e 3473 3475 3575 +e 3575 3475 3577 +e 3474 3576 3476 +e 3576 3578 3476 +e 3475 3477 3577 +e 3577 3477 3579 +e 3476 3578 3478 +e 3578 3580 3478 +e 3477 3479 3579 +e 3579 3479 3581 +e 3478 3580 3480 +e 3580 3582 3480 +e 3479 3481 3581 +e 3581 3481 3583 +e 3480 3582 3482 +e 3582 3584 3482 +e 3481 3483 3583 +e 3583 3483 3585 +e 3482 3584 3484 +e 3584 3586 3484 +e 3483 3485 3585 +e 3585 3485 3587 +e 3484 3586 3486 +e 3586 3588 3486 +e 3485 3487 3587 +e 3587 3487 3589 +e 3486 3588 3488 +e 3588 3590 3488 +e 3487 3489 3589 +e 3589 3489 3591 +e 3488 3590 3490 +e 3590 3592 3490 +e 3489 3491 3591 +e 3591 3491 3593 +e 3490 3592 3492 +e 3592 3594 3492 +e 3491 3493 3593 +e 3593 3493 3595 +e 3492 3594 3494 +e 3594 3596 3494 +e 3493 3495 3595 +e 3595 3495 3597 +e 3494 3596 3496 +e 3596 3598 3496 +e 3495 3497 3597 +e 3597 3497 3599 +e 3496 3598 3498 +e 3598 3600 3498 +e 3497 3499 3599 +e 3599 3499 3601 +e 3498 3600 3500 +e 3600 3602 3500 +e 3499 3501 3601 +e 3601 3501 3603 +e 3500 3602 3502 +e 3602 3604 3502 +e 3501 3503 3603 +e 3603 3503 3605 +e 3502 3604 3504 +e 3604 3606 3504 +e 3503 3505 3605 +e 3605 3505 3607 +e 3504 3606 3506 +e 3606 3608 3506 +e 3505 3507 3607 +e 3607 3507 3609 +e 3506 3608 3508 +e 3608 3610 3508 +e 3507 3509 3609 +e 3609 3509 3611 +e 3508 3610 3510 +e 3610 3612 3510 +e 3509 3511 3611 +e 3611 3511 3613 +e 3510 3612 3512 +e 3612 3614 3512 +e 3511 3513 3613 +e 3613 3513 3615 +e 3512 3614 3514 +e 3614 3616 3514 +e 3513 3515 3615 +e 3615 3515 3617 +e 3514 3616 3516 +e 3616 3618 3516 +e 3515 3517 3617 +e 3617 3517 3619 +e 3516 3618 3518 +e 3618 3620 3518 +e 3519 3520 3621 +e 3621 3520 3622 +e 3521 3623 3522 +e 3623 3624 3522 +e 3520 3523 3622 +e 3622 3523 3625 +e 3522 3624 3524 +e 3624 3626 3524 +e 3523 3525 3625 +e 3625 3525 3627 +e 3524 3626 3526 +e 3626 3628 3526 +e 3525 3527 3627 +e 3627 3527 3629 +e 3526 3628 3528 +e 3628 3630 3528 +e 3527 3529 3629 +e 3629 3529 3631 +e 3528 3630 3530 +e 3630 3632 3530 +e 3529 3531 3631 +e 3631 3531 3633 +e 3530 3632 3532 +e 3632 3634 3532 +e 3531 3533 3633 +e 3633 3533 3635 +e 3532 3634 3534 +e 3634 3636 3534 +e 3533 3535 3635 +e 3635 3535 3637 +e 3534 3636 3536 +e 3636 3638 3536 +e 3535 3537 3637 +e 3637 3537 3639 +e 3536 3638 3538 +e 3638 3640 3538 +e 3537 3539 3639 +e 3639 3539 3641 +e 3538 3640 3540 +e 3640 3642 3540 +e 3539 3541 3641 +e 3641 3541 3643 +e 3540 3642 3542 +e 3642 3644 3542 +e 3541 3543 3643 +e 3643 3543 3645 +e 3542 3644 3544 +e 3644 3646 3544 +e 3543 3545 3645 +e 3645 3545 3647 +e 3544 3646 3546 +e 3646 3648 3546 +e 3545 3547 3647 +e 3647 3547 3649 +e 3546 3648 3548 +e 3648 3650 3548 +e 3547 3549 3649 +e 3649 3549 3651 +e 3548 3650 3550 +e 3650 3652 3550 +e 3549 3551 3651 +e 3651 3551 3653 +e 3550 3652 3552 +e 3652 3654 3552 +e 3551 3553 3653 +e 3653 3553 3655 +e 3552 3654 3554 +e 3654 3656 3554 +e 3553 3555 3655 +e 3655 3555 3657 +e 3554 3656 3556 +e 3656 3658 3556 +e 3555 3557 3657 +e 3657 3557 3659 +e 3556 3658 3558 +e 3658 3660 3558 +e 3557 3559 3659 +e 3659 3559 3661 +e 3558 3660 3560 +e 3660 3662 3560 +e 3559 3561 3661 +e 3661 3561 3663 +e 3560 3662 3562 +e 3662 3664 3562 +e 3561 3563 3663 +e 3663 3563 3665 +e 3562 3664 3564 +e 3664 3666 3564 +e 3563 3565 3665 +e 3665 3565 3667 +e 3564 3666 3566 +e 3666 3668 3566 +e 3565 3567 3667 +e 3667 3567 3669 +e 3566 3668 3568 +e 3668 3670 3568 +e 3567 3569 3669 +e 3669 3569 3671 +e 3568 3670 3570 +e 3670 3672 3570 +e 3569 3571 3671 +e 3671 3571 3673 +e 3570 3672 3572 +e 3672 3674 3572 +e 3571 3573 3673 +e 3673 3573 3675 +e 3572 3674 3574 +e 3674 3676 3574 +e 3573 3575 3675 +e 3675 3575 3677 +e 3574 3676 3576 +e 3676 3678 3576 +e 3575 3577 3677 +e 3677 3577 3679 +e 3576 3678 3578 +e 3678 3680 3578 +e 3577 3579 3679 +e 3679 3579 3681 +e 3578 3680 3580 +e 3680 3682 3580 +e 3579 3581 3681 +e 3681 3581 3683 +e 3580 3682 3582 +e 3682 3684 3582 +e 3581 3583 3683 +e 3683 3583 3685 +e 3582 3684 3584 +e 3684 3686 3584 +e 3583 3585 3685 +e 3685 3585 3687 +e 3584 3686 3586 +e 3686 3688 3586 +e 3585 3587 3687 +e 3687 3587 3689 +e 3586 3688 3588 +e 3688 3690 3588 +e 3587 3589 3689 +e 3689 3589 3691 +e 3588 3690 3590 +e 3690 3692 3590 +e 3589 3591 3691 +e 3691 3591 3693 +e 3590 3692 3592 +e 3692 3694 3592 +e 3591 3593 3693 +e 3693 3593 3695 +e 3592 3694 3594 +e 3694 3696 3594 +e 3593 3595 3695 +e 3695 3595 3697 +e 3594 3696 3596 +e 3696 3698 3596 +e 3595 3597 3697 +e 3697 3597 3699 +e 3596 3698 3598 +e 3698 3700 3598 +e 3597 3599 3699 +e 3699 3599 3701 +e 3598 3700 3600 +e 3700 3702 3600 +e 3599 3601 3701 +e 3701 3601 3703 +e 3600 3702 3602 +e 3702 3704 3602 +e 3601 3603 3703 +e 3703 3603 3705 +e 3602 3704 3604 +e 3704 3706 3604 +e 3603 3605 3705 +e 3705 3605 3707 +e 3604 3706 3606 +e 3706 3708 3606 +e 3605 3607 3707 +e 3707 3607 3709 +e 3606 3708 3608 +e 3708 3710 3608 +e 3607 3609 3709 +e 3709 3609 3711 +e 3608 3710 3610 +e 3710 3712 3610 +e 3609 3611 3711 +e 3711 3611 3713 +e 3610 3712 3612 +e 3712 3714 3612 +e 3611 3613 3713 +e 3713 3613 3715 +e 3612 3714 3614 +e 3714 3716 3614 +e 3613 3615 3715 +e 3715 3615 3717 +e 3614 3716 3616 +e 3716 3718 3616 +e 3615 3617 3717 +e 3717 3617 3719 +e 3616 3718 3618 +e 3718 3720 3618 +e 3617 3619 3719 +e 3719 3619 3721 +e 3618 3720 3620 +e 3720 3722 3620 +e 3621 3622 3723 +e 3723 3622 3724 +e 3623 3725 3624 +e 3725 3726 3624 +e 3622 3625 3724 +e 3724 3625 3727 +e 3624 3726 3626 +e 3726 3728 3626 +e 3625 3627 3727 +e 3727 3627 3729 +e 3626 3728 3628 +e 3728 3730 3628 +e 3627 3629 3729 +e 3729 3629 3731 +e 3628 3730 3630 +e 3730 3732 3630 +e 3629 3631 3731 +e 3731 3631 3733 +e 3630 3732 3632 +e 3732 3734 3632 +e 3631 3633 3733 +e 3733 3633 3735 +e 3632 3734 3634 +e 3734 3736 3634 +e 3633 3635 3735 +e 3735 3635 3737 +e 3634 3736 3636 +e 3736 3738 3636 +e 3635 3637 3737 +e 3737 3637 3739 +e 3636 3738 3638 +e 3738 3740 3638 +e 3637 3639 3739 +e 3739 3639 3741 +e 3638 3740 3640 +e 3740 3742 3640 +e 3639 3641 3741 +e 3741 3641 3743 +e 3640 3742 3642 +e 3742 3744 3642 +e 3641 3643 3743 +e 3743 3643 3745 +e 3642 3744 3644 +e 3744 3746 3644 +e 3643 3645 3745 +e 3745 3645 3747 +e 3644 3746 3646 +e 3746 3748 3646 +e 3645 3647 3747 +e 3747 3647 3749 +e 3646 3748 3648 +e 3748 3750 3648 +e 3647 3649 3749 +e 3749 3649 3751 +e 3648 3750 3650 +e 3750 3752 3650 +e 3649 3651 3751 +e 3751 3651 3753 +e 3650 3752 3652 +e 3752 3754 3652 +e 3651 3653 3753 +e 3753 3653 3755 +e 3652 3754 3654 +e 3754 3756 3654 +e 3653 3655 3755 +e 3755 3655 3757 +e 3654 3756 3656 +e 3756 3758 3656 +e 3655 3657 3757 +e 3757 3657 3759 +e 3656 3758 3658 +e 3758 3760 3658 +e 3657 3659 3759 +e 3759 3659 3761 +e 3658 3760 3660 +e 3760 3762 3660 +e 3659 3661 3761 +e 3761 3661 3763 +e 3660 3762 3662 +e 3762 3764 3662 +e 3661 3663 3763 +e 3763 3663 3765 +e 3662 3764 3664 +e 3764 3766 3664 +e 3663 3665 3765 +e 3765 3665 3767 +e 3664 3766 3666 +e 3766 3768 3666 +e 3665 3667 3767 +e 3767 3667 3769 +e 3666 3768 3668 +e 3768 3770 3668 +e 3667 3669 3769 +e 3769 3669 3771 +e 3668 3770 3670 +e 3770 3772 3670 +e 3669 3671 3771 +e 3771 3671 3773 +e 3670 3772 3672 +e 3772 3774 3672 +e 3671 3673 3773 +e 3773 3673 3775 +e 3672 3774 3674 +e 3774 3776 3674 +e 3673 3675 3775 +e 3775 3675 3777 +e 3674 3776 3676 +e 3776 3778 3676 +e 3675 3677 3777 +e 3777 3677 3779 +e 3676 3778 3678 +e 3778 3780 3678 +e 3677 3679 3779 +e 3779 3679 3781 +e 3678 3780 3680 +e 3780 3782 3680 +e 3679 3681 3781 +e 3781 3681 3783 +e 3680 3782 3682 +e 3782 3784 3682 +e 3681 3683 3783 +e 3783 3683 3785 +e 3682 3784 3684 +e 3784 3786 3684 +e 3683 3685 3785 +e 3785 3685 3787 +e 3684 3786 3686 +e 3786 3788 3686 +e 3685 3687 3787 +e 3787 3687 3789 +e 3686 3788 3688 +e 3788 3790 3688 +e 3687 3689 3789 +e 3789 3689 3791 +e 3688 3790 3690 +e 3790 3792 3690 +e 3689 3691 3791 +e 3791 3691 3793 +e 3690 3792 3692 +e 3792 3794 3692 +e 3691 3693 3793 +e 3793 3693 3795 +e 3692 3794 3694 +e 3794 3796 3694 +e 3693 3695 3795 +e 3795 3695 3797 +e 3694 3796 3696 +e 3796 3798 3696 +e 3695 3697 3797 +e 3797 3697 3799 +e 3696 3798 3698 +e 3798 3800 3698 +e 3697 3699 3799 +e 3799 3699 3801 +e 3698 3800 3700 +e 3800 3802 3700 +e 3699 3701 3801 +e 3801 3701 3803 +e 3700 3802 3702 +e 3802 3804 3702 +e 3701 3703 3803 +e 3803 3703 3805 +e 3702 3804 3704 +e 3804 3806 3704 +e 3703 3705 3805 +e 3805 3705 3807 +e 3704 3806 3706 +e 3806 3808 3706 +e 3705 3707 3807 +e 3807 3707 3809 +e 3706 3808 3708 +e 3808 3810 3708 +e 3707 3709 3809 +e 3809 3709 3811 +e 3708 3810 3710 +e 3810 3812 3710 +e 3709 3711 3811 +e 3811 3711 3813 +e 3710 3812 3712 +e 3812 3814 3712 +e 3711 3713 3813 +e 3813 3713 3815 +e 3712 3814 3714 +e 3814 3816 3714 +e 3713 3715 3815 +e 3815 3715 3817 +e 3714 3816 3716 +e 3816 3818 3716 +e 3715 3717 3817 +e 3817 3717 3819 +e 3716 3818 3718 +e 3818 3820 3718 +e 3717 3719 3819 +e 3819 3719 3821 +e 3718 3820 3720 +e 3820 3822 3720 +e 3719 3721 3821 +e 3821 3721 3823 +e 3720 3822 3722 +e 3822 3824 3722 +e 3723 3724 3825 +e 3825 3724 3826 +e 3725 3827 3726 +e 3827 3828 3726 +e 3724 3727 3826 +e 3826 3727 3829 +e 3726 3828 3728 +e 3828 3830 3728 +e 3727 3729 3829 +e 3829 3729 3831 +e 3728 3830 3730 +e 3830 3832 3730 +e 3729 3731 3831 +e 3831 3731 3833 +e 3730 3832 3732 +e 3832 3834 3732 +e 3731 3733 3833 +e 3833 3733 3835 +e 3732 3834 3734 +e 3834 3836 3734 +e 3733 3735 3835 +e 3835 3735 3837 +e 3734 3836 3736 +e 3836 3838 3736 +e 3735 3737 3837 +e 3837 3737 3839 +e 3736 3838 3738 +e 3838 3840 3738 +e 3737 3739 3839 +e 3839 3739 3841 +e 3738 3840 3740 +e 3840 3842 3740 +e 3739 3741 3841 +e 3841 3741 3843 +e 3740 3842 3742 +e 3842 3844 3742 +e 3741 3743 3843 +e 3843 3743 3845 +e 3742 3844 3744 +e 3844 3846 3744 +e 3743 3745 3845 +e 3845 3745 3847 +e 3744 3846 3746 +e 3846 3848 3746 +e 3745 3747 3847 +e 3847 3747 3849 +e 3746 3848 3748 +e 3848 3850 3748 +e 3747 3749 3849 +e 3849 3749 3851 +e 3748 3850 3750 +e 3850 3852 3750 +e 3749 3751 3851 +e 3851 3751 3853 +e 3750 3852 3752 +e 3852 3854 3752 +e 3751 3753 3853 +e 3853 3753 3855 +e 3752 3854 3754 +e 3854 3856 3754 +e 3753 3755 3855 +e 3855 3755 3857 +e 3754 3856 3756 +e 3856 3858 3756 +e 3755 3757 3857 +e 3857 3757 3859 +e 3756 3858 3758 +e 3858 3860 3758 +e 3757 3759 3859 +e 3859 3759 3861 +e 3758 3860 3760 +e 3860 3862 3760 +e 3759 3761 3861 +e 3861 3761 3863 +e 3760 3862 3762 +e 3862 3864 3762 +e 3761 3763 3863 +e 3863 3763 3865 +e 3762 3864 3764 +e 3864 3866 3764 +e 3763 3765 3865 +e 3865 3765 3867 +e 3764 3866 3766 +e 3866 3868 3766 +e 3765 3767 3867 +e 3867 3767 3869 +e 3766 3868 3768 +e 3868 3870 3768 +e 3767 3769 3869 +e 3869 3769 3871 +e 3768 3870 3770 +e 3870 3872 3770 +e 3769 3771 3871 +e 3871 3771 3873 +e 3770 3872 3772 +e 3872 3874 3772 +e 3771 3773 3873 +e 3873 3773 3875 +e 3772 3874 3774 +e 3874 3876 3774 +e 3773 3775 3875 +e 3875 3775 3877 +e 3774 3876 3776 +e 3876 3878 3776 +e 3775 3777 3877 +e 3877 3777 3879 +e 3776 3878 3778 +e 3878 3880 3778 +e 3777 3779 3879 +e 3879 3779 3881 +e 3778 3880 3780 +e 3880 3882 3780 +e 3779 3781 3881 +e 3881 3781 3883 +e 3780 3882 3782 +e 3882 3884 3782 +e 3781 3783 3883 +e 3883 3783 3885 +e 3782 3884 3784 +e 3884 3886 3784 +e 3783 3785 3885 +e 3885 3785 3887 +e 3784 3886 3786 +e 3886 3888 3786 +e 3785 3787 3887 +e 3887 3787 3889 +e 3786 3888 3788 +e 3888 3890 3788 +e 3787 3789 3889 +e 3889 3789 3891 +e 3788 3890 3790 +e 3890 3892 3790 +e 3789 3791 3891 +e 3891 3791 3893 +e 3790 3892 3792 +e 3892 3894 3792 +e 3791 3793 3893 +e 3893 3793 3895 +e 3792 3894 3794 +e 3894 3896 3794 +e 3793 3795 3895 +e 3895 3795 3897 +e 3794 3896 3796 +e 3896 3898 3796 +e 3795 3797 3897 +e 3897 3797 3899 +e 3796 3898 3798 +e 3898 3900 3798 +e 3797 3799 3899 +e 3899 3799 3901 +e 3798 3900 3800 +e 3900 3902 3800 +e 3799 3801 3901 +e 3901 3801 3903 +e 3800 3902 3802 +e 3902 3904 3802 +e 3801 3803 3903 +e 3903 3803 3905 +e 3802 3904 3804 +e 3904 3906 3804 +e 3803 3805 3905 +e 3905 3805 3907 +e 3804 3906 3806 +e 3906 3908 3806 +e 3805 3807 3907 +e 3907 3807 3909 +e 3806 3908 3808 +e 3908 3910 3808 +e 3807 3809 3909 +e 3909 3809 3911 +e 3808 3910 3810 +e 3910 3912 3810 +e 3809 3811 3911 +e 3911 3811 3913 +e 3810 3912 3812 +e 3912 3914 3812 +e 3811 3813 3913 +e 3913 3813 3915 +e 3812 3914 3814 +e 3914 3916 3814 +e 3813 3815 3915 +e 3915 3815 3917 +e 3814 3916 3816 +e 3916 3918 3816 +e 3815 3817 3917 +e 3917 3817 3919 +e 3816 3918 3818 +e 3918 3920 3818 +e 3817 3819 3919 +e 3919 3819 3921 +e 3818 3920 3820 +e 3920 3922 3820 +e 3819 3821 3921 +e 3921 3821 3923 +e 3820 3922 3822 +e 3922 3924 3822 +e 3821 3823 3923 +e 3923 3823 3925 +e 3822 3924 3824 +e 3924 3926 3824 +e 3825 3826 3927 +e 3927 3826 3928 +e 3827 3929 3828 +e 3929 3930 3828 +e 3826 3829 3928 +e 3928 3829 3931 +e 3828 3930 3830 +e 3930 3932 3830 +e 3829 3831 3931 +e 3931 3831 3933 +e 3830 3932 3832 +e 3932 3934 3832 +e 3831 3833 3933 +e 3933 3833 3935 +e 3832 3934 3834 +e 3934 3936 3834 +e 3833 3835 3935 +e 3935 3835 3937 +e 3834 3936 3836 +e 3936 3938 3836 +e 3835 3837 3937 +e 3937 3837 3939 +e 3836 3938 3838 +e 3938 3940 3838 +e 3837 3839 3939 +e 3939 3839 3941 +e 3838 3940 3840 +e 3940 3942 3840 +e 3839 3841 3941 +e 3941 3841 3943 +e 3840 3942 3842 +e 3942 3944 3842 +e 3841 3843 3943 +e 3943 3843 3945 +e 3842 3944 3844 +e 3944 3946 3844 +e 3843 3845 3945 +e 3945 3845 3947 +e 3844 3946 3846 +e 3946 3948 3846 +e 3845 3847 3947 +e 3947 3847 3949 +e 3846 3948 3848 +e 3948 3950 3848 +e 3847 3849 3949 +e 3949 3849 3951 +e 3848 3950 3850 +e 3950 3952 3850 +e 3849 3851 3951 +e 3951 3851 3953 +e 3850 3952 3852 +e 3952 3954 3852 +e 3851 3853 3953 +e 3953 3853 3955 +e 3852 3954 3854 +e 3954 3956 3854 +e 3853 3855 3955 +e 3955 3855 3957 +e 3854 3956 3856 +e 3956 3958 3856 +e 3855 3857 3957 +e 3957 3857 3959 +e 3856 3958 3858 +e 3958 3960 3858 +e 3857 3859 3959 +e 3959 3859 3961 +e 3858 3960 3860 +e 3960 3962 3860 +e 3859 3861 3961 +e 3961 3861 3963 +e 3860 3962 3862 +e 3962 3964 3862 +e 3861 3863 3963 +e 3963 3863 3965 +e 3862 3964 3864 +e 3964 3966 3864 +e 3863 3865 3965 +e 3965 3865 3967 +e 3864 3966 3866 +e 3966 3968 3866 +e 3865 3867 3967 +e 3967 3867 3969 +e 3866 3968 3868 +e 3968 3970 3868 +e 3867 3869 3969 +e 3969 3869 3971 +e 3868 3970 3870 +e 3970 3972 3870 +e 3869 3871 3971 +e 3971 3871 3973 +e 3870 3972 3872 +e 3972 3974 3872 +e 3871 3873 3973 +e 3973 3873 3975 +e 3872 3974 3874 +e 3974 3976 3874 +e 3873 3875 3975 +e 3975 3875 3977 +e 3874 3976 3876 +e 3976 3978 3876 +e 3875 3877 3977 +e 3977 3877 3979 +e 3876 3978 3878 +e 3978 3980 3878 +e 3877 3879 3979 +e 3979 3879 3981 +e 3878 3980 3880 +e 3980 3982 3880 +e 3879 3881 3981 +e 3981 3881 3983 +e 3880 3982 3882 +e 3982 3984 3882 +e 3881 3883 3983 +e 3983 3883 3985 +e 3882 3984 3884 +e 3984 3986 3884 +e 3883 3885 3985 +e 3985 3885 3987 +e 3884 3986 3886 +e 3986 3988 3886 +e 3885 3887 3987 +e 3987 3887 3989 +e 3886 3988 3888 +e 3988 3990 3888 +e 3887 3889 3989 +e 3989 3889 3991 +e 3888 3990 3890 +e 3990 3992 3890 +e 3889 3891 3991 +e 3991 3891 3993 +e 3890 3992 3892 +e 3992 3994 3892 +e 3891 3893 3993 +e 3993 3893 3995 +e 3892 3994 3894 +e 3994 3996 3894 +e 3893 3895 3995 +e 3995 3895 3997 +e 3894 3996 3896 +e 3996 3998 3896 +e 3895 3897 3997 +e 3997 3897 3999 +e 3896 3998 3898 +e 3998 4000 3898 +e 3897 3899 3999 +e 3999 3899 4001 +e 3898 4000 3900 +e 4000 4002 3900 +e 3899 3901 4001 +e 4001 3901 4003 +e 3900 4002 3902 +e 4002 4004 3902 +e 3901 3903 4003 +e 4003 3903 4005 +e 3902 4004 3904 +e 4004 4006 3904 +e 3903 3905 4005 +e 4005 3905 4007 +e 3904 4006 3906 +e 4006 4008 3906 +e 3905 3907 4007 +e 4007 3907 4009 +e 3906 4008 3908 +e 4008 4010 3908 +e 3907 3909 4009 +e 4009 3909 4011 +e 3908 4010 3910 +e 4010 4012 3910 +e 3909 3911 4011 +e 4011 3911 4013 +e 3910 4012 3912 +e 4012 4014 3912 +e 3911 3913 4013 +e 4013 3913 4015 +e 3912 4014 3914 +e 4014 4016 3914 +e 3913 3915 4015 +e 4015 3915 4017 +e 3914 4016 3916 +e 4016 4018 3916 +e 3915 3917 4017 +e 4017 3917 4019 +e 3916 4018 3918 +e 4018 4020 3918 +e 3917 3919 4019 +e 4019 3919 4021 +e 3918 4020 3920 +e 4020 4022 3920 +e 3919 3921 4021 +e 4021 3921 4023 +e 3920 4022 3922 +e 4022 4024 3922 +e 3921 3923 4023 +e 4023 3923 4025 +e 3922 4024 3924 +e 4024 4026 3924 +e 3923 3925 4025 +e 4025 3925 4027 +e 3924 4026 3926 +e 4026 4028 3926 +e 3927 3928 4029 +e 4029 3928 4030 +e 3929 4031 3930 +e 4031 4032 3930 +e 3928 3931 4030 +e 4030 3931 4033 +e 3930 4032 3932 +e 4032 4034 3932 +e 3931 3933 4033 +e 4033 3933 4035 +e 3932 4034 3934 +e 4034 4036 3934 +e 3933 3935 4035 +e 4035 3935 4037 +e 3934 4036 3936 +e 4036 4038 3936 +e 3935 3937 4037 +e 4037 3937 4039 +e 3936 4038 3938 +e 4038 4040 3938 +e 3937 3939 4039 +e 4039 3939 4041 +e 3938 4040 3940 +e 4040 4042 3940 +e 3939 3941 4041 +e 4041 3941 4043 +e 3940 4042 3942 +e 4042 4044 3942 +e 3941 3943 4043 +e 4043 3943 4045 +e 3942 4044 3944 +e 4044 4046 3944 +e 3943 3945 4045 +e 4045 3945 4047 +e 3944 4046 3946 +e 4046 4048 3946 +e 3945 3947 4047 +e 4047 3947 4049 +e 3946 4048 3948 +e 4048 4050 3948 +e 3947 3949 4049 +e 4049 3949 4051 +e 3948 4050 3950 +e 4050 4052 3950 +e 3949 3951 4051 +e 4051 3951 4053 +e 3950 4052 3952 +e 4052 4054 3952 +e 3951 3953 4053 +e 4053 3953 4055 +e 3952 4054 3954 +e 4054 4056 3954 +e 3953 3955 4055 +e 4055 3955 4057 +e 3954 4056 3956 +e 4056 4058 3956 +e 3955 3957 4057 +e 4057 3957 4059 +e 3956 4058 3958 +e 4058 4060 3958 +e 3957 3959 4059 +e 4059 3959 4061 +e 3958 4060 3960 +e 4060 4062 3960 +e 3959 3961 4061 +e 4061 3961 4063 +e 3960 4062 3962 +e 4062 4064 3962 +e 3961 3963 4063 +e 4063 3963 4065 +e 3962 4064 3964 +e 4064 4066 3964 +e 3963 3965 4065 +e 4065 3965 4067 +e 3964 4066 3966 +e 4066 4068 3966 +e 3965 3967 4067 +e 4067 3967 4069 +e 3966 4068 3968 +e 4068 4070 3968 +e 3967 3969 4069 +e 4069 3969 4071 +e 3968 4070 3970 +e 4070 4072 3970 +e 3969 3971 4071 +e 4071 3971 4073 +e 3970 4072 3972 +e 4072 4074 3972 +e 3971 3973 4073 +e 4073 3973 4075 +e 3972 4074 3974 +e 4074 4076 3974 +e 3973 3975 4075 +e 4075 3975 4077 +e 3974 4076 3976 +e 4076 4078 3976 +e 3975 3977 4077 +e 4077 3977 4079 +e 3976 4078 3978 +e 4078 4080 3978 +e 3977 3979 4079 +e 4079 3979 4081 +e 3978 4080 3980 +e 4080 4082 3980 +e 3979 3981 4081 +e 4081 3981 4083 +e 3980 4082 3982 +e 4082 4084 3982 +e 3981 3983 4083 +e 4083 3983 4085 +e 3982 4084 3984 +e 4084 4086 3984 +e 3983 3985 4085 +e 4085 3985 4087 +e 3984 4086 3986 +e 4086 4088 3986 +e 3985 3987 4087 +e 4087 3987 4089 +e 3986 4088 3988 +e 4088 4090 3988 +e 3987 3989 4089 +e 4089 3989 4091 +e 3988 4090 3990 +e 4090 4092 3990 +e 3989 3991 4091 +e 4091 3991 4093 +e 3990 4092 3992 +e 4092 4094 3992 +e 3991 3993 4093 +e 4093 3993 4095 +e 3992 4094 3994 +e 4094 4096 3994 +e 3993 3995 4095 +e 4095 3995 4097 +e 3994 4096 3996 +e 4096 4098 3996 +e 3995 3997 4097 +e 4097 3997 4099 +e 3996 4098 3998 +e 4098 4100 3998 +e 3997 3999 4099 +e 4099 3999 4101 +e 3998 4100 4000 +e 4100 4102 4000 +e 3999 4001 4101 +e 4101 4001 4103 +e 4000 4102 4002 +e 4102 4104 4002 +e 4001 4003 4103 +e 4103 4003 4105 +e 4002 4104 4004 +e 4104 4106 4004 +e 4003 4005 4105 +e 4105 4005 4107 +e 4004 4106 4006 +e 4106 4108 4006 +e 4005 4007 4107 +e 4107 4007 4109 +e 4006 4108 4008 +e 4108 4110 4008 +e 4007 4009 4109 +e 4109 4009 4111 +e 4008 4110 4010 +e 4110 4112 4010 +e 4009 4011 4111 +e 4111 4011 4113 +e 4010 4112 4012 +e 4112 4114 4012 +e 4011 4013 4113 +e 4113 4013 4115 +e 4012 4114 4014 +e 4114 4116 4014 +e 4013 4015 4115 +e 4115 4015 4117 +e 4014 4116 4016 +e 4116 4118 4016 +e 4015 4017 4117 +e 4117 4017 4119 +e 4016 4118 4018 +e 4118 4120 4018 +e 4017 4019 4119 +e 4119 4019 4121 +e 4018 4120 4020 +e 4120 4122 4020 +e 4019 4021 4121 +e 4121 4021 4123 +e 4020 4122 4022 +e 4122 4124 4022 +e 4021 4023 4123 +e 4123 4023 4125 +e 4022 4124 4024 +e 4124 4126 4024 +e 4023 4025 4125 +e 4125 4025 4127 +e 4024 4126 4026 +e 4126 4128 4026 +e 4025 4027 4127 +e 4127 4027 4129 +e 4026 4128 4028 +e 4128 4130 4028 +e 4029 4030 4131 +e 4131 4030 4132 +e 4031 4133 4032 +e 4133 4134 4032 +e 4030 4033 4132 +e 4132 4033 4135 +e 4032 4134 4034 +e 4134 4136 4034 +e 4033 4035 4135 +e 4135 4035 4137 +e 4034 4136 4036 +e 4136 4138 4036 +e 4035 4037 4137 +e 4137 4037 4139 +e 4036 4138 4038 +e 4138 4140 4038 +e 4037 4039 4139 +e 4139 4039 4141 +e 4038 4140 4040 +e 4140 4142 4040 +e 4039 4041 4141 +e 4141 4041 4143 +e 4040 4142 4042 +e 4142 4144 4042 +e 4041 4043 4143 +e 4143 4043 4145 +e 4042 4144 4044 +e 4144 4146 4044 +e 4043 4045 4145 +e 4145 4045 4147 +e 4044 4146 4046 +e 4146 4148 4046 +e 4045 4047 4147 +e 4147 4047 4149 +e 4046 4148 4048 +e 4148 4150 4048 +e 4047 4049 4149 +e 4149 4049 4151 +e 4048 4150 4050 +e 4150 4152 4050 +e 4049 4051 4151 +e 4151 4051 4153 +e 4050 4152 4052 +e 4152 4154 4052 +e 4051 4053 4153 +e 4153 4053 4155 +e 4052 4154 4054 +e 4154 4156 4054 +e 4053 4055 4155 +e 4155 4055 4157 +e 4054 4156 4056 +e 4156 4158 4056 +e 4055 4057 4157 +e 4157 4057 4159 +e 4056 4158 4058 +e 4158 4160 4058 +e 4057 4059 4159 +e 4159 4059 4161 +e 4058 4160 4060 +e 4160 4162 4060 +e 4059 4061 4161 +e 4161 4061 4163 +e 4060 4162 4062 +e 4162 4164 4062 +e 4061 4063 4163 +e 4163 4063 4165 +e 4062 4164 4064 +e 4164 4166 4064 +e 4063 4065 4165 +e 4165 4065 4167 +e 4064 4166 4066 +e 4166 4168 4066 +e 4065 4067 4167 +e 4167 4067 4169 +e 4066 4168 4068 +e 4168 4170 4068 +e 4067 4069 4169 +e 4169 4069 4171 +e 4068 4170 4070 +e 4170 4172 4070 +e 4069 4071 4171 +e 4171 4071 4173 +e 4070 4172 4072 +e 4172 4174 4072 +e 4071 4073 4173 +e 4173 4073 4175 +e 4072 4174 4074 +e 4174 4176 4074 +e 4073 4075 4175 +e 4175 4075 4177 +e 4074 4176 4076 +e 4176 4178 4076 +e 4075 4077 4177 +e 4177 4077 4179 +e 4076 4178 4078 +e 4178 4180 4078 +e 4077 4079 4179 +e 4179 4079 4181 +e 4078 4180 4080 +e 4180 4182 4080 +e 4079 4081 4181 +e 4181 4081 4183 +e 4080 4182 4082 +e 4182 4184 4082 +e 4081 4083 4183 +e 4183 4083 4185 +e 4082 4184 4084 +e 4184 4186 4084 +e 4083 4085 4185 +e 4185 4085 4187 +e 4084 4186 4086 +e 4186 4188 4086 +e 4085 4087 4187 +e 4187 4087 4189 +e 4086 4188 4088 +e 4188 4190 4088 +e 4087 4089 4189 +e 4189 4089 4191 +e 4088 4190 4090 +e 4190 4192 4090 +e 4089 4091 4191 +e 4191 4091 4193 +e 4090 4192 4092 +e 4192 4194 4092 +e 4091 4093 4193 +e 4193 4093 4195 +e 4092 4194 4094 +e 4194 4196 4094 +e 4093 4095 4195 +e 4195 4095 4197 +e 4094 4196 4096 +e 4196 4198 4096 +e 4095 4097 4197 +e 4197 4097 4199 +e 4096 4198 4098 +e 4198 4200 4098 +e 4097 4099 4199 +e 4199 4099 4201 +e 4098 4200 4100 +e 4200 4202 4100 +e 4099 4101 4201 +e 4201 4101 4203 +e 4100 4202 4102 +e 4202 4204 4102 +e 4101 4103 4203 +e 4203 4103 4205 +e 4102 4204 4104 +e 4204 4206 4104 +e 4103 4105 4205 +e 4205 4105 4207 +e 4104 4206 4106 +e 4206 4208 4106 +e 4105 4107 4207 +e 4207 4107 4209 +e 4106 4208 4108 +e 4208 4210 4108 +e 4107 4109 4209 +e 4209 4109 4211 +e 4108 4210 4110 +e 4210 4212 4110 +e 4109 4111 4211 +e 4211 4111 4213 +e 4110 4212 4112 +e 4212 4214 4112 +e 4111 4113 4213 +e 4213 4113 4215 +e 4112 4214 4114 +e 4214 4216 4114 +e 4113 4115 4215 +e 4215 4115 4217 +e 4114 4216 4116 +e 4216 4218 4116 +e 4115 4117 4217 +e 4217 4117 4219 +e 4116 4218 4118 +e 4218 4220 4118 +e 4117 4119 4219 +e 4219 4119 4221 +e 4118 4220 4120 +e 4220 4222 4120 +e 4119 4121 4221 +e 4221 4121 4223 +e 4120 4222 4122 +e 4222 4224 4122 +e 4121 4123 4223 +e 4223 4123 4225 +e 4122 4224 4124 +e 4224 4226 4124 +e 4123 4125 4225 +e 4225 4125 4227 +e 4124 4226 4126 +e 4226 4228 4126 +e 4125 4127 4227 +e 4227 4127 4229 +e 4126 4228 4128 +e 4228 4230 4128 +e 4127 4129 4229 +e 4229 4129 4231 +e 4128 4230 4130 +e 4230 4232 4130 +e 4131 4132 4233 +e 4233 4132 4234 +e 4133 4235 4134 +e 4235 4236 4134 +e 4132 4135 4234 +e 4234 4135 4237 +e 4134 4236 4136 +e 4236 4238 4136 +e 4135 4137 4237 +e 4237 4137 4239 +e 4136 4238 4138 +e 4238 4240 4138 +e 4137 4139 4239 +e 4239 4139 4241 +e 4138 4240 4140 +e 4240 4242 4140 +e 4139 4141 4241 +e 4241 4141 4243 +e 4140 4242 4142 +e 4242 4244 4142 +e 4141 4143 4243 +e 4243 4143 4245 +e 4142 4244 4144 +e 4244 4246 4144 +e 4143 4145 4245 +e 4245 4145 4247 +e 4144 4246 4146 +e 4246 4248 4146 +e 4145 4147 4247 +e 4247 4147 4249 +e 4146 4248 4148 +e 4248 4250 4148 +e 4147 4149 4249 +e 4249 4149 4251 +e 4148 4250 4150 +e 4250 4252 4150 +e 4149 4151 4251 +e 4251 4151 4253 +e 4150 4252 4152 +e 4252 4254 4152 +e 4151 4153 4253 +e 4253 4153 4255 +e 4152 4254 4154 +e 4254 4256 4154 +e 4153 4155 4255 +e 4255 4155 4257 +e 4154 4256 4156 +e 4256 4258 4156 +e 4155 4157 4257 +e 4257 4157 4259 +e 4156 4258 4158 +e 4258 4260 4158 +e 4157 4159 4259 +e 4259 4159 4261 +e 4158 4260 4160 +e 4260 4262 4160 +e 4159 4161 4261 +e 4261 4161 4263 +e 4160 4262 4162 +e 4262 4264 4162 +e 4161 4163 4263 +e 4263 4163 4265 +e 4162 4264 4164 +e 4264 4266 4164 +e 4163 4165 4265 +e 4265 4165 4267 +e 4164 4266 4166 +e 4266 4268 4166 +e 4165 4167 4267 +e 4267 4167 4269 +e 4166 4268 4168 +e 4268 4270 4168 +e 4167 4169 4269 +e 4269 4169 4271 +e 4168 4270 4170 +e 4270 4272 4170 +e 4169 4171 4271 +e 4271 4171 4273 +e 4170 4272 4172 +e 4272 4274 4172 +e 4171 4173 4273 +e 4273 4173 4275 +e 4172 4274 4174 +e 4274 4276 4174 +e 4173 4175 4275 +e 4275 4175 4277 +e 4174 4276 4176 +e 4276 4278 4176 +e 4175 4177 4277 +e 4277 4177 4279 +e 4176 4278 4178 +e 4278 4280 4178 +e 4177 4179 4279 +e 4279 4179 4281 +e 4178 4280 4180 +e 4280 4282 4180 +e 4179 4181 4281 +e 4281 4181 4283 +e 4180 4282 4182 +e 4282 4284 4182 +e 4181 4183 4283 +e 4283 4183 4285 +e 4182 4284 4184 +e 4284 4286 4184 +e 4183 4185 4285 +e 4285 4185 4287 +e 4184 4286 4186 +e 4286 4288 4186 +e 4185 4187 4287 +e 4287 4187 4289 +e 4186 4288 4188 +e 4288 4290 4188 +e 4187 4189 4289 +e 4289 4189 4291 +e 4188 4290 4190 +e 4290 4292 4190 +e 4189 4191 4291 +e 4291 4191 4293 +e 4190 4292 4192 +e 4292 4294 4192 +e 4191 4193 4293 +e 4293 4193 4295 +e 4192 4294 4194 +e 4294 4296 4194 +e 4193 4195 4295 +e 4295 4195 4297 +e 4194 4296 4196 +e 4296 4298 4196 +e 4195 4197 4297 +e 4297 4197 4299 +e 4196 4298 4198 +e 4298 4300 4198 +e 4197 4199 4299 +e 4299 4199 4301 +e 4198 4300 4200 +e 4300 4302 4200 +e 4199 4201 4301 +e 4301 4201 4303 +e 4200 4302 4202 +e 4302 4304 4202 +e 4201 4203 4303 +e 4303 4203 4305 +e 4202 4304 4204 +e 4304 4306 4204 +e 4203 4205 4305 +e 4305 4205 4307 +e 4204 4306 4206 +e 4306 4308 4206 +e 4205 4207 4307 +e 4307 4207 4309 +e 4206 4308 4208 +e 4308 4310 4208 +e 4207 4209 4309 +e 4309 4209 4311 +e 4208 4310 4210 +e 4310 4312 4210 +e 4209 4211 4311 +e 4311 4211 4313 +e 4210 4312 4212 +e 4312 4314 4212 +e 4211 4213 4313 +e 4313 4213 4315 +e 4212 4314 4214 +e 4314 4316 4214 +e 4213 4215 4315 +e 4315 4215 4317 +e 4214 4316 4216 +e 4316 4318 4216 +e 4215 4217 4317 +e 4317 4217 4319 +e 4216 4318 4218 +e 4318 4320 4218 +e 4217 4219 4319 +e 4319 4219 4321 +e 4218 4320 4220 +e 4320 4322 4220 +e 4219 4221 4321 +e 4321 4221 4323 +e 4220 4322 4222 +e 4322 4324 4222 +e 4221 4223 4323 +e 4323 4223 4325 +e 4222 4324 4224 +e 4324 4326 4224 +e 4223 4225 4325 +e 4325 4225 4327 +e 4224 4326 4226 +e 4326 4328 4226 +e 4225 4227 4327 +e 4327 4227 4329 +e 4226 4328 4228 +e 4328 4330 4228 +e 4227 4229 4329 +e 4329 4229 4331 +e 4228 4330 4230 +e 4330 4332 4230 +e 4229 4231 4331 +e 4331 4231 4333 +e 4230 4332 4232 +e 4332 4334 4232 +e 4233 4234 4335 +e 4335 4234 4336 +e 4235 4337 4236 +e 4337 4338 4236 +e 4234 4237 4336 +e 4336 4237 4339 +e 4236 4338 4238 +e 4338 4340 4238 +e 4237 4239 4339 +e 4339 4239 4341 +e 4238 4340 4240 +e 4340 4342 4240 +e 4239 4241 4341 +e 4341 4241 4343 +e 4240 4342 4242 +e 4342 4344 4242 +e 4241 4243 4343 +e 4343 4243 4345 +e 4242 4344 4244 +e 4344 4346 4244 +e 4243 4245 4345 +e 4345 4245 4347 +e 4244 4346 4246 +e 4346 4348 4246 +e 4245 4247 4347 +e 4347 4247 4349 +e 4246 4348 4248 +e 4348 4350 4248 +e 4247 4249 4349 +e 4349 4249 4351 +e 4248 4350 4250 +e 4350 4352 4250 +e 4249 4251 4351 +e 4351 4251 4353 +e 4250 4352 4252 +e 4352 4354 4252 +e 4251 4253 4353 +e 4353 4253 4355 +e 4252 4354 4254 +e 4354 4356 4254 +e 4253 4255 4355 +e 4355 4255 4357 +e 4254 4356 4256 +e 4356 4358 4256 +e 4255 4257 4357 +e 4357 4257 4359 +e 4256 4358 4258 +e 4358 4360 4258 +e 4257 4259 4359 +e 4359 4259 4361 +e 4258 4360 4260 +e 4360 4362 4260 +e 4259 4261 4361 +e 4361 4261 4363 +e 4260 4362 4262 +e 4362 4364 4262 +e 4261 4263 4363 +e 4363 4263 4365 +e 4262 4364 4264 +e 4364 4366 4264 +e 4263 4265 4365 +e 4365 4265 4367 +e 4264 4366 4266 +e 4366 4368 4266 +e 4265 4267 4367 +e 4367 4267 4369 +e 4266 4368 4268 +e 4368 4370 4268 +e 4267 4269 4369 +e 4369 4269 4371 +e 4268 4370 4270 +e 4370 4372 4270 +e 4269 4271 4371 +e 4371 4271 4373 +e 4270 4372 4272 +e 4372 4374 4272 +e 4271 4273 4373 +e 4373 4273 4375 +e 4272 4374 4274 +e 4374 4376 4274 +e 4273 4275 4375 +e 4375 4275 4377 +e 4274 4376 4276 +e 4376 4378 4276 +e 4275 4277 4377 +e 4377 4277 4379 +e 4276 4378 4278 +e 4378 4380 4278 +e 4277 4279 4379 +e 4379 4279 4381 +e 4278 4380 4280 +e 4380 4382 4280 +e 4279 4281 4381 +e 4381 4281 4383 +e 4280 4382 4282 +e 4382 4384 4282 +e 4281 4283 4383 +e 4383 4283 4385 +e 4282 4384 4284 +e 4384 4386 4284 +e 4283 4285 4385 +e 4385 4285 4387 +e 4284 4386 4286 +e 4386 4388 4286 +e 4285 4287 4387 +e 4387 4287 4389 +e 4286 4388 4288 +e 4388 4390 4288 +e 4287 4289 4389 +e 4389 4289 4391 +e 4288 4390 4290 +e 4390 4392 4290 +e 4289 4291 4391 +e 4391 4291 4393 +e 4290 4392 4292 +e 4392 4394 4292 +e 4291 4293 4393 +e 4393 4293 4395 +e 4292 4394 4294 +e 4394 4396 4294 +e 4293 4295 4395 +e 4395 4295 4397 +e 4294 4396 4296 +e 4396 4398 4296 +e 4295 4297 4397 +e 4397 4297 4399 +e 4296 4398 4298 +e 4398 4400 4298 +e 4297 4299 4399 +e 4399 4299 4401 +e 4298 4400 4300 +e 4400 4402 4300 +e 4299 4301 4401 +e 4401 4301 4403 +e 4300 4402 4302 +e 4402 4404 4302 +e 4301 4303 4403 +e 4403 4303 4405 +e 4302 4404 4304 +e 4404 4406 4304 +e 4303 4305 4405 +e 4405 4305 4407 +e 4304 4406 4306 +e 4406 4408 4306 +e 4305 4307 4407 +e 4407 4307 4409 +e 4306 4408 4308 +e 4408 4410 4308 +e 4307 4309 4409 +e 4409 4309 4411 +e 4308 4410 4310 +e 4410 4412 4310 +e 4309 4311 4411 +e 4411 4311 4413 +e 4310 4412 4312 +e 4412 4414 4312 +e 4311 4313 4413 +e 4413 4313 4415 +e 4312 4414 4314 +e 4414 4416 4314 +e 4313 4315 4415 +e 4415 4315 4417 +e 4314 4416 4316 +e 4416 4418 4316 +e 4315 4317 4417 +e 4417 4317 4419 +e 4316 4418 4318 +e 4418 4420 4318 +e 4317 4319 4419 +e 4419 4319 4421 +e 4318 4420 4320 +e 4420 4422 4320 +e 4319 4321 4421 +e 4421 4321 4423 +e 4320 4422 4322 +e 4422 4424 4322 +e 4321 4323 4423 +e 4423 4323 4425 +e 4322 4424 4324 +e 4424 4426 4324 +e 4323 4325 4425 +e 4425 4325 4427 +e 4324 4426 4326 +e 4426 4428 4326 +e 4325 4327 4427 +e 4427 4327 4429 +e 4326 4428 4328 +e 4428 4430 4328 +e 4327 4329 4429 +e 4429 4329 4431 +e 4328 4430 4330 +e 4430 4432 4330 +e 4329 4331 4431 +e 4431 4331 4433 +e 4330 4432 4332 +e 4432 4434 4332 +e 4331 4333 4433 +e 4433 4333 4435 +e 4332 4434 4334 +e 4434 4436 4334 +e 4335 4336 4437 +e 4437 4336 4438 +e 4337 4439 4338 +e 4439 4440 4338 +e 4336 4339 4438 +e 4438 4339 4441 +e 4338 4440 4340 +e 4440 4442 4340 +e 4339 4341 4441 +e 4441 4341 4443 +e 4340 4442 4342 +e 4442 4444 4342 +e 4341 4343 4443 +e 4443 4343 4445 +e 4342 4444 4344 +e 4444 4446 4344 +e 4343 4345 4445 +e 4445 4345 4447 +e 4344 4446 4346 +e 4446 4448 4346 +e 4345 4347 4447 +e 4447 4347 4449 +e 4346 4448 4348 +e 4448 4450 4348 +e 4347 4349 4449 +e 4449 4349 4451 +e 4348 4450 4350 +e 4450 4452 4350 +e 4349 4351 4451 +e 4451 4351 4453 +e 4350 4452 4352 +e 4452 4454 4352 +e 4351 4353 4453 +e 4453 4353 4455 +e 4352 4454 4354 +e 4454 4456 4354 +e 4353 4355 4455 +e 4455 4355 4457 +e 4354 4456 4356 +e 4456 4458 4356 +e 4355 4357 4457 +e 4457 4357 4459 +e 4356 4458 4358 +e 4458 4460 4358 +e 4357 4359 4459 +e 4459 4359 4461 +e 4358 4460 4360 +e 4460 4462 4360 +e 4359 4361 4461 +e 4461 4361 4463 +e 4360 4462 4362 +e 4462 4464 4362 +e 4361 4363 4463 +e 4463 4363 4465 +e 4362 4464 4364 +e 4464 4466 4364 +e 4363 4365 4465 +e 4465 4365 4467 +e 4364 4466 4366 +e 4466 4468 4366 +e 4365 4367 4467 +e 4467 4367 4469 +e 4366 4468 4368 +e 4468 4470 4368 +e 4367 4369 4469 +e 4469 4369 4471 +e 4368 4470 4370 +e 4470 4472 4370 +e 4369 4371 4471 +e 4471 4371 4473 +e 4370 4472 4372 +e 4472 4474 4372 +e 4371 4373 4473 +e 4473 4373 4475 +e 4372 4474 4374 +e 4474 4476 4374 +e 4373 4375 4475 +e 4475 4375 4477 +e 4374 4476 4376 +e 4476 4478 4376 +e 4375 4377 4477 +e 4477 4377 4479 +e 4376 4478 4378 +e 4478 4480 4378 +e 4377 4379 4479 +e 4479 4379 4481 +e 4378 4480 4380 +e 4480 4482 4380 +e 4379 4381 4481 +e 4481 4381 4483 +e 4380 4482 4382 +e 4482 4484 4382 +e 4381 4383 4483 +e 4483 4383 4485 +e 4382 4484 4384 +e 4484 4486 4384 +e 4383 4385 4485 +e 4485 4385 4487 +e 4384 4486 4386 +e 4486 4488 4386 +e 4385 4387 4487 +e 4487 4387 4489 +e 4386 4488 4388 +e 4488 4490 4388 +e 4387 4389 4489 +e 4489 4389 4491 +e 4388 4490 4390 +e 4490 4492 4390 +e 4389 4391 4491 +e 4491 4391 4493 +e 4390 4492 4392 +e 4492 4494 4392 +e 4391 4393 4493 +e 4493 4393 4495 +e 4392 4494 4394 +e 4494 4496 4394 +e 4393 4395 4495 +e 4495 4395 4497 +e 4394 4496 4396 +e 4496 4498 4396 +e 4395 4397 4497 +e 4497 4397 4499 +e 4396 4498 4398 +e 4498 4500 4398 +e 4397 4399 4499 +e 4499 4399 4501 +e 4398 4500 4400 +e 4500 4502 4400 +e 4399 4401 4501 +e 4501 4401 4503 +e 4400 4502 4402 +e 4502 4504 4402 +e 4401 4403 4503 +e 4503 4403 4505 +e 4402 4504 4404 +e 4504 4506 4404 +e 4403 4405 4505 +e 4505 4405 4507 +e 4404 4506 4406 +e 4506 4508 4406 +e 4405 4407 4507 +e 4507 4407 4509 +e 4406 4508 4408 +e 4508 4510 4408 +e 4407 4409 4509 +e 4509 4409 4511 +e 4408 4510 4410 +e 4510 4512 4410 +e 4409 4411 4511 +e 4511 4411 4513 +e 4410 4512 4412 +e 4512 4514 4412 +e 4411 4413 4513 +e 4513 4413 4515 +e 4412 4514 4414 +e 4514 4516 4414 +e 4413 4415 4515 +e 4515 4415 4517 +e 4414 4516 4416 +e 4516 4518 4416 +e 4415 4417 4517 +e 4517 4417 4519 +e 4416 4518 4418 +e 4518 4520 4418 +e 4417 4419 4519 +e 4519 4419 4521 +e 4418 4520 4420 +e 4520 4522 4420 +e 4419 4421 4521 +e 4521 4421 4523 +e 4420 4522 4422 +e 4522 4524 4422 +e 4421 4423 4523 +e 4523 4423 4525 +e 4422 4524 4424 +e 4524 4526 4424 +e 4423 4425 4525 +e 4525 4425 4527 +e 4424 4526 4426 +e 4526 4528 4426 +e 4425 4427 4527 +e 4527 4427 4529 +e 4426 4528 4428 +e 4528 4530 4428 +e 4427 4429 4529 +e 4529 4429 4531 +e 4428 4530 4430 +e 4530 4532 4430 +e 4429 4431 4531 +e 4531 4431 4533 +e 4430 4532 4432 +e 4532 4534 4432 +e 4431 4433 4533 +e 4533 4433 4535 +e 4432 4534 4434 +e 4534 4536 4434 +e 4433 4435 4535 +e 4535 4435 4537 +e 4434 4536 4436 +e 4536 4538 4436 +e 4437 4438 4539 +e 4539 4438 4540 +e 4439 4541 4440 +e 4541 4542 4440 +e 4438 4441 4540 +e 4540 4441 4543 +e 4440 4542 4442 +e 4542 4544 4442 +e 4441 4443 4543 +e 4543 4443 4545 +e 4442 4544 4444 +e 4544 4546 4444 +e 4443 4445 4545 +e 4545 4445 4547 +e 4444 4546 4446 +e 4546 4548 4446 +e 4445 4447 4547 +e 4547 4447 4549 +e 4446 4548 4448 +e 4548 4550 4448 +e 4447 4449 4549 +e 4549 4449 4551 +e 4448 4550 4450 +e 4550 4552 4450 +e 4449 4451 4551 +e 4551 4451 4553 +e 4450 4552 4452 +e 4552 4554 4452 +e 4451 4453 4553 +e 4553 4453 4555 +e 4452 4554 4454 +e 4554 4556 4454 +e 4453 4455 4555 +e 4555 4455 4557 +e 4454 4556 4456 +e 4556 4558 4456 +e 4455 4457 4557 +e 4557 4457 4559 +e 4456 4558 4458 +e 4558 4560 4458 +e 4457 4459 4559 +e 4559 4459 4561 +e 4458 4560 4460 +e 4560 4562 4460 +e 4459 4461 4561 +e 4561 4461 4563 +e 4460 4562 4462 +e 4562 4564 4462 +e 4461 4463 4563 +e 4563 4463 4565 +e 4462 4564 4464 +e 4564 4566 4464 +e 4463 4465 4565 +e 4565 4465 4567 +e 4464 4566 4466 +e 4566 4568 4466 +e 4465 4467 4567 +e 4567 4467 4569 +e 4466 4568 4468 +e 4568 4570 4468 +e 4467 4469 4569 +e 4569 4469 4571 +e 4468 4570 4470 +e 4570 4572 4470 +e 4469 4471 4571 +e 4571 4471 4573 +e 4470 4572 4472 +e 4572 4574 4472 +e 4471 4473 4573 +e 4573 4473 4575 +e 4472 4574 4474 +e 4574 4576 4474 +e 4473 4475 4575 +e 4575 4475 4577 +e 4474 4576 4476 +e 4576 4578 4476 +e 4475 4477 4577 +e 4577 4477 4579 +e 4476 4578 4478 +e 4578 4580 4478 +e 4477 4479 4579 +e 4579 4479 4581 +e 4478 4580 4480 +e 4580 4582 4480 +e 4479 4481 4581 +e 4581 4481 4583 +e 4480 4582 4482 +e 4582 4584 4482 +e 4481 4483 4583 +e 4583 4483 4585 +e 4482 4584 4484 +e 4584 4586 4484 +e 4483 4485 4585 +e 4585 4485 4587 +e 4484 4586 4486 +e 4586 4588 4486 +e 4485 4487 4587 +e 4587 4487 4589 +e 4486 4588 4488 +e 4588 4590 4488 +e 4487 4489 4589 +e 4589 4489 4591 +e 4488 4590 4490 +e 4590 4592 4490 +e 4489 4491 4591 +e 4591 4491 4593 +e 4490 4592 4492 +e 4592 4594 4492 +e 4491 4493 4593 +e 4593 4493 4595 +e 4492 4594 4494 +e 4594 4596 4494 +e 4493 4495 4595 +e 4595 4495 4597 +e 4494 4596 4496 +e 4596 4598 4496 +e 4495 4497 4597 +e 4597 4497 4599 +e 4496 4598 4498 +e 4598 4600 4498 +e 4497 4499 4599 +e 4599 4499 4601 +e 4498 4600 4500 +e 4600 4602 4500 +e 4499 4501 4601 +e 4601 4501 4603 +e 4500 4602 4502 +e 4602 4604 4502 +e 4501 4503 4603 +e 4603 4503 4605 +e 4502 4604 4504 +e 4604 4606 4504 +e 4503 4505 4605 +e 4605 4505 4607 +e 4504 4606 4506 +e 4606 4608 4506 +e 4505 4507 4607 +e 4607 4507 4609 +e 4506 4608 4508 +e 4608 4610 4508 +e 4507 4509 4609 +e 4609 4509 4611 +e 4508 4610 4510 +e 4610 4612 4510 +e 4509 4511 4611 +e 4611 4511 4613 +e 4510 4612 4512 +e 4612 4614 4512 +e 4511 4513 4613 +e 4613 4513 4615 +e 4512 4614 4514 +e 4614 4616 4514 +e 4513 4515 4615 +e 4615 4515 4617 +e 4514 4616 4516 +e 4616 4618 4516 +e 4515 4517 4617 +e 4617 4517 4619 +e 4516 4618 4518 +e 4618 4620 4518 +e 4517 4519 4619 +e 4619 4519 4621 +e 4518 4620 4520 +e 4620 4622 4520 +e 4519 4521 4621 +e 4621 4521 4623 +e 4520 4622 4522 +e 4622 4624 4522 +e 4521 4523 4623 +e 4623 4523 4625 +e 4522 4624 4524 +e 4624 4626 4524 +e 4523 4525 4625 +e 4625 4525 4627 +e 4524 4626 4526 +e 4626 4628 4526 +e 4525 4527 4627 +e 4627 4527 4629 +e 4526 4628 4528 +e 4628 4630 4528 +e 4527 4529 4629 +e 4629 4529 4631 +e 4528 4630 4530 +e 4630 4632 4530 +e 4529 4531 4631 +e 4631 4531 4633 +e 4530 4632 4532 +e 4632 4634 4532 +e 4531 4533 4633 +e 4633 4533 4635 +e 4532 4634 4534 +e 4634 4636 4534 +e 4533 4535 4635 +e 4635 4535 4637 +e 4534 4636 4536 +e 4636 4638 4536 +e 4535 4537 4637 +e 4637 4537 4639 +e 4536 4638 4538 +e 4638 4640 4538 +e 4539 4540 4641 +e 4641 4540 4642 +e 4541 4643 4542 +e 4643 4644 4542 +e 4540 4543 4642 +e 4642 4543 4645 +e 4542 4644 4544 +e 4644 4646 4544 +e 4543 4545 4645 +e 4645 4545 4647 +e 4544 4646 4546 +e 4646 4648 4546 +e 4545 4547 4647 +e 4647 4547 4649 +e 4546 4648 4548 +e 4648 4650 4548 +e 4547 4549 4649 +e 4649 4549 4651 +e 4548 4650 4550 +e 4650 4652 4550 +e 4549 4551 4651 +e 4651 4551 4653 +e 4550 4652 4552 +e 4652 4654 4552 +e 4551 4553 4653 +e 4653 4553 4655 +e 4552 4654 4554 +e 4654 4656 4554 +e 4553 4555 4655 +e 4655 4555 4657 +e 4554 4656 4556 +e 4656 4658 4556 +e 4555 4557 4657 +e 4657 4557 4659 +e 4556 4658 4558 +e 4658 4660 4558 +e 4557 4559 4659 +e 4659 4559 4661 +e 4558 4660 4560 +e 4660 4662 4560 +e 4559 4561 4661 +e 4661 4561 4663 +e 4560 4662 4562 +e 4662 4664 4562 +e 4561 4563 4663 +e 4663 4563 4665 +e 4562 4664 4564 +e 4664 4666 4564 +e 4563 4565 4665 +e 4665 4565 4667 +e 4564 4666 4566 +e 4666 4668 4566 +e 4565 4567 4667 +e 4667 4567 4669 +e 4566 4668 4568 +e 4668 4670 4568 +e 4567 4569 4669 +e 4669 4569 4671 +e 4568 4670 4570 +e 4670 4672 4570 +e 4569 4571 4671 +e 4671 4571 4673 +e 4570 4672 4572 +e 4672 4674 4572 +e 4571 4573 4673 +e 4673 4573 4675 +e 4572 4674 4574 +e 4674 4676 4574 +e 4573 4575 4675 +e 4675 4575 4677 +e 4574 4676 4576 +e 4676 4678 4576 +e 4575 4577 4677 +e 4677 4577 4679 +e 4576 4678 4578 +e 4678 4680 4578 +e 4577 4579 4679 +e 4679 4579 4681 +e 4578 4680 4580 +e 4680 4682 4580 +e 4579 4581 4681 +e 4681 4581 4683 +e 4580 4682 4582 +e 4682 4684 4582 +e 4581 4583 4683 +e 4683 4583 4685 +e 4582 4684 4584 +e 4684 4686 4584 +e 4583 4585 4685 +e 4685 4585 4687 +e 4584 4686 4586 +e 4686 4688 4586 +e 4585 4587 4687 +e 4687 4587 4689 +e 4586 4688 4588 +e 4688 4690 4588 +e 4587 4589 4689 +e 4689 4589 4691 +e 4588 4690 4590 +e 4690 4692 4590 +e 4589 4591 4691 +e 4691 4591 4693 +e 4590 4692 4592 +e 4692 4694 4592 +e 4591 4593 4693 +e 4693 4593 4695 +e 4592 4694 4594 +e 4694 4696 4594 +e 4593 4595 4695 +e 4695 4595 4697 +e 4594 4696 4596 +e 4696 4698 4596 +e 4595 4597 4697 +e 4697 4597 4699 +e 4596 4698 4598 +e 4698 4700 4598 +e 4597 4599 4699 +e 4699 4599 4701 +e 4598 4700 4600 +e 4700 4702 4600 +e 4599 4601 4701 +e 4701 4601 4703 +e 4600 4702 4602 +e 4702 4704 4602 +e 4601 4603 4703 +e 4703 4603 4705 +e 4602 4704 4604 +e 4704 4706 4604 +e 4603 4605 4705 +e 4705 4605 4707 +e 4604 4706 4606 +e 4706 4708 4606 +e 4605 4607 4707 +e 4707 4607 4709 +e 4606 4708 4608 +e 4708 4710 4608 +e 4607 4609 4709 +e 4709 4609 4711 +e 4608 4710 4610 +e 4710 4712 4610 +e 4609 4611 4711 +e 4711 4611 4713 +e 4610 4712 4612 +e 4712 4714 4612 +e 4611 4613 4713 +e 4713 4613 4715 +e 4612 4714 4614 +e 4714 4716 4614 +e 4613 4615 4715 +e 4715 4615 4717 +e 4614 4716 4616 +e 4716 4718 4616 +e 4615 4617 4717 +e 4717 4617 4719 +e 4616 4718 4618 +e 4718 4720 4618 +e 4617 4619 4719 +e 4719 4619 4721 +e 4618 4720 4620 +e 4720 4722 4620 +e 4619 4621 4721 +e 4721 4621 4723 +e 4620 4722 4622 +e 4722 4724 4622 +e 4621 4623 4723 +e 4723 4623 4725 +e 4622 4724 4624 +e 4724 4726 4624 +e 4623 4625 4725 +e 4725 4625 4727 +e 4624 4726 4626 +e 4726 4728 4626 +e 4625 4627 4727 +e 4727 4627 4729 +e 4626 4728 4628 +e 4728 4730 4628 +e 4627 4629 4729 +e 4729 4629 4731 +e 4628 4730 4630 +e 4730 4732 4630 +e 4629 4631 4731 +e 4731 4631 4733 +e 4630 4732 4632 +e 4732 4734 4632 +e 4631 4633 4733 +e 4733 4633 4735 +e 4632 4734 4634 +e 4734 4736 4634 +e 4633 4635 4735 +e 4735 4635 4737 +e 4634 4736 4636 +e 4736 4738 4636 +e 4635 4637 4737 +e 4737 4637 4739 +e 4636 4738 4638 +e 4738 4740 4638 +e 4637 4639 4739 +e 4739 4639 4741 +e 4638 4740 4640 +e 4740 4742 4640 +e 4743 4744 4745 +e 4744 4746 4745 +e 4747 4748 4743 +e 4748 4744 4743 +e 4749 4750 4747 +e 4750 4748 4747 +e 4751 4752 4749 +e 4752 4750 4749 +e 4753 4754 4751 +e 4754 4752 4751 +e 4755 4756 4753 +e 4756 4754 4753 +e 4757 4758 4755 +e 4758 4756 4755 +e 4759 4760 4757 +e 4760 4758 4757 +e 4761 4762 4759 +e 4762 4760 4759 +e 4763 4764 4761 +e 4764 4762 4761 +e 4765 4766 4763 +e 4766 4764 4763 +e 4767 4768 4765 +e 4768 4766 4765 +e 4769 4770 4767 +e 4770 4768 4767 +e 4771 4772 4769 +e 4772 4770 4769 +e 4773 4774 4771 +e 4774 4772 4771 +e 4775 4776 4773 +e 4776 4774 4773 +e 4777 4778 4775 +e 4778 4776 4775 +e 4641 4642 4778 +e 4777 4641 4778 +e 4779 4780 4644 +e 4643 4779 4644 +e 4781 4782 4779 +e 4782 4780 4779 +e 4783 4784 4781 +e 4784 4782 4781 +e 4785 4786 4783 +e 4786 4784 4783 +e 4787 4788 4785 +e 4788 4786 4785 +e 4789 4790 4787 +e 4790 4788 4787 +e 4791 4792 4789 +e 4792 4790 4789 +e 4793 4794 4791 +e 4794 4792 4791 +e 4795 4796 4793 +e 4796 4794 4793 +e 4797 4798 4795 +e 4798 4796 4795 +e 4799 4800 4797 +e 4800 4798 4797 +e 4801 4802 4799 +e 4802 4800 4799 +e 4803 4804 4801 +e 4804 4802 4801 +e 4805 4806 4803 +e 4806 4804 4803 +e 4807 4808 4805 +e 4808 4806 4805 +e 4809 4810 4807 +e 4810 4808 4807 +e 4811 4812 4809 +e 4812 4810 4809 +e 4813 4814 4811 +e 4814 4812 4811 +e 4744 4815 4746 +e 4815 4816 4746 +e 4748 4817 4744 +e 4817 4815 4744 +e 4750 4818 4748 +e 4818 4817 4748 +e 4752 4819 4750 +e 4819 4818 4750 +e 4754 4820 4752 +e 4820 4819 4752 +e 4756 4821 4754 +e 4821 4820 4754 +e 4758 4822 4756 +e 4822 4821 4756 +e 4760 4823 4758 +e 4823 4822 4758 +e 4762 4824 4760 +e 4824 4823 4760 +e 4764 4825 4762 +e 4825 4824 4762 +e 4766 4826 4764 +e 4826 4825 4764 +e 4768 4827 4766 +e 4827 4826 4766 +e 4770 4828 4768 +e 4828 4827 4768 +e 4772 4829 4770 +e 4829 4828 4770 +e 4774 4830 4772 +e 4830 4829 4772 +e 4776 4831 4774 +e 4831 4830 4774 +e 4778 4832 4776 +e 4832 4831 4776 +e 4642 4645 4832 +e 4778 4642 4832 +e 4780 4833 4646 +e 4644 4780 4646 +e 4782 4834 4780 +e 4834 4833 4780 +e 4784 4835 4782 +e 4835 4834 4782 +e 4786 4836 4784 +e 4836 4835 4784 +e 4788 4837 4786 +e 4837 4836 4786 +e 4790 4838 4788 +e 4838 4837 4788 +e 4792 4839 4790 +e 4839 4838 4790 +e 4794 4840 4792 +e 4840 4839 4792 +e 4796 4841 4794 +e 4841 4840 4794 +e 4798 4842 4796 +e 4842 4841 4796 +e 4800 4843 4798 +e 4843 4842 4798 +e 4802 4844 4800 +e 4844 4843 4800 +e 4804 4845 4802 +e 4845 4844 4802 +e 4806 4846 4804 +e 4846 4845 4804 +e 4808 4847 4806 +e 4847 4846 4806 +e 4810 4848 4808 +e 4848 4847 4808 +e 4812 4849 4810 +e 4849 4848 4810 +e 4814 4850 4812 +e 4850 4849 4812 +e 4815 4851 4816 +e 4851 4852 4816 +e 4817 4853 4815 +e 4853 4851 4815 +e 4818 4854 4817 +e 4854 4853 4817 +e 4819 4855 4818 +e 4855 4854 4818 +e 4820 4856 4819 +e 4856 4855 4819 +e 4821 4857 4820 +e 4857 4856 4820 +e 4822 4858 4821 +e 4858 4857 4821 +e 4823 4859 4822 +e 4859 4858 4822 +e 4824 4860 4823 +e 4860 4859 4823 +e 4825 4861 4824 +e 4861 4860 4824 +e 4826 4862 4825 +e 4862 4861 4825 +e 4827 4863 4826 +e 4863 4862 4826 +e 4828 4864 4827 +e 4864 4863 4827 +e 4829 4865 4828 +e 4865 4864 4828 +e 4830 4866 4829 +e 4866 4865 4829 +e 4831 4867 4830 +e 4867 4866 4830 +e 4832 4868 4831 +e 4868 4867 4831 +e 4645 4647 4868 +e 4832 4645 4868 +e 4833 4869 4648 +e 4646 4833 4648 +e 4834 4870 4833 +e 4870 4869 4833 +e 4835 4871 4834 +e 4871 4870 4834 +e 4836 4872 4835 +e 4872 4871 4835 +e 4837 4873 4836 +e 4873 4872 4836 +e 4838 4874 4837 +e 4874 4873 4837 +e 4839 4875 4838 +e 4875 4874 4838 +e 4840 4876 4839 +e 4876 4875 4839 +e 4841 4877 4840 +e 4877 4876 4840 +e 4842 4878 4841 +e 4878 4877 4841 +e 4843 4879 4842 +e 4879 4878 4842 +e 4844 4880 4843 +e 4880 4879 4843 +e 4845 4881 4844 +e 4881 4880 4844 +e 4846 4882 4845 +e 4882 4881 4845 +e 4847 4883 4846 +e 4883 4882 4846 +e 4848 4884 4847 +e 4884 4883 4847 +e 4849 4885 4848 +e 4885 4884 4848 +e 4850 4886 4849 +e 4886 4885 4849 +e 4851 4887 4852 +e 4887 4888 4852 +e 4853 4889 4851 +e 4889 4887 4851 +e 4854 4890 4853 +e 4890 4889 4853 +e 4855 4891 4854 +e 4891 4890 4854 +e 4856 4892 4855 +e 4892 4891 4855 +e 4857 4893 4856 +e 4893 4892 4856 +e 4858 4894 4857 +e 4894 4893 4857 +e 4859 4895 4858 +e 4895 4894 4858 +e 4860 4896 4859 +e 4896 4895 4859 +e 4861 4897 4860 +e 4897 4896 4860 +e 4862 4898 4861 +e 4898 4897 4861 +e 4863 4899 4862 +e 4899 4898 4862 +e 4864 4900 4863 +e 4900 4899 4863 +e 4865 4901 4864 +e 4901 4900 4864 +e 4866 4902 4865 +e 4902 4901 4865 +e 4867 4903 4866 +e 4903 4902 4866 +e 4868 4904 4867 +e 4904 4903 4867 +e 4647 4649 4904 +e 4868 4647 4904 +e 4869 4905 4650 +e 4648 4869 4650 +e 4870 4906 4869 +e 4906 4905 4869 +e 4871 4907 4870 +e 4907 4906 4870 +e 4872 4908 4871 +e 4908 4907 4871 +e 4873 4909 4872 +e 4909 4908 4872 +e 4874 4910 4873 +e 4910 4909 4873 +e 4875 4911 4874 +e 4911 4910 4874 +e 4876 4912 4875 +e 4912 4911 4875 +e 4877 4913 4876 +e 4913 4912 4876 +e 4878 4914 4877 +e 4914 4913 4877 +e 4879 4915 4878 +e 4915 4914 4878 +e 4880 4916 4879 +e 4916 4915 4879 +e 4881 4917 4880 +e 4917 4916 4880 +e 4882 4918 4881 +e 4918 4917 4881 +e 4883 4919 4882 +e 4919 4918 4882 +e 4884 4920 4883 +e 4920 4919 4883 +e 4885 4921 4884 +e 4921 4920 4884 +e 4886 4922 4885 +e 4922 4921 4885 +e 4887 4923 4888 +e 4923 4924 4888 +e 4889 4925 4887 +e 4925 4923 4887 +e 4890 4926 4889 +e 4926 4925 4889 +e 4891 4927 4890 +e 4927 4926 4890 +e 4892 4928 4891 +e 4928 4927 4891 +e 4893 4929 4892 +e 4929 4928 4892 +e 4894 4930 4893 +e 4930 4929 4893 +e 4895 4931 4894 +e 4931 4930 4894 +e 4896 4932 4895 +e 4932 4931 4895 +e 4897 4933 4896 +e 4933 4932 4896 +e 4898 4934 4897 +e 4934 4933 4897 +e 4899 4935 4898 +e 4935 4934 4898 +e 4900 4936 4899 +e 4936 4935 4899 +e 4901 4937 4900 +e 4937 4936 4900 +e 4902 4938 4901 +e 4938 4937 4901 +e 4903 4939 4902 +e 4939 4938 4902 +e 4904 4940 4903 +e 4940 4939 4903 +e 4649 4651 4940 +e 4904 4649 4940 +e 4905 4941 4652 +e 4650 4905 4652 +e 4906 4942 4905 +e 4942 4941 4905 +e 4907 4943 4906 +e 4943 4942 4906 +e 4908 4944 4907 +e 4944 4943 4907 +e 4909 4945 4908 +e 4945 4944 4908 +e 4910 4946 4909 +e 4946 4945 4909 +e 4911 4947 4910 +e 4947 4946 4910 +e 4912 4948 4911 +e 4948 4947 4911 +e 4913 4949 4912 +e 4949 4948 4912 +e 4914 4950 4913 +e 4950 4949 4913 +e 4915 4951 4914 +e 4951 4950 4914 +e 4916 4952 4915 +e 4952 4951 4915 +e 4917 4953 4916 +e 4953 4952 4916 +e 4918 4954 4917 +e 4954 4953 4917 +e 4919 4955 4918 +e 4955 4954 4918 +e 4920 4956 4919 +e 4956 4955 4919 +e 4921 4957 4920 +e 4957 4956 4920 +e 4922 4958 4921 +e 4958 4957 4921 +e 4923 4959 4924 +e 4959 4960 4924 +e 4925 4961 4923 +e 4961 4959 4923 +e 4926 4962 4925 +e 4962 4961 4925 +e 4927 4963 4926 +e 4963 4962 4926 +e 4928 4964 4927 +e 4964 4963 4927 +e 4929 4965 4928 +e 4965 4964 4928 +e 4930 4966 4929 +e 4966 4965 4929 +e 4931 4967 4930 +e 4967 4966 4930 +e 4932 4968 4931 +e 4968 4967 4931 +e 4933 4969 4932 +e 4969 4968 4932 +e 4934 4970 4933 +e 4970 4969 4933 +e 4935 4971 4934 +e 4971 4970 4934 +e 4936 4972 4935 +e 4972 4971 4935 +e 4937 4973 4936 +e 4973 4972 4936 +e 4938 4974 4937 +e 4974 4973 4937 +e 4939 4975 4938 +e 4975 4974 4938 +e 4940 4976 4939 +e 4976 4975 4939 +e 4651 4653 4976 +e 4940 4651 4976 +e 4941 4977 4654 +e 4652 4941 4654 +e 4942 4978 4941 +e 4978 4977 4941 +e 4943 4979 4942 +e 4979 4978 4942 +e 4944 4980 4943 +e 4980 4979 4943 +e 4945 4981 4944 +e 4981 4980 4944 +e 4946 4982 4945 +e 4982 4981 4945 +e 4947 4983 4946 +e 4983 4982 4946 +e 4948 4984 4947 +e 4984 4983 4947 +e 4949 4985 4948 +e 4985 4984 4948 +e 4950 4986 4949 +e 4986 4985 4949 +e 4951 4987 4950 +e 4987 4986 4950 +e 4952 4988 4951 +e 4988 4987 4951 +e 4953 4989 4952 +e 4989 4988 4952 +e 4954 4990 4953 +e 4990 4989 4953 +e 4955 4991 4954 +e 4991 4990 4954 +e 4956 4992 4955 +e 4992 4991 4955 +e 4957 4993 4956 +e 4993 4992 4956 +e 4958 4994 4957 +e 4994 4993 4957 +e 4959 4995 4960 +e 4995 4996 4960 +e 4961 4997 4959 +e 4997 4995 4959 +e 4962 4998 4961 +e 4998 4997 4961 +e 4963 4999 4962 +e 4999 4998 4962 +e 4964 5000 4963 +e 5000 4999 4963 +e 4965 5001 4964 +e 5001 5000 4964 +e 4966 5002 4965 +e 5002 5001 4965 +e 4967 5003 4966 +e 5003 5002 4966 +e 4968 5004 4967 +e 5004 5003 4967 +e 4969 5005 4968 +e 5005 5004 4968 +e 4970 5006 4969 +e 5006 5005 4969 +e 4971 5007 4970 +e 5007 5006 4970 +e 4972 5008 4971 +e 5008 5007 4971 +e 4973 5009 4972 +e 5009 5008 4972 +e 4974 5010 4973 +e 5010 5009 4973 +e 4975 5011 4974 +e 5011 5010 4974 +e 4976 5012 4975 +e 5012 5011 4975 +e 4653 4655 5012 +e 4976 4653 5012 +e 4977 5013 4656 +e 4654 4977 4656 +e 4978 5014 4977 +e 5014 5013 4977 +e 4979 5015 4978 +e 5015 5014 4978 +e 4980 5016 4979 +e 5016 5015 4979 +e 4981 5017 4980 +e 5017 5016 4980 +e 4982 5018 4981 +e 5018 5017 4981 +e 4983 5019 4982 +e 5019 5018 4982 +e 4984 5020 4983 +e 5020 5019 4983 +e 4985 5021 4984 +e 5021 5020 4984 +e 4986 5022 4985 +e 5022 5021 4985 +e 4987 5023 4986 +e 5023 5022 4986 +e 4988 5024 4987 +e 5024 5023 4987 +e 4989 5025 4988 +e 5025 5024 4988 +e 4990 5026 4989 +e 5026 5025 4989 +e 4991 5027 4990 +e 5027 5026 4990 +e 4992 5028 4991 +e 5028 5027 4991 +e 4993 5029 4992 +e 5029 5028 4992 +e 4994 5030 4993 +e 5030 5029 4993 +e 4995 5031 4996 +e 5031 5032 4996 +e 4997 5033 4995 +e 5033 5031 4995 +e 4998 5034 4997 +e 5034 5033 4997 +e 4999 5035 4998 +e 5035 5034 4998 +e 5000 5036 4999 +e 5036 5035 4999 +e 5001 5037 5000 +e 5037 5036 5000 +e 5002 5038 5001 +e 5038 5037 5001 +e 5003 5039 5002 +e 5039 5038 5002 +e 5004 5040 5003 +e 5040 5039 5003 +e 5005 5041 5004 +e 5041 5040 5004 +e 5006 5042 5005 +e 5042 5041 5005 +e 5007 5043 5006 +e 5043 5042 5006 +e 5008 5044 5007 +e 5044 5043 5007 +e 5009 5045 5008 +e 5045 5044 5008 +e 5010 5046 5009 +e 5046 5045 5009 +e 5011 5047 5010 +e 5047 5046 5010 +e 5012 5048 5011 +e 5048 5047 5011 +e 4655 4657 5048 +e 5012 4655 5048 +e 5013 5049 4658 +e 4656 5013 4658 +e 5014 5050 5013 +e 5050 5049 5013 +e 5015 5051 5014 +e 5051 5050 5014 +e 5016 5052 5015 +e 5052 5051 5015 +e 5017 5053 5016 +e 5053 5052 5016 +e 5018 5054 5017 +e 5054 5053 5017 +e 5019 5055 5018 +e 5055 5054 5018 +e 5020 5056 5019 +e 5056 5055 5019 +e 5021 5057 5020 +e 5057 5056 5020 +e 5022 5058 5021 +e 5058 5057 5021 +e 5023 5059 5022 +e 5059 5058 5022 +e 5024 5060 5023 +e 5060 5059 5023 +e 5025 5061 5024 +e 5061 5060 5024 +e 5026 5062 5025 +e 5062 5061 5025 +e 5027 5063 5026 +e 5063 5062 5026 +e 5028 5064 5027 +e 5064 5063 5027 +e 5029 5065 5028 +e 5065 5064 5028 +e 5030 5066 5029 +e 5066 5065 5029 +e 5031 5067 5032 +e 5067 5068 5032 +e 5033 5069 5031 +e 5069 5067 5031 +e 5034 5070 5033 +e 5070 5069 5033 +e 5035 5071 5034 +e 5071 5070 5034 +e 5036 5072 5035 +e 5072 5071 5035 +e 5037 5073 5036 +e 5073 5072 5036 +e 5038 5074 5037 +e 5074 5073 5037 +e 5039 5075 5038 +e 5075 5074 5038 +e 5040 5076 5039 +e 5076 5075 5039 +e 5041 5077 5040 +e 5077 5076 5040 +e 5042 5078 5041 +e 5078 5077 5041 +e 5043 5079 5042 +e 5079 5078 5042 +e 5044 5080 5043 +e 5080 5079 5043 +e 5045 5081 5044 +e 5081 5080 5044 +e 5046 5082 5045 +e 5082 5081 5045 +e 5047 5083 5046 +e 5083 5082 5046 +e 5048 5084 5047 +e 5084 5083 5047 +e 4657 4659 5084 +e 5048 4657 5084 +e 5049 5085 4660 +e 4658 5049 4660 +e 5050 5086 5049 +e 5086 5085 5049 +e 5051 5087 5050 +e 5087 5086 5050 +e 5052 5088 5051 +e 5088 5087 5051 +e 5053 5089 5052 +e 5089 5088 5052 +e 5054 5090 5053 +e 5090 5089 5053 +e 5055 5091 5054 +e 5091 5090 5054 +e 5056 5092 5055 +e 5092 5091 5055 +e 5057 5093 5056 +e 5093 5092 5056 +e 5058 5094 5057 +e 5094 5093 5057 +e 5059 5095 5058 +e 5095 5094 5058 +e 5060 5096 5059 +e 5096 5095 5059 +e 5061 5097 5060 +e 5097 5096 5060 +e 5062 5098 5061 +e 5098 5097 5061 +e 5063 5099 5062 +e 5099 5098 5062 +e 5064 5100 5063 +e 5100 5099 5063 +e 5065 5101 5064 +e 5101 5100 5064 +e 5066 5102 5065 +e 5102 5101 5065 +e 5067 5103 5068 +e 5103 5104 5068 +e 5069 5105 5067 +e 5105 5103 5067 +e 5070 5106 5069 +e 5106 5105 5069 +e 5071 5107 5070 +e 5107 5106 5070 +e 5072 5108 5071 +e 5108 5107 5071 +e 5073 5109 5072 +e 5109 5108 5072 +e 5074 5110 5073 +e 5110 5109 5073 +e 5075 5111 5074 +e 5111 5110 5074 +e 5076 5112 5075 +e 5112 5111 5075 +e 5077 5113 5076 +e 5113 5112 5076 +e 5078 5114 5077 +e 5114 5113 5077 +e 5079 5115 5078 +e 5115 5114 5078 +e 5080 5116 5079 +e 5116 5115 5079 +e 5081 5117 5080 +e 5117 5116 5080 +e 5082 5118 5081 +e 5118 5117 5081 +e 5083 5119 5082 +e 5119 5118 5082 +e 5084 5120 5083 +e 5120 5119 5083 +e 4659 4661 5120 +e 5084 4659 5120 +e 5085 5121 4662 +e 4660 5085 4662 +e 5086 5122 5085 +e 5122 5121 5085 +e 5087 5123 5086 +e 5123 5122 5086 +e 5088 5124 5087 +e 5124 5123 5087 +e 5089 5125 5088 +e 5125 5124 5088 +e 5090 5126 5089 +e 5126 5125 5089 +e 5091 5127 5090 +e 5127 5126 5090 +e 5092 5128 5091 +e 5128 5127 5091 +e 5093 5129 5092 +e 5129 5128 5092 +e 5094 5130 5093 +e 5130 5129 5093 +e 5095 5131 5094 +e 5131 5130 5094 +e 5096 5132 5095 +e 5132 5131 5095 +e 5097 5133 5096 +e 5133 5132 5096 +e 5098 5134 5097 +e 5134 5133 5097 +e 5099 5135 5098 +e 5135 5134 5098 +e 5100 5136 5099 +e 5136 5135 5099 +e 5101 5137 5100 +e 5137 5136 5100 +e 5102 5138 5101 +e 5138 5137 5101 +e 5103 5139 5104 +e 5139 5140 5104 +e 5105 5141 5103 +e 5141 5139 5103 +e 5106 5142 5105 +e 5142 5141 5105 +e 5107 5143 5106 +e 5143 5142 5106 +e 5108 5144 5107 +e 5144 5143 5107 +e 5109 5145 5108 +e 5145 5144 5108 +e 5110 5146 5109 +e 5146 5145 5109 +e 5111 5147 5110 +e 5147 5146 5110 +e 5112 5148 5111 +e 5148 5147 5111 +e 5113 5149 5112 +e 5149 5148 5112 +e 5114 5150 5113 +e 5150 5149 5113 +e 5115 5151 5114 +e 5151 5150 5114 +e 5116 5152 5115 +e 5152 5151 5115 +e 5117 5153 5116 +e 5153 5152 5116 +e 5118 5154 5117 +e 5154 5153 5117 +e 5119 5155 5118 +e 5155 5154 5118 +e 5120 5156 5119 +e 5156 5155 5119 +e 4661 4663 5156 +e 5120 4661 5156 +e 5121 5157 4664 +e 4662 5121 4664 +e 5122 5158 5121 +e 5158 5157 5121 +e 5123 5159 5122 +e 5159 5158 5122 +e 5124 5160 5123 +e 5160 5159 5123 +e 5125 5161 5124 +e 5161 5160 5124 +e 5126 5162 5125 +e 5162 5161 5125 +e 5127 5163 5126 +e 5163 5162 5126 +e 5128 5164 5127 +e 5164 5163 5127 +e 5129 5165 5128 +e 5165 5164 5128 +e 5130 5166 5129 +e 5166 5165 5129 +e 5131 5167 5130 +e 5167 5166 5130 +e 5132 5168 5131 +e 5168 5167 5131 +e 5133 5169 5132 +e 5169 5168 5132 +e 5134 5170 5133 +e 5170 5169 5133 +e 5135 5171 5134 +e 5171 5170 5134 +e 5136 5172 5135 +e 5172 5171 5135 +e 5137 5173 5136 +e 5173 5172 5136 +e 5138 5174 5137 +e 5174 5173 5137 +e 5139 5175 5140 +e 5175 5176 5140 +e 5141 5177 5139 +e 5177 5175 5139 +e 5142 5178 5141 +e 5178 5177 5141 +e 5143 5179 5142 +e 5179 5178 5142 +e 5144 5180 5143 +e 5180 5179 5143 +e 5145 5181 5144 +e 5181 5180 5144 +e 5146 5182 5145 +e 5182 5181 5145 +e 5147 5183 5146 +e 5183 5182 5146 +e 5148 5184 5147 +e 5184 5183 5147 +e 5149 5185 5148 +e 5185 5184 5148 +e 5150 5186 5149 +e 5186 5185 5149 +e 5151 5187 5150 +e 5187 5186 5150 +e 5152 5188 5151 +e 5188 5187 5151 +e 5153 5189 5152 +e 5189 5188 5152 +e 5154 5190 5153 +e 5190 5189 5153 +e 5155 5191 5154 +e 5191 5190 5154 +e 5156 5192 5155 +e 5192 5191 5155 +e 4663 4665 5192 +e 5156 4663 5192 +e 5157 5193 4666 +e 4664 5157 4666 +e 5158 5194 5157 +e 5194 5193 5157 +e 5159 5195 5158 +e 5195 5194 5158 +e 5160 5196 5159 +e 5196 5195 5159 +e 5161 5197 5160 +e 5197 5196 5160 +e 5162 5198 5161 +e 5198 5197 5161 +e 5163 5199 5162 +e 5199 5198 5162 +e 5164 5200 5163 +e 5200 5199 5163 +e 5165 5201 5164 +e 5201 5200 5164 +e 5166 5202 5165 +e 5202 5201 5165 +e 5167 5203 5166 +e 5203 5202 5166 +e 5168 5204 5167 +e 5204 5203 5167 +e 5169 5205 5168 +e 5205 5204 5168 +e 5170 5206 5169 +e 5206 5205 5169 +e 5171 5207 5170 +e 5207 5206 5170 +e 5172 5208 5171 +e 5208 5207 5171 +e 5173 5209 5172 +e 5209 5208 5172 +e 5174 5210 5173 +e 5210 5209 5173 +e 5175 5211 5176 +e 5211 5212 5176 +e 5177 5213 5175 +e 5213 5211 5175 +e 5178 5214 5177 +e 5214 5213 5177 +e 5179 5215 5178 +e 5215 5214 5178 +e 5180 5216 5179 +e 5216 5215 5179 +e 5181 5217 5180 +e 5217 5216 5180 +e 5182 5218 5181 +e 5218 5217 5181 +e 5183 5219 5182 +e 5219 5218 5182 +e 5184 5220 5183 +e 5220 5219 5183 +e 5185 5221 5184 +e 5221 5220 5184 +e 5186 5222 5185 +e 5222 5221 5185 +e 5187 5223 5186 +e 5223 5222 5186 +e 5188 5224 5187 +e 5224 5223 5187 +e 5189 5225 5188 +e 5225 5224 5188 +e 5190 5226 5189 +e 5226 5225 5189 +e 5191 5227 5190 +e 5227 5226 5190 +e 5192 5228 5191 +e 5228 5227 5191 +e 4665 4667 5228 +e 5192 4665 5228 +e 5193 5229 4668 +e 4666 5193 4668 +e 5194 5230 5193 +e 5230 5229 5193 +e 5195 5231 5194 +e 5231 5230 5194 +e 5196 5232 5195 +e 5232 5231 5195 +e 5197 5233 5196 +e 5233 5232 5196 +e 5198 5234 5197 +e 5234 5233 5197 +e 5199 5235 5198 +e 5235 5234 5198 +e 5200 5236 5199 +e 5236 5235 5199 +e 5201 5237 5200 +e 5237 5236 5200 +e 5202 5238 5201 +e 5238 5237 5201 +e 5203 5239 5202 +e 5239 5238 5202 +e 5204 5240 5203 +e 5240 5239 5203 +e 5205 5241 5204 +e 5241 5240 5204 +e 5206 5242 5205 +e 5242 5241 5205 +e 5207 5243 5206 +e 5243 5242 5206 +e 5208 5244 5207 +e 5244 5243 5207 +e 5209 5245 5208 +e 5245 5244 5208 +e 5210 5246 5209 +e 5246 5245 5209 +e 5211 5247 5212 +e 5247 5248 5212 +e 5213 5249 5211 +e 5249 5247 5211 +e 5214 5250 5213 +e 5250 5249 5213 +e 5215 5251 5214 +e 5251 5250 5214 +e 5216 5252 5215 +e 5252 5251 5215 +e 5217 5253 5216 +e 5253 5252 5216 +e 5218 5254 5217 +e 5254 5253 5217 +e 5219 5255 5218 +e 5255 5254 5218 +e 5220 5256 5219 +e 5256 5255 5219 +e 5221 5257 5220 +e 5257 5256 5220 +e 5222 5258 5221 +e 5258 5257 5221 +e 5223 5259 5222 +e 5259 5258 5222 +e 5224 5260 5223 +e 5260 5259 5223 +e 5225 5261 5224 +e 5261 5260 5224 +e 5226 5262 5225 +e 5262 5261 5225 +e 5227 5263 5226 +e 5263 5262 5226 +e 5228 5264 5227 +e 5264 5263 5227 +e 4667 4669 5264 +e 5228 4667 5264 +e 5229 5265 4670 +e 4668 5229 4670 +e 5230 5266 5229 +e 5266 5265 5229 +e 5231 5267 5230 +e 5267 5266 5230 +e 5232 5268 5231 +e 5268 5267 5231 +e 5233 5269 5232 +e 5269 5268 5232 +e 5234 5270 5233 +e 5270 5269 5233 +e 5235 5271 5234 +e 5271 5270 5234 +e 5236 5272 5235 +e 5272 5271 5235 +e 5237 5273 5236 +e 5273 5272 5236 +e 5238 5274 5237 +e 5274 5273 5237 +e 5239 5275 5238 +e 5275 5274 5238 +e 5240 5276 5239 +e 5276 5275 5239 +e 5241 5277 5240 +e 5277 5276 5240 +e 5242 5278 5241 +e 5278 5277 5241 +e 5243 5279 5242 +e 5279 5278 5242 +e 5244 5280 5243 +e 5280 5279 5243 +e 5245 5281 5244 +e 5281 5280 5244 +e 5246 5282 5245 +e 5282 5281 5245 +e 5247 5283 5248 +e 5283 5284 5248 +e 5249 5285 5247 +e 5285 5283 5247 +e 5250 5286 5249 +e 5286 5285 5249 +e 5251 5287 5250 +e 5287 5286 5250 +e 5252 5288 5251 +e 5288 5287 5251 +e 5253 5289 5252 +e 5289 5288 5252 +e 5254 5290 5253 +e 5290 5289 5253 +e 5255 5291 5254 +e 5291 5290 5254 +e 5256 5292 5255 +e 5292 5291 5255 +e 5257 5293 5256 +e 5293 5292 5256 +e 5258 5294 5257 +e 5294 5293 5257 +e 5259 5295 5258 +e 5295 5294 5258 +e 5260 5296 5259 +e 5296 5295 5259 +e 5261 5297 5260 +e 5297 5296 5260 +e 5262 5298 5261 +e 5298 5297 5261 +e 5263 5299 5262 +e 5299 5298 5262 +e 5264 5300 5263 +e 5300 5299 5263 +e 4669 4671 5300 +e 5264 4669 5300 +e 5265 5301 4672 +e 4670 5265 4672 +e 5266 5302 5265 +e 5302 5301 5265 +e 5267 5303 5266 +e 5303 5302 5266 +e 5268 5304 5267 +e 5304 5303 5267 +e 5269 5305 5268 +e 5305 5304 5268 +e 5270 5306 5269 +e 5306 5305 5269 +e 5271 5307 5270 +e 5307 5306 5270 +e 5272 5308 5271 +e 5308 5307 5271 +e 5273 5309 5272 +e 5309 5308 5272 +e 5274 5310 5273 +e 5310 5309 5273 +e 5275 5311 5274 +e 5311 5310 5274 +e 5276 5312 5275 +e 5312 5311 5275 +e 5277 5313 5276 +e 5313 5312 5276 +e 5278 5314 5277 +e 5314 5313 5277 +e 5279 5315 5278 +e 5315 5314 5278 +e 5280 5316 5279 +e 5316 5315 5279 +e 5281 5317 5280 +e 5317 5316 5280 +e 5282 5318 5281 +e 5318 5317 5281 +e 5283 5319 5284 +e 5319 5320 5284 +e 5285 5321 5283 +e 5321 5319 5283 +e 5286 5322 5285 +e 5322 5321 5285 +e 5287 5323 5286 +e 5323 5322 5286 +e 5288 5324 5287 +e 5324 5323 5287 +e 5289 5325 5288 +e 5325 5324 5288 +e 5290 5326 5289 +e 5326 5325 5289 +e 5291 5327 5290 +e 5327 5326 5290 +e 5292 5328 5291 +e 5328 5327 5291 +e 5293 5329 5292 +e 5329 5328 5292 +e 5294 5330 5293 +e 5330 5329 5293 +e 5295 5331 5294 +e 5331 5330 5294 +e 5296 5332 5295 +e 5332 5331 5295 +e 5297 5333 5296 +e 5333 5332 5296 +e 5298 5334 5297 +e 5334 5333 5297 +e 5299 5335 5298 +e 5335 5334 5298 +e 5300 5336 5299 +e 5336 5335 5299 +e 4671 4673 5336 +e 5300 4671 5336 +e 5301 5337 4674 +e 4672 5301 4674 +e 5302 5338 5301 +e 5338 5337 5301 +e 5303 5339 5302 +e 5339 5338 5302 +e 5304 5340 5303 +e 5340 5339 5303 +e 5305 5341 5304 +e 5341 5340 5304 +e 5306 5342 5305 +e 5342 5341 5305 +e 5307 5343 5306 +e 5343 5342 5306 +e 5308 5344 5307 +e 5344 5343 5307 +e 5309 5345 5308 +e 5345 5344 5308 +e 5310 5346 5309 +e 5346 5345 5309 +e 5311 5347 5310 +e 5347 5346 5310 +e 5312 5348 5311 +e 5348 5347 5311 +e 5313 5349 5312 +e 5349 5348 5312 +e 5314 5350 5313 +e 5350 5349 5313 +e 5315 5351 5314 +e 5351 5350 5314 +e 5316 5352 5315 +e 5352 5351 5315 +e 5317 5353 5316 +e 5353 5352 5316 +e 5318 5354 5317 +e 5354 5353 5317 +e 5319 5355 5320 +e 5355 5356 5320 +e 5321 5357 5319 +e 5357 5355 5319 +e 5322 5358 5321 +e 5358 5357 5321 +e 5323 5359 5322 +e 5359 5358 5322 +e 5324 5360 5323 +e 5360 5359 5323 +e 5325 5361 5324 +e 5361 5360 5324 +e 5326 5362 5325 +e 5362 5361 5325 +e 5327 5363 5326 +e 5363 5362 5326 +e 5328 5364 5327 +e 5364 5363 5327 +e 5329 5365 5328 +e 5365 5364 5328 +e 5330 5366 5329 +e 5366 5365 5329 +e 5331 5367 5330 +e 5367 5366 5330 +e 5332 5368 5331 +e 5368 5367 5331 +e 5333 5369 5332 +e 5369 5368 5332 +e 5334 5370 5333 +e 5370 5369 5333 +e 5335 5371 5334 +e 5371 5370 5334 +e 5336 5372 5335 +e 5372 5371 5335 +e 4673 4675 5372 +e 5336 4673 5372 +e 5337 5373 4676 +e 4674 5337 4676 +e 5338 5374 5337 +e 5374 5373 5337 +e 5339 5375 5338 +e 5375 5374 5338 +e 5340 5376 5339 +e 5376 5375 5339 +e 5341 5377 5340 +e 5377 5376 5340 +e 5342 5378 5341 +e 5378 5377 5341 +e 5343 5379 5342 +e 5379 5378 5342 +e 5344 5380 5343 +e 5380 5379 5343 +e 5345 5381 5344 +e 5381 5380 5344 +e 5346 5382 5345 +e 5382 5381 5345 +e 5347 5383 5346 +e 5383 5382 5346 +e 5348 5384 5347 +e 5384 5383 5347 +e 5349 5385 5348 +e 5385 5384 5348 +e 5350 5386 5349 +e 5386 5385 5349 +e 5351 5387 5350 +e 5387 5386 5350 +e 5352 5388 5351 +e 5388 5387 5351 +e 5353 5389 5352 +e 5389 5388 5352 +e 5354 5390 5353 +e 5390 5389 5353 +e 5355 5391 5356 +e 5391 5392 5356 +e 5357 5393 5355 +e 5393 5391 5355 +e 5358 5394 5357 +e 5394 5393 5357 +e 5359 5395 5358 +e 5395 5394 5358 +e 5360 5396 5359 +e 5396 5395 5359 +e 5361 5397 5360 +e 5397 5396 5360 +e 5362 5398 5361 +e 5398 5397 5361 +e 5363 5399 5362 +e 5399 5398 5362 +e 5364 5400 5363 +e 5400 5399 5363 +e 5365 5401 5364 +e 5401 5400 5364 +e 5366 5402 5365 +e 5402 5401 5365 +e 5367 5403 5366 +e 5403 5402 5366 +e 5368 5404 5367 +e 5404 5403 5367 +e 5369 5405 5368 +e 5405 5404 5368 +e 5370 5406 5369 +e 5406 5405 5369 +e 5371 5407 5370 +e 5407 5406 5370 +e 5372 5408 5371 +e 5408 5407 5371 +e 4675 4677 5408 +e 5372 4675 5408 +e 5373 5409 4678 +e 4676 5373 4678 +e 5374 5410 5373 +e 5410 5409 5373 +e 5375 5411 5374 +e 5411 5410 5374 +e 5376 5412 5375 +e 5412 5411 5375 +e 5377 5413 5376 +e 5413 5412 5376 +e 5378 5414 5377 +e 5414 5413 5377 +e 5379 5415 5378 +e 5415 5414 5378 +e 5380 5416 5379 +e 5416 5415 5379 +e 5381 5417 5380 +e 5417 5416 5380 +e 5382 5418 5381 +e 5418 5417 5381 +e 5383 5419 5382 +e 5419 5418 5382 +e 5384 5420 5383 +e 5420 5419 5383 +e 5385 5421 5384 +e 5421 5420 5384 +e 5386 5422 5385 +e 5422 5421 5385 +e 5387 5423 5386 +e 5423 5422 5386 +e 5388 5424 5387 +e 5424 5423 5387 +e 5389 5425 5388 +e 5425 5424 5388 +e 5390 5426 5389 +e 5426 5425 5389 +e 5391 5427 5392 +e 5427 5428 5392 +e 5393 5429 5391 +e 5429 5427 5391 +e 5394 5430 5393 +e 5430 5429 5393 +e 5395 5431 5394 +e 5431 5430 5394 +e 5396 5432 5395 +e 5432 5431 5395 +e 5397 5433 5396 +e 5433 5432 5396 +e 5398 5434 5397 +e 5434 5433 5397 +e 5399 5435 5398 +e 5435 5434 5398 +e 5400 5436 5399 +e 5436 5435 5399 +e 5401 5437 5400 +e 5437 5436 5400 +e 5402 5438 5401 +e 5438 5437 5401 +e 5403 5439 5402 +e 5439 5438 5402 +e 5404 5440 5403 +e 5440 5439 5403 +e 5405 5441 5404 +e 5441 5440 5404 +e 5406 5442 5405 +e 5442 5441 5405 +e 5407 5443 5406 +e 5443 5442 5406 +e 5408 5444 5407 +e 5444 5443 5407 +e 4677 4679 5444 +e 5408 4677 5444 +e 5409 5445 4680 +e 4678 5409 4680 +e 5410 5446 5409 +e 5446 5445 5409 +e 5411 5447 5410 +e 5447 5446 5410 +e 5412 5448 5411 +e 5448 5447 5411 +e 5413 5449 5412 +e 5449 5448 5412 +e 5414 5450 5413 +e 5450 5449 5413 +e 5415 5451 5414 +e 5451 5450 5414 +e 5416 5452 5415 +e 5452 5451 5415 +e 5417 5453 5416 +e 5453 5452 5416 +e 5418 5454 5417 +e 5454 5453 5417 +e 5419 5455 5418 +e 5455 5454 5418 +e 5420 5456 5419 +e 5456 5455 5419 +e 5421 5457 5420 +e 5457 5456 5420 +e 5422 5458 5421 +e 5458 5457 5421 +e 5423 5459 5422 +e 5459 5458 5422 +e 5424 5460 5423 +e 5460 5459 5423 +e 5425 5461 5424 +e 5461 5460 5424 +e 5426 5462 5425 +e 5462 5461 5425 +e 5427 5463 5428 +e 5463 5464 5428 +e 5429 5465 5427 +e 5465 5463 5427 +e 5430 5466 5429 +e 5466 5465 5429 +e 5431 5467 5430 +e 5467 5466 5430 +e 5432 5468 5431 +e 5468 5467 5431 +e 5433 5469 5432 +e 5469 5468 5432 +e 5434 5470 5433 +e 5470 5469 5433 +e 5435 5471 5434 +e 5471 5470 5434 +e 5436 5472 5435 +e 5472 5471 5435 +e 5437 5473 5436 +e 5473 5472 5436 +e 5438 5474 5437 +e 5474 5473 5437 +e 5439 5475 5438 +e 5475 5474 5438 +e 5440 5476 5439 +e 5476 5475 5439 +e 5441 5477 5440 +e 5477 5476 5440 +e 5442 5478 5441 +e 5478 5477 5441 +e 5443 5479 5442 +e 5479 5478 5442 +e 5444 5480 5443 +e 5480 5479 5443 +e 4679 4681 5480 +e 5444 4679 5480 +e 5445 5481 4682 +e 4680 5445 4682 +e 5446 5482 5445 +e 5482 5481 5445 +e 5447 5483 5446 +e 5483 5482 5446 +e 5448 5484 5447 +e 5484 5483 5447 +e 5449 5485 5448 +e 5485 5484 5448 +e 5450 5486 5449 +e 5486 5485 5449 +e 5451 5487 5450 +e 5487 5486 5450 +e 5452 5488 5451 +e 5488 5487 5451 +e 5453 5489 5452 +e 5489 5488 5452 +e 5454 5490 5453 +e 5490 5489 5453 +e 5455 5491 5454 +e 5491 5490 5454 +e 5456 5492 5455 +e 5492 5491 5455 +e 5457 5493 5456 +e 5493 5492 5456 +e 5458 5494 5457 +e 5494 5493 5457 +e 5459 5495 5458 +e 5495 5494 5458 +e 5460 5496 5459 +e 5496 5495 5459 +e 5461 5497 5460 +e 5497 5496 5460 +e 5462 5498 5461 +e 5498 5497 5461 +e 5463 5499 5464 +e 5499 5500 5464 +e 5465 5501 5463 +e 5501 5499 5463 +e 5466 5502 5465 +e 5502 5501 5465 +e 5467 5503 5466 +e 5503 5502 5466 +e 5468 5504 5467 +e 5504 5503 5467 +e 5469 5505 5468 +e 5505 5504 5468 +e 5470 5506 5469 +e 5506 5505 5469 +e 5471 5507 5470 +e 5507 5506 5470 +e 5472 5508 5471 +e 5508 5507 5471 +e 5473 5509 5472 +e 5509 5508 5472 +e 5474 5510 5473 +e 5510 5509 5473 +e 5475 5511 5474 +e 5511 5510 5474 +e 5476 5512 5475 +e 5512 5511 5475 +e 5477 5513 5476 +e 5513 5512 5476 +e 5478 5514 5477 +e 5514 5513 5477 +e 5479 5515 5478 +e 5515 5514 5478 +e 5480 5516 5479 +e 5516 5515 5479 +e 4681 4683 5516 +e 5480 4681 5516 +e 5481 5517 4684 +e 4682 5481 4684 +e 5482 5518 5481 +e 5518 5517 5481 +e 5483 5519 5482 +e 5519 5518 5482 +e 5484 5520 5483 +e 5520 5519 5483 +e 5485 5521 5484 +e 5521 5520 5484 +e 5486 5522 5485 +e 5522 5521 5485 +e 5487 5523 5486 +e 5523 5522 5486 +e 5488 5524 5487 +e 5524 5523 5487 +e 5489 5525 5488 +e 5525 5524 5488 +e 5490 5526 5489 +e 5526 5525 5489 +e 5491 5527 5490 +e 5527 5526 5490 +e 5492 5528 5491 +e 5528 5527 5491 +e 5493 5529 5492 +e 5529 5528 5492 +e 5494 5530 5493 +e 5530 5529 5493 +e 5495 5531 5494 +e 5531 5530 5494 +e 5496 5532 5495 +e 5532 5531 5495 +e 5497 5533 5496 +e 5533 5532 5496 +e 5498 5534 5497 +e 5534 5533 5497 +e 5499 5535 5500 +e 5535 5536 5500 +e 5501 5537 5499 +e 5537 5535 5499 +e 5502 5538 5501 +e 5538 5537 5501 +e 5503 5539 5502 +e 5539 5538 5502 +e 5504 5540 5503 +e 5540 5539 5503 +e 5505 5541 5504 +e 5541 5540 5504 +e 5506 5542 5505 +e 5542 5541 5505 +e 5507 5543 5506 +e 5543 5542 5506 +e 5508 5544 5507 +e 5544 5543 5507 +e 5509 5545 5508 +e 5545 5544 5508 +e 5510 5546 5509 +e 5546 5545 5509 +e 5511 5547 5510 +e 5547 5546 5510 +e 5512 5548 5511 +e 5548 5547 5511 +e 5513 5549 5512 +e 5549 5548 5512 +e 5514 5550 5513 +e 5550 5549 5513 +e 5515 5551 5514 +e 5551 5550 5514 +e 5516 5552 5515 +e 5552 5551 5515 +e 4683 4685 5552 +e 5516 4683 5552 +e 5517 5553 4686 +e 4684 5517 4686 +e 5518 5554 5517 +e 5554 5553 5517 +e 5519 5555 5518 +e 5555 5554 5518 +e 5520 5556 5519 +e 5556 5555 5519 +e 5521 5557 5520 +e 5557 5556 5520 +e 5522 5558 5521 +e 5558 5557 5521 +e 5523 5559 5522 +e 5559 5558 5522 +e 5524 5560 5523 +e 5560 5559 5523 +e 5525 5561 5524 +e 5561 5560 5524 +e 5526 5562 5525 +e 5562 5561 5525 +e 5527 5563 5526 +e 5563 5562 5526 +e 5528 5564 5527 +e 5564 5563 5527 +e 5529 5565 5528 +e 5565 5564 5528 +e 5530 5566 5529 +e 5566 5565 5529 +e 5531 5567 5530 +e 5567 5566 5530 +e 5532 5568 5531 +e 5568 5567 5531 +e 5533 5569 5532 +e 5569 5568 5532 +e 5534 5570 5533 +e 5570 5569 5533 +e 5535 5571 5536 +e 5571 5572 5536 +e 5537 5573 5535 +e 5573 5571 5535 +e 5538 5574 5537 +e 5574 5573 5537 +e 5539 5575 5538 +e 5575 5574 5538 +e 5540 5576 5539 +e 5576 5575 5539 +e 5541 5577 5540 +e 5577 5576 5540 +e 5542 5578 5541 +e 5578 5577 5541 +e 5543 5579 5542 +e 5579 5578 5542 +e 5544 5580 5543 +e 5580 5579 5543 +e 5545 5581 5544 +e 5581 5580 5544 +e 5546 5582 5545 +e 5582 5581 5545 +e 5547 5583 5546 +e 5583 5582 5546 +e 5548 5584 5547 +e 5584 5583 5547 +e 5549 5585 5548 +e 5585 5584 5548 +e 5550 5586 5549 +e 5586 5585 5549 +e 5551 5587 5550 +e 5587 5586 5550 +e 5552 5588 5551 +e 5588 5587 5551 +e 4685 4687 5588 +e 5552 4685 5588 +e 5553 5589 4688 +e 4686 5553 4688 +e 5554 5590 5553 +e 5590 5589 5553 +e 5555 5591 5554 +e 5591 5590 5554 +e 5556 5592 5555 +e 5592 5591 5555 +e 5557 5593 5556 +e 5593 5592 5556 +e 5558 5594 5557 +e 5594 5593 5557 +e 5559 5595 5558 +e 5595 5594 5558 +e 5560 5596 5559 +e 5596 5595 5559 +e 5561 5597 5560 +e 5597 5596 5560 +e 5562 5598 5561 +e 5598 5597 5561 +e 5563 5599 5562 +e 5599 5598 5562 +e 5564 5600 5563 +e 5600 5599 5563 +e 5565 5601 5564 +e 5601 5600 5564 +e 5566 5602 5565 +e 5602 5601 5565 +e 5567 5603 5566 +e 5603 5602 5566 +e 5568 5604 5567 +e 5604 5603 5567 +e 5569 5605 5568 +e 5605 5604 5568 +e 5570 5606 5569 +e 5606 5605 5569 +e 5571 5607 5572 +e 5607 5608 5572 +e 5573 5609 5571 +e 5609 5607 5571 +e 5574 5610 5573 +e 5610 5609 5573 +e 5575 5611 5574 +e 5611 5610 5574 +e 5576 5612 5575 +e 5612 5611 5575 +e 5577 5613 5576 +e 5613 5612 5576 +e 5578 5614 5577 +e 5614 5613 5577 +e 5579 5615 5578 +e 5615 5614 5578 +e 5580 5616 5579 +e 5616 5615 5579 +e 5581 5617 5580 +e 5617 5616 5580 +e 5582 5618 5581 +e 5618 5617 5581 +e 5583 5619 5582 +e 5619 5618 5582 +e 5584 5620 5583 +e 5620 5619 5583 +e 5585 5621 5584 +e 5621 5620 5584 +e 5586 5622 5585 +e 5622 5621 5585 +e 5587 5623 5586 +e 5623 5622 5586 +e 5588 5624 5587 +e 5624 5623 5587 +e 4687 4689 5624 +e 5588 4687 5624 +e 5589 5625 4690 +e 4688 5589 4690 +e 5590 5626 5589 +e 5626 5625 5589 +e 5591 5627 5590 +e 5627 5626 5590 +e 5592 5628 5591 +e 5628 5627 5591 +e 5593 5629 5592 +e 5629 5628 5592 +e 5594 5630 5593 +e 5630 5629 5593 +e 5595 5631 5594 +e 5631 5630 5594 +e 5596 5632 5595 +e 5632 5631 5595 +e 5597 5633 5596 +e 5633 5632 5596 +e 5598 5634 5597 +e 5634 5633 5597 +e 5599 5635 5598 +e 5635 5634 5598 +e 5600 5636 5599 +e 5636 5635 5599 +e 5601 5637 5600 +e 5637 5636 5600 +e 5602 5638 5601 +e 5638 5637 5601 +e 5603 5639 5602 +e 5639 5638 5602 +e 5604 5640 5603 +e 5640 5639 5603 +e 5605 5641 5604 +e 5641 5640 5604 +e 5606 5642 5605 +e 5642 5641 5605 +e 5607 5643 5608 +e 5643 5644 5608 +e 5609 5645 5607 +e 5645 5643 5607 +e 5610 5646 5609 +e 5646 5645 5609 +e 5611 5647 5610 +e 5647 5646 5610 +e 5612 5648 5611 +e 5648 5647 5611 +e 5613 5649 5612 +e 5649 5648 5612 +e 5614 5650 5613 +e 5650 5649 5613 +e 5615 5651 5614 +e 5651 5650 5614 +e 5616 5652 5615 +e 5652 5651 5615 +e 5617 5653 5616 +e 5653 5652 5616 +e 5618 5654 5617 +e 5654 5653 5617 +e 5619 5655 5618 +e 5655 5654 5618 +e 5620 5656 5619 +e 5656 5655 5619 +e 5621 5657 5620 +e 5657 5656 5620 +e 5622 5658 5621 +e 5658 5657 5621 +e 5623 5659 5622 +e 5659 5658 5622 +e 5624 5660 5623 +e 5660 5659 5623 +e 4689 4691 5660 +e 5624 4689 5660 +e 5625 5661 4692 +e 4690 5625 4692 +e 5626 5662 5625 +e 5662 5661 5625 +e 5627 5663 5626 +e 5663 5662 5626 +e 5628 5664 5627 +e 5664 5663 5627 +e 5629 5665 5628 +e 5665 5664 5628 +e 5630 5666 5629 +e 5666 5665 5629 +e 5631 5667 5630 +e 5667 5666 5630 +e 5632 5668 5631 +e 5668 5667 5631 +e 5633 5669 5632 +e 5669 5668 5632 +e 5634 5670 5633 +e 5670 5669 5633 +e 5635 5671 5634 +e 5671 5670 5634 +e 5636 5672 5635 +e 5672 5671 5635 +e 5637 5673 5636 +e 5673 5672 5636 +e 5638 5674 5637 +e 5674 5673 5637 +e 5639 5675 5638 +e 5675 5674 5638 +e 5640 5676 5639 +e 5676 5675 5639 +e 5641 5677 5640 +e 5677 5676 5640 +e 5642 5678 5641 +e 5678 5677 5641 +e 5643 5679 5644 +e 5679 5680 5644 +e 5645 5681 5643 +e 5681 5679 5643 +e 5646 5682 5645 +e 5682 5681 5645 +e 5647 5683 5646 +e 5683 5682 5646 +e 5648 5684 5647 +e 5684 5683 5647 +e 5649 5685 5648 +e 5685 5684 5648 +e 5650 5686 5649 +e 5686 5685 5649 +e 5651 5687 5650 +e 5687 5686 5650 +e 5652 5688 5651 +e 5688 5687 5651 +e 5653 5689 5652 +e 5689 5688 5652 +e 5654 5690 5653 +e 5690 5689 5653 +e 5655 5691 5654 +e 5691 5690 5654 +e 5656 5692 5655 +e 5692 5691 5655 +e 5657 5693 5656 +e 5693 5692 5656 +e 5658 5694 5657 +e 5694 5693 5657 +e 5659 5695 5658 +e 5695 5694 5658 +e 5660 5696 5659 +e 5696 5695 5659 +e 4691 4693 5696 +e 5660 4691 5696 +e 5661 5697 4694 +e 4692 5661 4694 +e 5662 5698 5661 +e 5698 5697 5661 +e 5663 5699 5662 +e 5699 5698 5662 +e 5664 5700 5663 +e 5700 5699 5663 +e 5665 5701 5664 +e 5701 5700 5664 +e 5666 5702 5665 +e 5702 5701 5665 +e 5667 5703 5666 +e 5703 5702 5666 +e 5668 5704 5667 +e 5704 5703 5667 +e 5669 5705 5668 +e 5705 5704 5668 +e 5670 5706 5669 +e 5706 5705 5669 +e 5671 5707 5670 +e 5707 5706 5670 +e 5672 5708 5671 +e 5708 5707 5671 +e 5673 5709 5672 +e 5709 5708 5672 +e 5674 5710 5673 +e 5710 5709 5673 +e 5675 5711 5674 +e 5711 5710 5674 +e 5676 5712 5675 +e 5712 5711 5675 +e 5677 5713 5676 +e 5713 5712 5676 +e 5678 5714 5677 +e 5714 5713 5677 +e 5679 5715 5680 +e 5715 5716 5680 +e 5681 5717 5679 +e 5717 5715 5679 +e 5682 5718 5681 +e 5718 5717 5681 +e 5683 5719 5682 +e 5719 5718 5682 +e 5684 5720 5683 +e 5720 5719 5683 +e 5685 5721 5684 +e 5721 5720 5684 +e 5686 5722 5685 +e 5722 5721 5685 +e 5687 5723 5686 +e 5723 5722 5686 +e 5688 5724 5687 +e 5724 5723 5687 +e 5689 5725 5688 +e 5725 5724 5688 +e 5690 5726 5689 +e 5726 5725 5689 +e 5691 5727 5690 +e 5727 5726 5690 +e 5692 5728 5691 +e 5728 5727 5691 +e 5693 5729 5692 +e 5729 5728 5692 +e 5694 5730 5693 +e 5730 5729 5693 +e 5695 5731 5694 +e 5731 5730 5694 +e 5696 5732 5695 +e 5732 5731 5695 +e 4693 4695 5732 +e 5696 4693 5732 +e 5697 5733 4696 +e 4694 5697 4696 +e 5698 5734 5697 +e 5734 5733 5697 +e 5699 5735 5698 +e 5735 5734 5698 +e 5700 5736 5699 +e 5736 5735 5699 +e 5701 5737 5700 +e 5737 5736 5700 +e 5702 5738 5701 +e 5738 5737 5701 +e 5703 5739 5702 +e 5739 5738 5702 +e 5704 5740 5703 +e 5740 5739 5703 +e 5705 5741 5704 +e 5741 5740 5704 +e 5706 5742 5705 +e 5742 5741 5705 +e 5707 5743 5706 +e 5743 5742 5706 +e 5708 5744 5707 +e 5744 5743 5707 +e 5709 5745 5708 +e 5745 5744 5708 +e 5710 5746 5709 +e 5746 5745 5709 +e 5711 5747 5710 +e 5747 5746 5710 +e 5712 5748 5711 +e 5748 5747 5711 +e 5713 5749 5712 +e 5749 5748 5712 +e 5714 5750 5713 +e 5750 5749 5713 +e 5715 5751 5716 +e 5751 5752 5716 +e 5717 5753 5715 +e 5753 5751 5715 +e 5718 5754 5717 +e 5754 5753 5717 +e 5719 5755 5718 +e 5755 5754 5718 +e 5720 5756 5719 +e 5756 5755 5719 +e 5721 5757 5720 +e 5757 5756 5720 +e 5722 5758 5721 +e 5758 5757 5721 +e 5723 5759 5722 +e 5759 5758 5722 +e 5724 5760 5723 +e 5760 5759 5723 +e 5725 5761 5724 +e 5761 5760 5724 +e 5726 5762 5725 +e 5762 5761 5725 +e 5727 5763 5726 +e 5763 5762 5726 +e 5728 5764 5727 +e 5764 5763 5727 +e 5729 5765 5728 +e 5765 5764 5728 +e 5730 5766 5729 +e 5766 5765 5729 +e 5731 5767 5730 +e 5767 5766 5730 +e 5732 5768 5731 +e 5768 5767 5731 +e 4695 4697 5768 +e 5732 4695 5768 +e 5733 5769 4698 +e 4696 5733 4698 +e 5734 5770 5733 +e 5770 5769 5733 +e 5735 5771 5734 +e 5771 5770 5734 +e 5736 5772 5735 +e 5772 5771 5735 +e 5737 5773 5736 +e 5773 5772 5736 +e 5738 5774 5737 +e 5774 5773 5737 +e 5739 5775 5738 +e 5775 5774 5738 +e 5740 5776 5739 +e 5776 5775 5739 +e 5741 5777 5740 +e 5777 5776 5740 +e 5742 5778 5741 +e 5778 5777 5741 +e 5743 5779 5742 +e 5779 5778 5742 +e 5744 5780 5743 +e 5780 5779 5743 +e 5745 5781 5744 +e 5781 5780 5744 +e 5746 5782 5745 +e 5782 5781 5745 +e 5747 5783 5746 +e 5783 5782 5746 +e 5748 5784 5747 +e 5784 5783 5747 +e 5749 5785 5748 +e 5785 5784 5748 +e 5750 5786 5749 +e 5786 5785 5749 +e 5751 5787 5752 +e 5787 5788 5752 +e 5753 5789 5751 +e 5789 5787 5751 +e 5754 5790 5753 +e 5790 5789 5753 +e 5755 5791 5754 +e 5791 5790 5754 +e 5756 5792 5755 +e 5792 5791 5755 +e 5757 5793 5756 +e 5793 5792 5756 +e 5758 5794 5757 +e 5794 5793 5757 +e 5759 5795 5758 +e 5795 5794 5758 +e 5760 5796 5759 +e 5796 5795 5759 +e 5761 5797 5760 +e 5797 5796 5760 +e 5762 5798 5761 +e 5798 5797 5761 +e 5763 5799 5762 +e 5799 5798 5762 +e 5764 5800 5763 +e 5800 5799 5763 +e 5765 5801 5764 +e 5801 5800 5764 +e 5766 5802 5765 +e 5802 5801 5765 +e 5767 5803 5766 +e 5803 5802 5766 +e 5768 5804 5767 +e 5804 5803 5767 +e 4697 4699 5804 +e 5768 4697 5804 +e 5769 5805 4700 +e 4698 5769 4700 +e 5770 5806 5769 +e 5806 5805 5769 +e 5771 5807 5770 +e 5807 5806 5770 +e 5772 5808 5771 +e 5808 5807 5771 +e 5773 5809 5772 +e 5809 5808 5772 +e 5774 5810 5773 +e 5810 5809 5773 +e 5775 5811 5774 +e 5811 5810 5774 +e 5776 5812 5775 +e 5812 5811 5775 +e 5777 5813 5776 +e 5813 5812 5776 +e 5778 5814 5777 +e 5814 5813 5777 +e 5779 5815 5778 +e 5815 5814 5778 +e 5780 5816 5779 +e 5816 5815 5779 +e 5781 5817 5780 +e 5817 5816 5780 +e 5782 5818 5781 +e 5818 5817 5781 +e 5783 5819 5782 +e 5819 5818 5782 +e 5784 5820 5783 +e 5820 5819 5783 +e 5785 5821 5784 +e 5821 5820 5784 +e 5786 5822 5785 +e 5822 5821 5785 +e 5787 5823 5788 +e 5823 5824 5788 +e 5789 5825 5787 +e 5825 5823 5787 +e 5790 5826 5789 +e 5826 5825 5789 +e 5791 5827 5790 +e 5827 5826 5790 +e 5792 5828 5791 +e 5828 5827 5791 +e 5793 5829 5792 +e 5829 5828 5792 +e 5794 5830 5793 +e 5830 5829 5793 +e 5795 5831 5794 +e 5831 5830 5794 +e 5796 5832 5795 +e 5832 5831 5795 +e 5797 5833 5796 +e 5833 5832 5796 +e 5798 5834 5797 +e 5834 5833 5797 +e 5799 5835 5798 +e 5835 5834 5798 +e 5800 5836 5799 +e 5836 5835 5799 +e 5801 5837 5800 +e 5837 5836 5800 +e 5802 5838 5801 +e 5838 5837 5801 +e 5803 5839 5802 +e 5839 5838 5802 +e 5804 5840 5803 +e 5840 5839 5803 +e 4699 4701 5840 +e 5804 4699 5840 +e 5805 5841 4702 +e 4700 5805 4702 +e 5806 5842 5805 +e 5842 5841 5805 +e 5807 5843 5806 +e 5843 5842 5806 +e 5808 5844 5807 +e 5844 5843 5807 +e 5809 5845 5808 +e 5845 5844 5808 +e 5810 5846 5809 +e 5846 5845 5809 +e 5811 5847 5810 +e 5847 5846 5810 +e 5812 5848 5811 +e 5848 5847 5811 +e 5813 5849 5812 +e 5849 5848 5812 +e 5814 5850 5813 +e 5850 5849 5813 +e 5815 5851 5814 +e 5851 5850 5814 +e 5816 5852 5815 +e 5852 5851 5815 +e 5817 5853 5816 +e 5853 5852 5816 +e 5818 5854 5817 +e 5854 5853 5817 +e 5819 5855 5818 +e 5855 5854 5818 +e 5820 5856 5819 +e 5856 5855 5819 +e 5821 5857 5820 +e 5857 5856 5820 +e 5822 5858 5821 +e 5858 5857 5821 +e 5823 5859 5824 +e 5859 5860 5824 +e 5825 5861 5823 +e 5861 5859 5823 +e 5826 5862 5825 +e 5862 5861 5825 +e 5827 5863 5826 +e 5863 5862 5826 +e 5828 5864 5827 +e 5864 5863 5827 +e 5829 5865 5828 +e 5865 5864 5828 +e 5830 5866 5829 +e 5866 5865 5829 +e 5831 5867 5830 +e 5867 5866 5830 +e 5832 5868 5831 +e 5868 5867 5831 +e 5833 5869 5832 +e 5869 5868 5832 +e 5834 5870 5833 +e 5870 5869 5833 +e 5835 5871 5834 +e 5871 5870 5834 +e 5836 5872 5835 +e 5872 5871 5835 +e 5837 5873 5836 +e 5873 5872 5836 +e 5838 5874 5837 +e 5874 5873 5837 +e 5839 5875 5838 +e 5875 5874 5838 +e 5840 5876 5839 +e 5876 5875 5839 +e 4701 4703 5876 +e 5840 4701 5876 +e 5841 5877 4704 +e 4702 5841 4704 +e 5842 5878 5841 +e 5878 5877 5841 +e 5843 5879 5842 +e 5879 5878 5842 +e 5844 5880 5843 +e 5880 5879 5843 +e 5845 5881 5844 +e 5881 5880 5844 +e 5846 5882 5845 +e 5882 5881 5845 +e 5847 5883 5846 +e 5883 5882 5846 +e 5848 5884 5847 +e 5884 5883 5847 +e 5849 5885 5848 +e 5885 5884 5848 +e 5850 5886 5849 +e 5886 5885 5849 +e 5851 5887 5850 +e 5887 5886 5850 +e 5852 5888 5851 +e 5888 5887 5851 +e 5853 5889 5852 +e 5889 5888 5852 +e 5854 5890 5853 +e 5890 5889 5853 +e 5855 5891 5854 +e 5891 5890 5854 +e 5856 5892 5855 +e 5892 5891 5855 +e 5857 5893 5856 +e 5893 5892 5856 +e 5858 5894 5857 +e 5894 5893 5857 +e 5859 5895 5860 +e 5895 5896 5860 +e 5861 5897 5859 +e 5897 5895 5859 +e 5862 5898 5861 +e 5898 5897 5861 +e 5863 5899 5862 +e 5899 5898 5862 +e 5864 5900 5863 +e 5900 5899 5863 +e 5865 5901 5864 +e 5901 5900 5864 +e 5866 5902 5865 +e 5902 5901 5865 +e 5867 5903 5866 +e 5903 5902 5866 +e 5868 5904 5867 +e 5904 5903 5867 +e 5869 5905 5868 +e 5905 5904 5868 +e 5870 5906 5869 +e 5906 5905 5869 +e 5871 5907 5870 +e 5907 5906 5870 +e 5872 5908 5871 +e 5908 5907 5871 +e 5873 5909 5872 +e 5909 5908 5872 +e 5874 5910 5873 +e 5910 5909 5873 +e 5875 5911 5874 +e 5911 5910 5874 +e 5876 5912 5875 +e 5912 5911 5875 +e 4703 4705 5912 +e 5876 4703 5912 +e 5877 5913 4706 +e 4704 5877 4706 +e 5878 5914 5877 +e 5914 5913 5877 +e 5879 5915 5878 +e 5915 5914 5878 +e 5880 5916 5879 +e 5916 5915 5879 +e 5881 5917 5880 +e 5917 5916 5880 +e 5882 5918 5881 +e 5918 5917 5881 +e 5883 5919 5882 +e 5919 5918 5882 +e 5884 5920 5883 +e 5920 5919 5883 +e 5885 5921 5884 +e 5921 5920 5884 +e 5886 5922 5885 +e 5922 5921 5885 +e 5887 5923 5886 +e 5923 5922 5886 +e 5888 5924 5887 +e 5924 5923 5887 +e 5889 5925 5888 +e 5925 5924 5888 +e 5890 5926 5889 +e 5926 5925 5889 +e 5891 5927 5890 +e 5927 5926 5890 +e 5892 5928 5891 +e 5928 5927 5891 +e 5893 5929 5892 +e 5929 5928 5892 +e 5894 5930 5893 +e 5930 5929 5893 +e 5895 5931 5896 +e 5931 5932 5896 +e 5897 5933 5895 +e 5933 5931 5895 +e 5898 5934 5897 +e 5934 5933 5897 +e 5899 5935 5898 +e 5935 5934 5898 +e 5900 5936 5899 +e 5936 5935 5899 +e 5901 5937 5900 +e 5937 5936 5900 +e 5902 5938 5901 +e 5938 5937 5901 +e 5903 5939 5902 +e 5939 5938 5902 +e 5904 5940 5903 +e 5940 5939 5903 +e 5905 5941 5904 +e 5941 5940 5904 +e 5906 5942 5905 +e 5942 5941 5905 +e 5907 5943 5906 +e 5943 5942 5906 +e 5908 5944 5907 +e 5944 5943 5907 +e 5909 5945 5908 +e 5945 5944 5908 +e 5910 5946 5909 +e 5946 5945 5909 +e 5911 5947 5910 +e 5947 5946 5910 +e 5912 5948 5911 +e 5948 5947 5911 +e 4705 4707 5948 +e 5912 4705 5948 +e 5913 5949 4708 +e 4706 5913 4708 +e 5914 5950 5913 +e 5950 5949 5913 +e 5915 5951 5914 +e 5951 5950 5914 +e 5916 5952 5915 +e 5952 5951 5915 +e 5917 5953 5916 +e 5953 5952 5916 +e 5918 5954 5917 +e 5954 5953 5917 +e 5919 5955 5918 +e 5955 5954 5918 +e 5920 5956 5919 +e 5956 5955 5919 +e 5921 5957 5920 +e 5957 5956 5920 +e 5922 5958 5921 +e 5958 5957 5921 +e 5923 5959 5922 +e 5959 5958 5922 +e 5924 5960 5923 +e 5960 5959 5923 +e 5925 5961 5924 +e 5961 5960 5924 +e 5926 5962 5925 +e 5962 5961 5925 +e 5927 5963 5926 +e 5963 5962 5926 +e 5928 5964 5927 +e 5964 5963 5927 +e 5929 5965 5928 +e 5965 5964 5928 +e 5930 5966 5929 +e 5966 5965 5929 +e 5931 5967 5932 +e 5967 5968 5932 +e 5933 5969 5931 +e 5969 5967 5931 +e 5934 5970 5933 +e 5970 5969 5933 +e 5935 5971 5934 +e 5971 5970 5934 +e 5936 5972 5935 +e 5972 5971 5935 +e 5937 5973 5936 +e 5973 5972 5936 +e 5938 5974 5937 +e 5974 5973 5937 +e 5939 5975 5938 +e 5975 5974 5938 +e 5940 5976 5939 +e 5976 5975 5939 +e 5941 5977 5940 +e 5977 5976 5940 +e 5942 5978 5941 +e 5978 5977 5941 +e 5943 5979 5942 +e 5979 5978 5942 +e 5944 5980 5943 +e 5980 5979 5943 +e 5945 5981 5944 +e 5981 5980 5944 +e 5946 5982 5945 +e 5982 5981 5945 +e 5947 5983 5946 +e 5983 5982 5946 +e 5948 5984 5947 +e 5984 5983 5947 +e 4707 4709 5984 +e 5948 4707 5984 +e 5949 5985 4710 +e 4708 5949 4710 +e 5950 5986 5949 +e 5986 5985 5949 +e 5951 5987 5950 +e 5987 5986 5950 +e 5952 5988 5951 +e 5988 5987 5951 +e 5953 5989 5952 +e 5989 5988 5952 +e 5954 5990 5953 +e 5990 5989 5953 +e 5955 5991 5954 +e 5991 5990 5954 +e 5956 5992 5955 +e 5992 5991 5955 +e 5957 5993 5956 +e 5993 5992 5956 +e 5958 5994 5957 +e 5994 5993 5957 +e 5959 5995 5958 +e 5995 5994 5958 +e 5960 5996 5959 +e 5996 5995 5959 +e 5961 5997 5960 +e 5997 5996 5960 +e 5962 5998 5961 +e 5998 5997 5961 +e 5963 5999 5962 +e 5999 5998 5962 +e 5964 6000 5963 +e 6000 5999 5963 +e 5965 6001 5964 +e 6001 6000 5964 +e 5966 6002 5965 +e 6002 6001 5965 +e 5967 6003 5968 +e 6003 6004 5968 +e 5969 6005 5967 +e 6005 6003 5967 +e 5970 6006 5969 +e 6006 6005 5969 +e 5971 6007 5970 +e 6007 6006 5970 +e 5972 6008 5971 +e 6008 6007 5971 +e 5973 6009 5972 +e 6009 6008 5972 +e 5974 6010 5973 +e 6010 6009 5973 +e 5975 6011 5974 +e 6011 6010 5974 +e 5976 6012 5975 +e 6012 6011 5975 +e 5977 6013 5976 +e 6013 6012 5976 +e 5978 6014 5977 +e 6014 6013 5977 +e 5979 6015 5978 +e 6015 6014 5978 +e 5980 6016 5979 +e 6016 6015 5979 +e 5981 6017 5980 +e 6017 6016 5980 +e 5982 6018 5981 +e 6018 6017 5981 +e 5983 6019 5982 +e 6019 6018 5982 +e 5984 6020 5983 +e 6020 6019 5983 +e 4709 4711 6020 +e 5984 4709 6020 +e 5985 6021 4712 +e 4710 5985 4712 +e 5986 6022 5985 +e 6022 6021 5985 +e 5987 6023 5986 +e 6023 6022 5986 +e 5988 6024 5987 +e 6024 6023 5987 +e 5989 6025 5988 +e 6025 6024 5988 +e 5990 6026 5989 +e 6026 6025 5989 +e 5991 6027 5990 +e 6027 6026 5990 +e 5992 6028 5991 +e 6028 6027 5991 +e 5993 6029 5992 +e 6029 6028 5992 +e 5994 6030 5993 +e 6030 6029 5993 +e 5995 6031 5994 +e 6031 6030 5994 +e 5996 6032 5995 +e 6032 6031 5995 +e 5997 6033 5996 +e 6033 6032 5996 +e 5998 6034 5997 +e 6034 6033 5997 +e 5999 6035 5998 +e 6035 6034 5998 +e 6000 6036 5999 +e 6036 6035 5999 +e 6001 6037 6000 +e 6037 6036 6000 +e 6002 6038 6001 +e 6038 6037 6001 +e 6003 6039 6004 +e 6039 6040 6004 +e 6005 6041 6003 +e 6041 6039 6003 +e 6006 6042 6005 +e 6042 6041 6005 +e 6007 6043 6006 +e 6043 6042 6006 +e 6008 6044 6007 +e 6044 6043 6007 +e 6009 6045 6008 +e 6045 6044 6008 +e 6010 6046 6009 +e 6046 6045 6009 +e 6011 6047 6010 +e 6047 6046 6010 +e 6012 6048 6011 +e 6048 6047 6011 +e 6013 6049 6012 +e 6049 6048 6012 +e 6014 6050 6013 +e 6050 6049 6013 +e 6015 6051 6014 +e 6051 6050 6014 +e 6016 6052 6015 +e 6052 6051 6015 +e 6017 6053 6016 +e 6053 6052 6016 +e 6018 6054 6017 +e 6054 6053 6017 +e 6019 6055 6018 +e 6055 6054 6018 +e 6020 6056 6019 +e 6056 6055 6019 +e 4711 4713 6056 +e 6020 4711 6056 +e 6021 6057 4714 +e 4712 6021 4714 +e 6022 6058 6021 +e 6058 6057 6021 +e 6023 6059 6022 +e 6059 6058 6022 +e 6024 6060 6023 +e 6060 6059 6023 +e 6025 6061 6024 +e 6061 6060 6024 +e 6026 6062 6025 +e 6062 6061 6025 +e 6027 6063 6026 +e 6063 6062 6026 +e 6028 6064 6027 +e 6064 6063 6027 +e 6029 6065 6028 +e 6065 6064 6028 +e 6030 6066 6029 +e 6066 6065 6029 +e 6031 6067 6030 +e 6067 6066 6030 +e 6032 6068 6031 +e 6068 6067 6031 +e 6033 6069 6032 +e 6069 6068 6032 +e 6034 6070 6033 +e 6070 6069 6033 +e 6035 6071 6034 +e 6071 6070 6034 +e 6036 6072 6035 +e 6072 6071 6035 +e 6037 6073 6036 +e 6073 6072 6036 +e 6038 6074 6037 +e 6074 6073 6037 +e 6039 6075 6040 +e 6075 6076 6040 +e 6041 6077 6039 +e 6077 6075 6039 +e 6042 6078 6041 +e 6078 6077 6041 +e 6043 6079 6042 +e 6079 6078 6042 +e 6044 6080 6043 +e 6080 6079 6043 +e 6045 6081 6044 +e 6081 6080 6044 +e 6046 6082 6045 +e 6082 6081 6045 +e 6047 6083 6046 +e 6083 6082 6046 +e 6048 6084 6047 +e 6084 6083 6047 +e 6049 6085 6048 +e 6085 6084 6048 +e 6050 6086 6049 +e 6086 6085 6049 +e 6051 6087 6050 +e 6087 6086 6050 +e 6052 6088 6051 +e 6088 6087 6051 +e 6053 6089 6052 +e 6089 6088 6052 +e 6054 6090 6053 +e 6090 6089 6053 +e 6055 6091 6054 +e 6091 6090 6054 +e 6056 6092 6055 +e 6092 6091 6055 +e 4713 4715 6092 +e 6056 4713 6092 +e 6057 6093 4716 +e 4714 6057 4716 +e 6058 6094 6057 +e 6094 6093 6057 +e 6059 6095 6058 +e 6095 6094 6058 +e 6060 6096 6059 +e 6096 6095 6059 +e 6061 6097 6060 +e 6097 6096 6060 +e 6062 6098 6061 +e 6098 6097 6061 +e 6063 6099 6062 +e 6099 6098 6062 +e 6064 6100 6063 +e 6100 6099 6063 +e 6065 6101 6064 +e 6101 6100 6064 +e 6066 6102 6065 +e 6102 6101 6065 +e 6067 6103 6066 +e 6103 6102 6066 +e 6068 6104 6067 +e 6104 6103 6067 +e 6069 6105 6068 +e 6105 6104 6068 +e 6070 6106 6069 +e 6106 6105 6069 +e 6071 6107 6070 +e 6107 6106 6070 +e 6072 6108 6071 +e 6108 6107 6071 +e 6073 6109 6072 +e 6109 6108 6072 +e 6074 6110 6073 +e 6110 6109 6073 +e 6075 6111 6076 +e 6111 6112 6076 +e 6077 6113 6075 +e 6113 6111 6075 +e 6078 6114 6077 +e 6114 6113 6077 +e 6079 6115 6078 +e 6115 6114 6078 +e 6080 6116 6079 +e 6116 6115 6079 +e 6081 6117 6080 +e 6117 6116 6080 +e 6082 6118 6081 +e 6118 6117 6081 +e 6083 6119 6082 +e 6119 6118 6082 +e 6084 6120 6083 +e 6120 6119 6083 +e 6085 6121 6084 +e 6121 6120 6084 +e 6086 6122 6085 +e 6122 6121 6085 +e 6087 6123 6086 +e 6123 6122 6086 +e 6088 6124 6087 +e 6124 6123 6087 +e 6089 6125 6088 +e 6125 6124 6088 +e 6090 6126 6089 +e 6126 6125 6089 +e 6091 6127 6090 +e 6127 6126 6090 +e 6092 6128 6091 +e 6128 6127 6091 +e 4715 4717 6128 +e 6092 4715 6128 +e 6093 6129 4718 +e 4716 6093 4718 +e 6094 6130 6093 +e 6130 6129 6093 +e 6095 6131 6094 +e 6131 6130 6094 +e 6096 6132 6095 +e 6132 6131 6095 +e 6097 6133 6096 +e 6133 6132 6096 +e 6098 6134 6097 +e 6134 6133 6097 +e 6099 6135 6098 +e 6135 6134 6098 +e 6100 6136 6099 +e 6136 6135 6099 +e 6101 6137 6100 +e 6137 6136 6100 +e 6102 6138 6101 +e 6138 6137 6101 +e 6103 6139 6102 +e 6139 6138 6102 +e 6104 6140 6103 +e 6140 6139 6103 +e 6105 6141 6104 +e 6141 6140 6104 +e 6106 6142 6105 +e 6142 6141 6105 +e 6107 6143 6106 +e 6143 6142 6106 +e 6108 6144 6107 +e 6144 6143 6107 +e 6109 6145 6108 +e 6145 6144 6108 +e 6110 6146 6109 +e 6146 6145 6109 +e 6111 6147 6112 +e 6147 6148 6112 +e 6113 6149 6111 +e 6149 6147 6111 +e 6114 6150 6113 +e 6150 6149 6113 +e 6115 6151 6114 +e 6151 6150 6114 +e 6116 6152 6115 +e 6152 6151 6115 +e 6117 6153 6116 +e 6153 6152 6116 +e 6118 6154 6117 +e 6154 6153 6117 +e 6119 6155 6118 +e 6155 6154 6118 +e 6120 6156 6119 +e 6156 6155 6119 +e 6121 6157 6120 +e 6157 6156 6120 +e 6122 6158 6121 +e 6158 6157 6121 +e 6123 6159 6122 +e 6159 6158 6122 +e 6124 6160 6123 +e 6160 6159 6123 +e 6125 6161 6124 +e 6161 6160 6124 +e 6126 6162 6125 +e 6162 6161 6125 +e 6127 6163 6126 +e 6163 6162 6126 +e 6128 6164 6127 +e 6164 6163 6127 +e 4717 4719 6164 +e 6128 4717 6164 +e 6129 6165 4720 +e 4718 6129 4720 +e 6130 6166 6129 +e 6166 6165 6129 +e 6131 6167 6130 +e 6167 6166 6130 +e 6132 6168 6131 +e 6168 6167 6131 +e 6133 6169 6132 +e 6169 6168 6132 +e 6134 6170 6133 +e 6170 6169 6133 +e 6135 6171 6134 +e 6171 6170 6134 +e 6136 6172 6135 +e 6172 6171 6135 +e 6137 6173 6136 +e 6173 6172 6136 +e 6138 6174 6137 +e 6174 6173 6137 +e 6139 6175 6138 +e 6175 6174 6138 +e 6140 6176 6139 +e 6176 6175 6139 +e 6141 6177 6140 +e 6177 6176 6140 +e 6142 6178 6141 +e 6178 6177 6141 +e 6143 6179 6142 +e 6179 6178 6142 +e 6144 6180 6143 +e 6180 6179 6143 +e 6145 6181 6144 +e 6181 6180 6144 +e 6146 6182 6145 +e 6182 6181 6145 +e 6147 6183 6148 +e 6183 6184 6148 +e 6149 6185 6147 +e 6185 6183 6147 +e 6150 6186 6149 +e 6186 6185 6149 +e 6151 6187 6150 +e 6187 6186 6150 +e 6152 6188 6151 +e 6188 6187 6151 +e 6153 6189 6152 +e 6189 6188 6152 +e 6154 6190 6153 +e 6190 6189 6153 +e 6155 6191 6154 +e 6191 6190 6154 +e 6156 6192 6155 +e 6192 6191 6155 +e 6157 6193 6156 +e 6193 6192 6156 +e 6158 6194 6157 +e 6194 6193 6157 +e 6159 6195 6158 +e 6195 6194 6158 +e 6160 6196 6159 +e 6196 6195 6159 +e 6161 6197 6160 +e 6197 6196 6160 +e 6162 6198 6161 +e 6198 6197 6161 +e 6163 6199 6162 +e 6199 6198 6162 +e 6164 6200 6163 +e 6200 6199 6163 +e 4719 4721 6200 +e 6164 4719 6200 +e 6165 6201 4722 +e 4720 6165 4722 +e 6166 6202 6165 +e 6202 6201 6165 +e 6167 6203 6166 +e 6203 6202 6166 +e 6168 6204 6167 +e 6204 6203 6167 +e 6169 6205 6168 +e 6205 6204 6168 +e 6170 6206 6169 +e 6206 6205 6169 +e 6171 6207 6170 +e 6207 6206 6170 +e 6172 6208 6171 +e 6208 6207 6171 +e 6173 6209 6172 +e 6209 6208 6172 +e 6174 6210 6173 +e 6210 6209 6173 +e 6175 6211 6174 +e 6211 6210 6174 +e 6176 6212 6175 +e 6212 6211 6175 +e 6177 6213 6176 +e 6213 6212 6176 +e 6178 6214 6177 +e 6214 6213 6177 +e 6179 6215 6178 +e 6215 6214 6178 +e 6180 6216 6179 +e 6216 6215 6179 +e 6181 6217 6180 +e 6217 6216 6180 +e 6182 6218 6181 +e 6218 6217 6181 +e 6183 6219 6184 +e 6219 6220 6184 +e 6185 6221 6183 +e 6221 6219 6183 +e 6186 6222 6185 +e 6222 6221 6185 +e 6187 6223 6186 +e 6223 6222 6186 +e 6188 6224 6187 +e 6224 6223 6187 +e 6189 6225 6188 +e 6225 6224 6188 +e 6190 6226 6189 +e 6226 6225 6189 +e 6191 6227 6190 +e 6227 6226 6190 +e 6192 6228 6191 +e 6228 6227 6191 +e 6193 6229 6192 +e 6229 6228 6192 +e 6194 6230 6193 +e 6230 6229 6193 +e 6195 6231 6194 +e 6231 6230 6194 +e 6196 6232 6195 +e 6232 6231 6195 +e 6197 6233 6196 +e 6233 6232 6196 +e 6198 6234 6197 +e 6234 6233 6197 +e 6199 6235 6198 +e 6235 6234 6198 +e 6200 6236 6199 +e 6236 6235 6199 +e 4721 4723 6236 +e 6200 4721 6236 +e 6201 6237 4724 +e 4722 6201 4724 +e 6202 6238 6201 +e 6238 6237 6201 +e 6203 6239 6202 +e 6239 6238 6202 +e 6204 6240 6203 +e 6240 6239 6203 +e 6205 6241 6204 +e 6241 6240 6204 +e 6206 6242 6205 +e 6242 6241 6205 +e 6207 6243 6206 +e 6243 6242 6206 +e 6208 6244 6207 +e 6244 6243 6207 +e 6209 6245 6208 +e 6245 6244 6208 +e 6210 6246 6209 +e 6246 6245 6209 +e 6211 6247 6210 +e 6247 6246 6210 +e 6212 6248 6211 +e 6248 6247 6211 +e 6213 6249 6212 +e 6249 6248 6212 +e 6214 6250 6213 +e 6250 6249 6213 +e 6215 6251 6214 +e 6251 6250 6214 +e 6216 6252 6215 +e 6252 6251 6215 +e 6217 6253 6216 +e 6253 6252 6216 +e 6218 6254 6217 +e 6254 6253 6217 +e 6219 6255 6220 +e 6255 6256 6220 +e 6221 6257 6219 +e 6257 6255 6219 +e 6222 6258 6221 +e 6258 6257 6221 +e 6223 6259 6222 +e 6259 6258 6222 +e 6224 6260 6223 +e 6260 6259 6223 +e 6225 6261 6224 +e 6261 6260 6224 +e 6226 6262 6225 +e 6262 6261 6225 +e 6227 6263 6226 +e 6263 6262 6226 +e 6228 6264 6227 +e 6264 6263 6227 +e 6229 6265 6228 +e 6265 6264 6228 +e 6230 6266 6229 +e 6266 6265 6229 +e 6231 6267 6230 +e 6267 6266 6230 +e 6232 6268 6231 +e 6268 6267 6231 +e 6233 6269 6232 +e 6269 6268 6232 +e 6234 6270 6233 +e 6270 6269 6233 +e 6235 6271 6234 +e 6271 6270 6234 +e 6236 6272 6235 +e 6272 6271 6235 +e 4723 4725 6272 +e 6236 4723 6272 +e 6237 6273 4726 +e 4724 6237 4726 +e 6238 6274 6237 +e 6274 6273 6237 +e 6239 6275 6238 +e 6275 6274 6238 +e 6240 6276 6239 +e 6276 6275 6239 +e 6241 6277 6240 +e 6277 6276 6240 +e 6242 6278 6241 +e 6278 6277 6241 +e 6243 6279 6242 +e 6279 6278 6242 +e 6244 6280 6243 +e 6280 6279 6243 +e 6245 6281 6244 +e 6281 6280 6244 +e 6246 6282 6245 +e 6282 6281 6245 +e 6247 6283 6246 +e 6283 6282 6246 +e 6248 6284 6247 +e 6284 6283 6247 +e 6249 6285 6248 +e 6285 6284 6248 +e 6250 6286 6249 +e 6286 6285 6249 +e 6251 6287 6250 +e 6287 6286 6250 +e 6252 6288 6251 +e 6288 6287 6251 +e 6253 6289 6252 +e 6289 6288 6252 +e 6254 6290 6253 +e 6290 6289 6253 +e 6255 6291 6256 +e 6291 6292 6256 +e 6257 6293 6255 +e 6293 6291 6255 +e 6258 6294 6257 +e 6294 6293 6257 +e 6259 6295 6258 +e 6295 6294 6258 +e 6260 6296 6259 +e 6296 6295 6259 +e 6261 6297 6260 +e 6297 6296 6260 +e 6262 6298 6261 +e 6298 6297 6261 +e 6263 6299 6262 +e 6299 6298 6262 +e 6264 6300 6263 +e 6300 6299 6263 +e 6265 6301 6264 +e 6301 6300 6264 +e 6266 6302 6265 +e 6302 6301 6265 +e 6267 6303 6266 +e 6303 6302 6266 +e 6268 6304 6267 +e 6304 6303 6267 +e 6269 6305 6268 +e 6305 6304 6268 +e 6270 6306 6269 +e 6306 6305 6269 +e 6271 6307 6270 +e 6307 6306 6270 +e 6272 6308 6271 +e 6308 6307 6271 +e 4725 4727 6308 +e 6272 4725 6308 +e 6273 6309 4728 +e 4726 6273 4728 +e 6274 6310 6273 +e 6310 6309 6273 +e 6275 6311 6274 +e 6311 6310 6274 +e 6276 6312 6275 +e 6312 6311 6275 +e 6277 6313 6276 +e 6313 6312 6276 +e 6278 6314 6277 +e 6314 6313 6277 +e 6279 6315 6278 +e 6315 6314 6278 +e 6280 6316 6279 +e 6316 6315 6279 +e 6281 6317 6280 +e 6317 6316 6280 +e 6282 6318 6281 +e 6318 6317 6281 +e 6283 6319 6282 +e 6319 6318 6282 +e 6284 6320 6283 +e 6320 6319 6283 +e 6285 6321 6284 +e 6321 6320 6284 +e 6286 6322 6285 +e 6322 6321 6285 +e 6287 6323 6286 +e 6323 6322 6286 +e 6288 6324 6287 +e 6324 6323 6287 +e 6289 6325 6288 +e 6325 6324 6288 +e 6290 6326 6289 +e 6326 6325 6289 +e 6291 6327 6292 +e 6327 6328 6292 +e 6293 6329 6291 +e 6329 6327 6291 +e 6294 6330 6293 +e 6330 6329 6293 +e 6295 6331 6294 +e 6331 6330 6294 +e 6296 6332 6295 +e 6332 6331 6295 +e 6297 6333 6296 +e 6333 6332 6296 +e 6298 6334 6297 +e 6334 6333 6297 +e 6299 6335 6298 +e 6335 6334 6298 +e 6300 6336 6299 +e 6336 6335 6299 +e 6301 6337 6300 +e 6337 6336 6300 +e 6302 6338 6301 +e 6338 6337 6301 +e 6303 6339 6302 +e 6339 6338 6302 +e 6304 6340 6303 +e 6340 6339 6303 +e 6305 6341 6304 +e 6341 6340 6304 +e 6306 6342 6305 +e 6342 6341 6305 +e 6307 6343 6306 +e 6343 6342 6306 +e 6308 6344 6307 +e 6344 6343 6307 +e 4727 4729 6344 +e 6308 4727 6344 +e 6309 6345 4730 +e 4728 6309 4730 +e 6310 6346 6309 +e 6346 6345 6309 +e 6311 6347 6310 +e 6347 6346 6310 +e 6312 6348 6311 +e 6348 6347 6311 +e 6313 6349 6312 +e 6349 6348 6312 +e 6314 6350 6313 +e 6350 6349 6313 +e 6315 6351 6314 +e 6351 6350 6314 +e 6316 6352 6315 +e 6352 6351 6315 +e 6317 6353 6316 +e 6353 6352 6316 +e 6318 6354 6317 +e 6354 6353 6317 +e 6319 6355 6318 +e 6355 6354 6318 +e 6320 6356 6319 +e 6356 6355 6319 +e 6321 6357 6320 +e 6357 6356 6320 +e 6322 6358 6321 +e 6358 6357 6321 +e 6323 6359 6322 +e 6359 6358 6322 +e 6324 6360 6323 +e 6360 6359 6323 +e 6325 6361 6324 +e 6361 6360 6324 +e 6326 6362 6325 +e 6362 6361 6325 +e 6327 6363 6328 +e 6363 6364 6328 +e 6329 6365 6327 +e 6365 6363 6327 +e 6330 6366 6329 +e 6366 6365 6329 +e 6331 6367 6330 +e 6367 6366 6330 +e 6332 6368 6331 +e 6368 6367 6331 +e 6333 6369 6332 +e 6369 6368 6332 +e 6334 6370 6333 +e 6370 6369 6333 +e 6335 6371 6334 +e 6371 6370 6334 +e 6336 6372 6335 +e 6372 6371 6335 +e 6337 6373 6336 +e 6373 6372 6336 +e 6338 6374 6337 +e 6374 6373 6337 +e 6339 6375 6338 +e 6375 6374 6338 +e 6340 6376 6339 +e 6376 6375 6339 +e 6341 6377 6340 +e 6377 6376 6340 +e 6342 6378 6341 +e 6378 6377 6341 +e 6343 6379 6342 +e 6379 6378 6342 +e 6344 6380 6343 +e 6380 6379 6343 +e 4729 4731 6380 +e 6344 4729 6380 +e 6345 6381 4732 +e 4730 6345 4732 +e 6346 6382 6345 +e 6382 6381 6345 +e 6347 6383 6346 +e 6383 6382 6346 +e 6348 6384 6347 +e 6384 6383 6347 +e 6349 6385 6348 +e 6385 6384 6348 +e 6350 6386 6349 +e 6386 6385 6349 +e 6351 6387 6350 +e 6387 6386 6350 +e 6352 6388 6351 +e 6388 6387 6351 +e 6353 6389 6352 +e 6389 6388 6352 +e 6354 6390 6353 +e 6390 6389 6353 +e 6355 6391 6354 +e 6391 6390 6354 +e 6356 6392 6355 +e 6392 6391 6355 +e 6357 6393 6356 +e 6393 6392 6356 +e 6358 6394 6357 +e 6394 6393 6357 +e 6359 6395 6358 +e 6395 6394 6358 +e 6360 6396 6359 +e 6396 6395 6359 +e 6361 6397 6360 +e 6397 6396 6360 +e 6362 6398 6361 +e 6398 6397 6361 +e 6363 6399 6364 +e 6399 6400 6364 +e 6365 6401 6363 +e 6401 6399 6363 +e 6366 6402 6365 +e 6402 6401 6365 +e 6367 6403 6366 +e 6403 6402 6366 +e 6368 6404 6367 +e 6404 6403 6367 +e 6369 6405 6368 +e 6405 6404 6368 +e 6370 6406 6369 +e 6406 6405 6369 +e 6371 6407 6370 +e 6407 6406 6370 +e 6372 6408 6371 +e 6408 6407 6371 +e 6373 6409 6372 +e 6409 6408 6372 +e 6374 6410 6373 +e 6410 6409 6373 +e 6375 6411 6374 +e 6411 6410 6374 +e 6376 6412 6375 +e 6412 6411 6375 +e 6377 6413 6376 +e 6413 6412 6376 +e 6378 6414 6377 +e 6414 6413 6377 +e 6379 6415 6378 +e 6415 6414 6378 +e 6380 6416 6379 +e 6416 6415 6379 +e 4731 4733 6416 +e 6380 4731 6416 +e 6381 6417 4734 +e 4732 6381 4734 +e 6382 6418 6381 +e 6418 6417 6381 +e 6383 6419 6382 +e 6419 6418 6382 +e 6384 6420 6383 +e 6420 6419 6383 +e 6385 6421 6384 +e 6421 6420 6384 +e 6386 6422 6385 +e 6422 6421 6385 +e 6387 6423 6386 +e 6423 6422 6386 +e 6388 6424 6387 +e 6424 6423 6387 +e 6389 6425 6388 +e 6425 6424 6388 +e 6390 6426 6389 +e 6426 6425 6389 +e 6391 6427 6390 +e 6427 6426 6390 +e 6392 6428 6391 +e 6428 6427 6391 +e 6393 6429 6392 +e 6429 6428 6392 +e 6394 6430 6393 +e 6430 6429 6393 +e 6395 6431 6394 +e 6431 6430 6394 +e 6396 6432 6395 +e 6432 6431 6395 +e 6397 6433 6396 +e 6433 6432 6396 +e 6398 6434 6397 +e 6434 6433 6397 +e 6399 6435 6400 +e 6435 6436 6400 +e 6401 6437 6399 +e 6437 6435 6399 +e 6402 6438 6401 +e 6438 6437 6401 +e 6403 6439 6402 +e 6439 6438 6402 +e 6404 6440 6403 +e 6440 6439 6403 +e 6405 6441 6404 +e 6441 6440 6404 +e 6406 6442 6405 +e 6442 6441 6405 +e 6407 6443 6406 +e 6443 6442 6406 +e 6408 6444 6407 +e 6444 6443 6407 +e 6409 6445 6408 +e 6445 6444 6408 +e 6410 6446 6409 +e 6446 6445 6409 +e 6411 6447 6410 +e 6447 6446 6410 +e 6412 6448 6411 +e 6448 6447 6411 +e 6413 6449 6412 +e 6449 6448 6412 +e 6414 6450 6413 +e 6450 6449 6413 +e 6415 6451 6414 +e 6451 6450 6414 +e 6416 6452 6415 +e 6452 6451 6415 +e 4733 4735 6452 +e 6416 4733 6452 +e 6417 6453 4736 +e 4734 6417 4736 +e 6418 6454 6417 +e 6454 6453 6417 +e 6419 6455 6418 +e 6455 6454 6418 +e 6420 6456 6419 +e 6456 6455 6419 +e 6421 6457 6420 +e 6457 6456 6420 +e 6422 6458 6421 +e 6458 6457 6421 +e 6423 6459 6422 +e 6459 6458 6422 +e 6424 6460 6423 +e 6460 6459 6423 +e 6425 6461 6424 +e 6461 6460 6424 +e 6426 6462 6425 +e 6462 6461 6425 +e 6427 6463 6426 +e 6463 6462 6426 +e 6428 6464 6427 +e 6464 6463 6427 +e 6429 6465 6428 +e 6465 6464 6428 +e 6430 6466 6429 +e 6466 6465 6429 +e 6431 6467 6430 +e 6467 6466 6430 +e 6432 6468 6431 +e 6468 6467 6431 +e 6433 6469 6432 +e 6469 6468 6432 +e 6434 6470 6433 +e 6470 6469 6433 +e 6435 6471 6436 +e 6471 6472 6436 +e 6437 6473 6435 +e 6473 6471 6435 +e 6438 6474 6437 +e 6474 6473 6437 +e 6439 6475 6438 +e 6475 6474 6438 +e 6440 6476 6439 +e 6476 6475 6439 +e 6441 6477 6440 +e 6477 6476 6440 +e 6442 6478 6441 +e 6478 6477 6441 +e 6443 6479 6442 +e 6479 6478 6442 +e 6444 6480 6443 +e 6480 6479 6443 +e 6445 6481 6444 +e 6481 6480 6444 +e 6446 6482 6445 +e 6482 6481 6445 +e 6447 6483 6446 +e 6483 6482 6446 +e 6448 6484 6447 +e 6484 6483 6447 +e 6449 6485 6448 +e 6485 6484 6448 +e 6450 6486 6449 +e 6486 6485 6449 +e 6451 6487 6450 +e 6487 6486 6450 +e 6452 6488 6451 +e 6488 6487 6451 +e 4735 4737 6488 +e 6452 4735 6488 +e 6453 6489 4738 +e 4736 6453 4738 +e 6454 6490 6453 +e 6490 6489 6453 +e 6455 6491 6454 +e 6491 6490 6454 +e 6456 6492 6455 +e 6492 6491 6455 +e 6457 6493 6456 +e 6493 6492 6456 +e 6458 6494 6457 +e 6494 6493 6457 +e 6459 6495 6458 +e 6495 6494 6458 +e 6460 6496 6459 +e 6496 6495 6459 +e 6461 6497 6460 +e 6497 6496 6460 +e 6462 6498 6461 +e 6498 6497 6461 +e 6463 6499 6462 +e 6499 6498 6462 +e 6464 6500 6463 +e 6500 6499 6463 +e 6465 6501 6464 +e 6501 6500 6464 +e 6466 6502 6465 +e 6502 6501 6465 +e 6467 6503 6466 +e 6503 6502 6466 +e 6468 6504 6467 +e 6504 6503 6467 +e 6469 6505 6468 +e 6505 6504 6468 +e 6470 6506 6469 +e 6506 6505 6469 +e 6471 6507 6472 +e 6507 6508 6472 +e 6473 6509 6471 +e 6509 6507 6471 +e 6474 6510 6473 +e 6510 6509 6473 +e 6475 6511 6474 +e 6511 6510 6474 +e 6476 6512 6475 +e 6512 6511 6475 +e 6477 6513 6476 +e 6513 6512 6476 +e 6478 6514 6477 +e 6514 6513 6477 +e 6479 6515 6478 +e 6515 6514 6478 +e 6480 6516 6479 +e 6516 6515 6479 +e 6481 6517 6480 +e 6517 6516 6480 +e 6482 6518 6481 +e 6518 6517 6481 +e 6483 6519 6482 +e 6519 6518 6482 +e 6484 6520 6483 +e 6520 6519 6483 +e 6485 6521 6484 +e 6521 6520 6484 +e 6486 6522 6485 +e 6522 6521 6485 +e 6487 6523 6486 +e 6523 6522 6486 +e 6488 6524 6487 +e 6524 6523 6487 +e 4737 4739 6524 +e 6488 4737 6524 +e 6489 6525 4740 +e 4738 6489 4740 +e 6490 6526 6489 +e 6526 6525 6489 +e 6491 6527 6490 +e 6527 6526 6490 +e 6492 6528 6491 +e 6528 6527 6491 +e 6493 6529 6492 +e 6529 6528 6492 +e 6494 6530 6493 +e 6530 6529 6493 +e 6495 6531 6494 +e 6531 6530 6494 +e 6496 6532 6495 +e 6532 6531 6495 +e 6497 6533 6496 +e 6533 6532 6496 +e 6498 6534 6497 +e 6534 6533 6497 +e 6499 6535 6498 +e 6535 6534 6498 +e 6500 6536 6499 +e 6536 6535 6499 +e 6501 6537 6500 +e 6537 6536 6500 +e 6502 6538 6501 +e 6538 6537 6501 +e 6503 6539 6502 +e 6539 6538 6502 +e 6504 6540 6503 +e 6540 6539 6503 +e 6505 6541 6504 +e 6541 6540 6504 +e 6506 6542 6505 +e 6542 6541 6505 +e 6507 6543 6508 +e 6543 6544 6508 +e 6509 6545 6507 +e 6545 6543 6507 +e 6510 6546 6509 +e 6546 6545 6509 +e 6511 6547 6510 +e 6547 6546 6510 +e 6512 6548 6511 +e 6548 6547 6511 +e 6513 6549 6512 +e 6549 6548 6512 +e 6514 6550 6513 +e 6550 6549 6513 +e 6515 6551 6514 +e 6551 6550 6514 +e 6516 6552 6515 +e 6552 6551 6515 +e 6517 6553 6516 +e 6553 6552 6516 +e 6518 6554 6517 +e 6554 6553 6517 +e 6519 6555 6518 +e 6555 6554 6518 +e 6520 6556 6519 +e 6556 6555 6519 +e 6521 6557 6520 +e 6557 6556 6520 +e 6522 6558 6521 +e 6558 6557 6521 +e 6523 6559 6522 +e 6559 6558 6522 +e 6524 6560 6523 +e 6560 6559 6523 +e 4739 4741 6560 +e 6524 4739 6560 +e 6525 6561 4742 +e 4740 6525 4742 +e 6526 6562 6525 +e 6562 6561 6525 +e 6527 6563 6526 +e 6563 6562 6526 +e 6528 6564 6527 +e 6564 6563 6527 +e 6529 6565 6528 +e 6565 6564 6528 +e 6530 6566 6529 +e 6566 6565 6529 +e 6531 6567 6530 +e 6567 6566 6530 +e 6532 6568 6531 +e 6568 6567 6531 +e 6533 6569 6532 +e 6569 6568 6532 +e 6534 6570 6533 +e 6570 6569 6533 +e 6535 6571 6534 +e 6571 6570 6534 +e 6536 6572 6535 +e 6572 6571 6535 +e 6537 6573 6536 +e 6573 6572 6536 +e 6538 6574 6537 +e 6574 6573 6537 +e 6539 6575 6538 +e 6575 6574 6538 +e 6540 6576 6539 +e 6576 6575 6539 +e 6541 6577 6540 +e 6577 6576 6540 +e 6542 6578 6541 +e 6578 6577 6541 diff --git a/examples/triangle3D/triangle3D.cpp b/examples/triangle3D/triangle3D.cpp index 70be608..6b4dd29 100644 --- a/examples/triangle3D/triangle3D.cpp +++ b/examples/triangle3D/triangle3D.cpp @@ -16,7 +16,8 @@ int main() { std::vector> points; std::vector> triangles; NumericType gridDelta; - rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, points, triangles); + rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, + points, triangles); TraceTriangle tracer; tracer.setGeometry(points, triangles, gridDelta); @@ -36,6 +37,6 @@ int main() { auto &localData = tracer.getLocalData(); tracer.normalizeFlux(localData.getVectorData(0), NormalizationType::SOURCE); - rayInternal::writeVTP("triangleGeometryOutput.vtp", points, triangles, - localData.getVectorData(0)); + rayInternal::writeVTP("triangleGeometryOutput.vtp", points, + triangles, localData.getVectorData(0)); } \ No newline at end of file diff --git a/gpu/examples/CMakeLists.txt b/gpu/examples/CMakeLists.txt index f4dd7df..aca59da 100644 --- a/gpu/examples/CMakeLists.txt +++ b/gpu/examples/CMakeLists.txt @@ -13,4 +13,6 @@ configure_file(${CMAKE_SOURCE_DIR}/examples/disk3D/trenchGrid3D.dat add_dependencies(ViennaRay-GPU_Examples ${target_name}) add_gpu_executable(GPU_trenchLines target_name trenchLines.cpp) +configure_file(${CMAKE_SOURCE_DIR}/examples/triangle2D/lineMesh.dat + ${CMAKE_CURRENT_BINARY_DIR}/lineMesh.dat COPYONLY) add_dependencies(ViennaRay-GPU_Examples ${target_name}) diff --git a/gpu/examples/trenchLines.cpp b/gpu/examples/trenchLines.cpp index fb9d9a9..fa4b35a 100644 --- a/gpu/examples/trenchLines.cpp +++ b/gpu/examples/trenchLines.cpp @@ -7,7 +7,7 @@ using namespace viennaray; int main() { omp_set_num_threads(16); - constexpr int D = 3; + constexpr int D = 2; using NumericType = float; Logger::setLogLevel(LogLevel::DEBUG); @@ -15,26 +15,38 @@ int main() { // relative to build directory // Read stored geometry grid - NumericType gridDelta; - std::vector> points; - + std::vector> points; + std::vector> lines; + float gridDelta; + rayInternal::readMeshFromFile("lineMesh.dat", gridDelta, points, + lines); gpu::LineMesh mesh; - mesh.nodes = points; - mesh.gridDelta = static_cast(gridDelta); - computeBoundingBox(mesh); + mesh.nodes = std::move(points); + mesh.lines = std::move(lines); + mesh.gridDelta = gridDelta; + gpu::computeBoundingBox(mesh); - std::vector materialIds(mesh.lines.size(), 7); - for (int i = mesh.lines.size() / 2; i < mesh.lines.size(); ++i) { - materialIds[i] = 1; + for (size_t i = 0; i < mesh.lines.size(); ++i) { + Vec3Df p0 = mesh.nodes[mesh.lines[i][0]]; + Vec3Df p1 = mesh.nodes[mesh.lines[i][1]]; + Vec3Df lineDir = p1 - p0; + Vec3Df normal = Vec3Df{lineDir[1], -lineDir[0], 0.0f}; + viennacore::Normalize(normal); + mesh.normals.push_back(normal); } + // std::vector materialIds(mesh.lines.size(), 7); + // for (int i = mesh.lines.size() / 2; i < mesh.lines.size(); ++i) { + // materialIds[i] = 1; + // } + gpu::Particle particle; particle.direction = {0.0f, 0.0f, -1.0f}; particle.name = "Particle"; particle.sticking = 1.f; particle.dataLabels = {"particleFlux"}; - particle.materialSticking[7] = 1.f; - particle.materialSticking[1] = .1f; + // particle.materialSticking[7] = 1.f; + // particle.materialSticking[1] = .1f; std::unordered_map pMap = {{"Particle", 0}}; std::vector cMap = { @@ -44,7 +56,7 @@ int main() { gpu::TraceLine tracer(context); tracer.setGeometry(mesh); - tracer.setMaterialIds(materialIds); + // tracer.setMaterialIds(materialIds); tracer.setCallables("CallableWrapper", context->modulePath); tracer.setParticleCallableMap({pMap, cMap}); tracer.setNumberOfRaysPerPoint(1000); @@ -56,5 +68,12 @@ int main() { std::vector flux(mesh.lines.size()); tracer.getFlux(flux.data(), 0, 0, 1); + for (size_t i = 0; i < flux.size(); ++i) { + std::cout << "Line " << i << " flux: " << flux[i] << "\n"; + } + + rayInternal::writeVTP("lineGeometryOutput.vtp", mesh.nodes, + mesh.lines, flux); + return 0; } diff --git a/gpu/examples/trenchTriangles.cpp b/gpu/examples/trenchTriangles.cpp index ea92bee..340e825 100644 --- a/gpu/examples/trenchTriangles.cpp +++ b/gpu/examples/trenchTriangles.cpp @@ -16,7 +16,16 @@ int main(int argc, char **argv) { auto context = DeviceContext::createContext("../../lib/ptx", 0); // relative to build directory - const auto mesh = gpu::readMeshFromFile("trenchMesh.dat"); + std::vector> points; + std::vector> triangles; + float gridDelta; + rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, points, + triangles); + gpu::TriangleMesh mesh; + mesh.nodes = std::move(points); + mesh.triangles = std::move(triangles); + mesh.gridDelta = static_cast(gridDelta); + gpu::computeBoundingBox(mesh); std::vector materialIds(mesh.triangles.size(), 7); for (int i = mesh.triangles.size() / 2; i < mesh.triangles.size(); ++i) { materialIds[i] = 1; @@ -58,8 +67,8 @@ int main(int argc, char **argv) { std::vector flux(mesh.triangles.size()); tracer.getFlux(flux.data(), 0, 0); - rayInternal::writeVTP("triangleGeometryOutput.vtp", mesh.nodes, - mesh.triangles, flux); + rayInternal::writeVTP("triangleGeometryOutput.vtp", mesh.nodes, + mesh.triangles, flux); #ifdef COUNT_RAYS rayCountBuffer.download(&rayCount, 1); diff --git a/gpu/include/raygLineGeometry.hpp b/gpu/include/raygLineGeometry.hpp index e7da715..fce54b2 100644 --- a/gpu/include/raygLineGeometry.hpp +++ b/gpu/include/raygLineGeometry.hpp @@ -29,20 +29,12 @@ template struct LineGeometry { LaunchParams &launchParams) { assert(context.deviceID != -1 && "Context not initialized."); assert(mesh.gridDelta > 0.f && "Grid delta must be positive."); + assert(D == 2 && "Only 2D line geometry is supported."); - if constexpr (D == 2) { - launchParams.source.minPoint[0] = mesh.minimumExtent[0]; - launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; - launchParams.source.planeHeight = - mesh.maximumExtent[1] + 2 * mesh.gridDelta; - } else { - launchParams.source.minPoint[0] = mesh.minimumExtent[0]; - launchParams.source.minPoint[1] = mesh.minimumExtent[1]; - launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; - launchParams.source.maxPoint[1] = mesh.maximumExtent[1]; - launchParams.source.planeHeight = - mesh.maximumExtent[2] + 2 * mesh.gridDelta; - } + launchParams.source.minPoint[0] = mesh.minimumExtent[0]; + launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; + launchParams.source.planeHeight = + mesh.maximumExtent[1] + 2 * mesh.gridDelta; launchParams.numElements = mesh.lines.size(); // 2 inputs: one for the geometry, one for the boundary @@ -192,15 +184,10 @@ template struct LineGeometry { Vec3Df bbMin = passedMesh.minimumExtent; Vec3Df bbMax = passedMesh.maximumExtent; // adjust bounding box to include source plane and be below trench geometry - if constexpr (D == 2) { - bbMax[1] += 2 * passedMesh.gridDelta; - bbMin[1] -= 2 * passedMesh.gridDelta; - bbMin[2] = -passedMesh.gridDelta; - bbMax[2] = passedMesh.gridDelta; - } else { - bbMax[2] += 2 * passedMesh.gridDelta; - bbMin[2] -= 2 * passedMesh.gridDelta; - } + bbMax[1] += 2 * passedMesh.gridDelta; + bbMin[1] -= 2 * passedMesh.gridDelta; + bbMin[2] = -passedMesh.gridDelta; + bbMax[2] = passedMesh.gridDelta; // one vertex in each corner of the bounding box boundaryMesh.nodes.push_back({bbMin[0], bbMin[1], 0.f}); // 0 diff --git a/gpu/include/raygMesh.hpp b/gpu/include/raygMesh.hpp index ec87938..488abe0 100644 --- a/gpu/include/raygMesh.hpp +++ b/gpu/include/raygMesh.hpp @@ -54,57 +54,4 @@ template void computeBoundingBox(MeshType &mesh) { } } } - -inline TriangleMesh readMeshFromFile(const std::string &fileName) { - TriangleMesh mesh; - std::ifstream dataFile(fileName); - if (!dataFile.is_open()) { - Logger::getInstance() - .addError("Failed to open mesh file: " + fileName) - .print(); - return mesh; - } - std::string id; - dataFile >> id; - assert(id == "grid_delta"); - dataFile >> mesh.gridDelta; - - dataFile >> id; - assert(id == "min_extent"); - dataFile >> mesh.minimumExtent[0] >> mesh.minimumExtent[1] >> - mesh.minimumExtent[2]; - - dataFile >> id; - assert(id == "max_extent"); - dataFile >> mesh.maximumExtent[0] >> mesh.maximumExtent[1] >> - mesh.maximumExtent[2]; - - dataFile >> id; - assert(id == "n_nodes"); - size_t numPoints; - dataFile >> numPoints; - - dataFile >> id; - assert(id == "n_triangles"); - size_t numTriangles; - dataFile >> numTriangles; - - mesh.nodes.resize(numPoints); - mesh.triangles.resize(numTriangles); - for (size_t i = 0; i < numPoints; ++i) { - dataFile >> id; - assert(id == "n"); - dataFile >> mesh.nodes[i][0] >> mesh.nodes[i][1] >> mesh.nodes[i][2]; - } - for (size_t i = 0; i < numTriangles; ++i) { - dataFile >> id; - assert(id == "t"); - dataFile >> mesh.triangles[i][0] >> mesh.triangles[i][1] >> - mesh.triangles[i][2]; - } - dataFile.close(); - - return mesh; -} - } // namespace viennaray::gpu diff --git a/gpu/include/raygTraceLine.hpp b/gpu/include/raygTraceLine.hpp index 1cc6b8c..3e5cef1 100644 --- a/gpu/include/raygTraceLine.hpp +++ b/gpu/include/raygTraceLine.hpp @@ -24,132 +24,36 @@ template class TraceLine : public Trace { lineMesh = passedMesh; launchParams.D = D; lineGeometry.buildAccel(*context_, passedMesh, launchParams); - std::vector midPoints(lineMesh.lines.size()); - for (int i = 0; i < lineMesh.lines.size(); ++i) { - midPoints[i] = 0.5f * (lineMesh.nodes[lineMesh.lines[i][0]] + - lineMesh.nodes[lineMesh.lines[i][1]]); - } - pointNeighborhood_.template init<3>( - midPoints, 1 * std::sqrt(2) * this->gridDelta_, minBox, maxBox); } void smoothFlux(std::vector &flux, int numNeighbors) override { - PointNeighborhood pointNeighborhood; - if (numNeighbors == 1) { - // re-use the neighborhood from the setGeometry - pointNeighborhood = pointNeighborhood_; - } else { - // TODO: this will rebuild the neighborhood for every call - // to getFlux (number of rates) - // create a new neighborhood with a larger radius - std::vector midPoints(lineMesh.lines.size()); -#pragma omp parallel for - for (int i = 0; i < lineMesh.lines.size(); ++i) { - midPoints[i] = 0.5f * (lineMesh.nodes[lineMesh.lines[i][0]] + - lineMesh.nodes[lineMesh.lines[i][1]]); - } - pointNeighborhood.template init<3>( - midPoints, numNeighbors * std::sqrt(2) * this->gridDelta_, minBox, - maxBox); - } - - assert(flux.size() == pointNeighborhood_.getNumPoints() && - "Unequal number of points in smoothFlux"); - auto oldFlux = flux; - -#pragma omp parallel for - for (int idx = 0; idx < lineMesh.lines.size(); idx++) { - Vec3Df p0 = lineMesh.nodes[lineMesh.lines[idx][0]]; - Vec3Df p1 = lineMesh.nodes[lineMesh.lines[idx][1]]; - Vec3Df lineDir = p1 - p0; - Vec3Df normal = Vec3Df{lineDir[1], -lineDir[0], 0.0f}; - Normalize(normal); - float vv = oldFlux[idx]; - - auto const &neighborhood = pointNeighborhood.getNeighborIndices(idx); - float sum = 1.f; - - for (auto const &nbi : neighborhood) { - Vec3Df np0 = lineMesh.nodes[lineMesh.lines[nbi][0]]; - Vec3Df np1 = lineMesh.nodes[lineMesh.lines[nbi][1]]; - Vec3Df nlineDir = np1 - np0; - Vec3Df nnormal = Vec3Df{nlineDir[1], -nlineDir[0], 0.0f}; - Normalize(nnormal); - auto weight = DotProduct(normal, nnormal); - if (weight > 0.) { - vv += oldFlux[nbi] * weight; - sum += weight; - } - } - - flux[idx] = vv / sum; - } + // not implemented for line geometry + Logger::getInstance() + .addDebug("Flux smoothing not implemented for line geometry.") + .print(); } protected: void normalize() override { - float sourceArea = 0.f; - sourceArea = - (launchParams.source.maxPoint[0] - launchParams.source.minPoint[0]); assert(resultBuffer.sizeInBytes != 0 && "Normalization: Result buffer not initialized."); - CUdeviceptr d_data = resultBuffer.dPointer(); - CUdeviceptr d_nodes = lineGeometry.geometryNodesBuffer.dPointer(); - CUdeviceptr d_lines = lineGeometry.geometryLinesBuffer.dPointer(); + + float sourceArea = + launchParams.source.maxPoint[0] - launchParams.source.minPoint[0]; // calculate areas on host and send to device for now - Vec2D bdBox = {minBox, maxBox}; std::vector areas(launchParams.numElements, 0.f); - - // 0 = REFLECTIVE, 1 = PERIODIC, 2 = IGNORE - std::array boundaryConds = { - BoundaryCondition::REFLECTIVE, BoundaryCondition::IGNORE}; - const std::array boundaryDirs = {0, 1}; - const float eps = 1e-5f; #pragma omp for for (int idx = 0; idx < launchParams.numElements; ++idx) { Vec3Df p0 = lineMesh.nodes[lineMesh.lines[idx][0]]; Vec3Df p1 = lineMesh.nodes[lineMesh.lines[idx][1]]; Vec3Df lineDir = p1 - p0; - Vec3Df midPoint = (p0 + p1) / 2.f; - Vec3Df normal = Vec3Df{lineDir[1], -lineDir[0], 0.0f}; - Normalize(normal); - float radius = Norm(lineDir / 2.f); - areas[idx] = 2 * radius; - - // test min boundary - if ((boundaryConds[boundaryDirs[0]] != BoundaryCondition::IGNORE) && - (std::abs(midPoint[boundaryDirs[0]] - bdBox[0][boundaryDirs[0]]) < - radius)) { - T insideTest = 1 - normal[boundaryDirs[0]] * normal[boundaryDirs[0]]; - if (insideTest > eps) { - insideTest = - std::abs(midPoint[boundaryDirs[0]] - bdBox[0][boundaryDirs[0]]) / - std::sqrt(insideTest); - if (insideTest < radius) { - areas[idx] -= radius - insideTest; - } - } - } - - // test max boundary - if ((boundaryConds[boundaryDirs[0]] != BoundaryCondition::IGNORE) && - (std::abs(midPoint[boundaryDirs[0]] - bdBox[1][boundaryDirs[0]]) < - radius)) { - T insideTest = 1 - normal[boundaryDirs[0]] * normal[boundaryDirs[0]]; - if (insideTest > eps) { - insideTest = - std::abs(midPoint[boundaryDirs[0]] - bdBox[1][boundaryDirs[0]]) / - std::sqrt(insideTest); - if (insideTest < radius) { - areas[idx] -= radius - insideTest; - } - } - } + areas[idx] = 2 * Norm(lineDir / 2.f); } this->areaBuffer_.allocUpload(areas); CUdeviceptr d_areas = this->areaBuffer_.dPointer(); + CUdeviceptr d_data = resultBuffer.dPointer(); void *kernel_args[] = { &d_data, &d_areas, &launchParams.numElements, diff --git a/gpu/pipelines/GeneralPipelineLine.cu b/gpu/pipelines/GeneralPipelineLine.cu index be4cdce..beec42f 100644 --- a/gpu/pipelines/GeneralPipelineLine.cu +++ b/gpu/pipelines/GeneralPipelineLine.cu @@ -56,6 +56,8 @@ extern "C" __global__ void __closesthit__() { prd->tMin = optixGetRayTmax(); prd->primID = primID; + printf("Closest hit on line primitive %d\n", primID); + if (sbtData->base.isBoundary) { if (launchParams.periodicBoundary) { applyPeriodicBoundary(prd, sbtData, launchParams.D); diff --git a/include/viennaray/rayUtil.hpp b/include/viennaray/rayUtil.hpp index 40da777..0f0c537 100644 --- a/include/viennaray/rayUtil.hpp +++ b/include/viennaray/rayUtil.hpp @@ -377,10 +377,10 @@ void readGridFromFile(const std::string &fileName, NumericType &gridDelta, dataFile.close(); } -template +template void readMeshFromFile(const std::string &fileName, NumericType &gridDelta, std::vector> &nodes, - std::vector> &triangles) { + std::vector> &elements) { std::ifstream dataFile(fileName); if (!dataFile.is_open()) { Logger::getInstance() @@ -392,39 +392,27 @@ void readMeshFromFile(const std::string &fileName, NumericType &gridDelta, assert(id == "grid_delta"); dataFile >> gridDelta; - // unused - std::array minimumExtent; - std::array maximumExtent; - - dataFile >> id; - assert(id == "min_extent"); - dataFile >> minimumExtent[0] >> minimumExtent[1] >> minimumExtent[2]; - - dataFile >> id; - assert(id == "max_extent"); - dataFile >> maximumExtent[0] >> maximumExtent[1] >> maximumExtent[2]; - dataFile >> id; assert(id == "n_nodes"); size_t numPoints; dataFile >> numPoints; dataFile >> id; - assert(id == "n_triangles"); - size_t numTriangles; - dataFile >> numTriangles; + assert(id == "n_elements"); + size_t numElements; + dataFile >> numElements; nodes.resize(numPoints); - triangles.resize(numTriangles); + elements.resize(numElements); for (size_t i = 0; i < numPoints; ++i) { dataFile >> id; assert(id == "n"); dataFile >> nodes[i][0] >> nodes[i][1] >> nodes[i][2]; } - for (size_t i = 0; i < numTriangles; ++i) { + for (size_t i = 0; i < numElements; ++i) { dataFile >> id; - assert(id == "t"); - dataFile >> triangles[i][0] >> triangles[i][1] >> triangles[i][2]; + assert(id == "e"); + dataFile >> elements[i][0] >> elements[i][1] >> elements[i][2]; } dataFile.close(); } @@ -467,26 +455,34 @@ void writeVTK(const std::string &filename, f.close(); } -template +template void writeVTP(const std::string &filename, const std::vector> &points, - const std::vector> &triangles, + const std::vector> &elements, const std::vector &flux) { std::ofstream f(filename.c_str()); if (!f.is_open()) return; const size_t nPoints = points.size(); - const size_t nPolys = triangles.size(); + const size_t nElements = elements.size(); f << "\n"; f << "\n"; f << " \n"; - f << " \n"; + + // For D=2, use Lines; for D=3, use Polys + if constexpr (D == 2) { + f << " \n"; + } else { + f << " \n"; + } // Points f << " \n"; @@ -500,27 +496,38 @@ void writeVTP(const std::string &filename, f << " \n"; f << " \n"; - // Polys (triangles) - f << " \n"; + // Lines or Polys depending on dimension + if constexpr (D == 2) { + f << " \n"; + } else { + f << " \n"; + } + // connectivity f << " \n"; - for (size_t i = 0; i < nPolys; ++i) { - const auto &t = triangles[i]; - f << static_cast(t[0]) << " " << static_cast(t[1]) << " " - << static_cast(t[2]) << "\n"; + for (size_t i = 0; i < nElements; ++i) { + const auto &elem = elements[i]; + for (int j = 0; j < D; ++j) + f << static_cast(elem[j]) << " "; + f << "\n"; } f << " \n"; // offsets f << " \n"; int offset = 0; - for (size_t i = 0; i < nPolys; ++i) { - offset += 3; + for (size_t i = 0; i < nElements; ++i) { + offset += D; f << offset << "\n"; } f << " \n"; - f << " \n"; + + if constexpr (D == 2) { + f << " \n"; + } else { + f << " \n"; + } // Decide whether flux is per-point or per-cell if (flux.size() == nPoints) { @@ -532,11 +539,11 @@ void writeVTP(const std::string &filename, << "\n"; f << " \n"; f << " \n"; - } else if (flux.size() == nPolys) { + } else if (flux.size() == nElements) { f << " \n"; f << " \n"; - for (size_t i = 0; i < nPolys; ++i) + for (size_t i = 0; i < nElements; ++i) f << ((std::abs(flux[i]) < 1e-6) ? 0.0f : static_cast(flux[i])) << "\n"; f << " \n"; diff --git a/tests/triangleGeometry/triangleGeometry.cpp b/tests/triangleGeometry/triangleGeometry.cpp index d93b6f0..6a50f95 100644 --- a/tests/triangleGeometry/triangleGeometry.cpp +++ b/tests/triangleGeometry/triangleGeometry.cpp @@ -11,7 +11,7 @@ int main() { std::vector> points; std::vector> triangles; NumericType gridDelta; - rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, points, triangles); + rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, points, triangles); std::vector materialIds(triangles.size(), 7); auto device = rtcNewDevice(""); From 2e30f151b415dedb3b456f196bdf761209bc6dae Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Thu, 13 Nov 2025 20:33:59 +0100 Subject: [PATCH 02/16] Finish GPU line example --- examples/triangle2D/lineMesh.dat | 1 - gpu/examples/trenchLines.cpp | 24 ++++++++++-------------- gpu/include/raygLineGeometry.hpp | 25 ++++++++++++------------- gpu/pipelines/GeneralPipelineLine.cu | 19 +++++++++++-------- include/viennaray/rayUtil.hpp | 3 ++- 5 files changed, 35 insertions(+), 37 deletions(-) diff --git a/examples/triangle2D/lineMesh.dat b/examples/triangle2D/lineMesh.dat index 5b6d4a1..063ca40 100644 --- a/examples/triangle2D/lineMesh.dat +++ b/examples/triangle2D/lineMesh.dat @@ -132,7 +132,6 @@ n 4.4 -0.0 0.0 n 4.6 -0.0 0.0 n 4.8 -0.0 0.0 n 5.0 -0.0 0.0 -e 0 1 e 1 2 e 2 3 e 3 4 diff --git a/gpu/examples/trenchLines.cpp b/gpu/examples/trenchLines.cpp index fa4b35a..112ed39 100644 --- a/gpu/examples/trenchLines.cpp +++ b/gpu/examples/trenchLines.cpp @@ -27,26 +27,26 @@ int main() { gpu::computeBoundingBox(mesh); for (size_t i = 0; i < mesh.lines.size(); ++i) { - Vec3Df p0 = mesh.nodes[mesh.lines[i][0]]; - Vec3Df p1 = mesh.nodes[mesh.lines[i][1]]; + Vec3Df const &p0 = mesh.nodes[mesh.lines[i][0]]; + Vec3Df const &p1 = mesh.nodes[mesh.lines[i][1]]; Vec3Df lineDir = p1 - p0; - Vec3Df normal = Vec3Df{lineDir[1], -lineDir[0], 0.0f}; + Vec3Df normal = Vec3Df{-lineDir[1], lineDir[0], 0.0f}; viennacore::Normalize(normal); mesh.normals.push_back(normal); } - // std::vector materialIds(mesh.lines.size(), 7); - // for (int i = mesh.lines.size() / 2; i < mesh.lines.size(); ++i) { - // materialIds[i] = 1; - // } + std::vector materialIds(mesh.lines.size(), 7); + for (int i = mesh.lines.size() / 2; i < mesh.lines.size(); ++i) { + materialIds[i] = 1; + } gpu::Particle particle; particle.direction = {0.0f, 0.0f, -1.0f}; particle.name = "Particle"; particle.sticking = 1.f; particle.dataLabels = {"particleFlux"}; - // particle.materialSticking[7] = 1.f; - // particle.materialSticking[1] = .1f; + particle.materialSticking[7] = 1.f; + particle.materialSticking[1] = .1f; std::unordered_map pMap = {{"Particle", 0}}; std::vector cMap = { @@ -56,7 +56,7 @@ int main() { gpu::TraceLine tracer(context); tracer.setGeometry(mesh); - // tracer.setMaterialIds(materialIds); + tracer.setMaterialIds(materialIds); tracer.setCallables("CallableWrapper", context->modulePath); tracer.setParticleCallableMap({pMap, cMap}); tracer.setNumberOfRaysPerPoint(1000); @@ -68,10 +68,6 @@ int main() { std::vector flux(mesh.lines.size()); tracer.getFlux(flux.data(), 0, 0, 1); - for (size_t i = 0; i < flux.size(); ++i) { - std::cout << "Line " << i << " flux: " << flux[i] << "\n"; - } - rayInternal::writeVTP("lineGeometryOutput.vtp", mesh.nodes, mesh.lines, flux); diff --git a/gpu/include/raygLineGeometry.hpp b/gpu/include/raygLineGeometry.hpp index fce54b2..26045d9 100644 --- a/gpu/include/raygLineGeometry.hpp +++ b/gpu/include/raygLineGeometry.hpp @@ -56,8 +56,8 @@ template struct LineGeometry { std::vector aabb(mesh.lines.size()); for (size_t i = 0; i < mesh.lines.size(); ++i) { - Vec3Df p0 = mesh.nodes[mesh.lines[i][0]]; - Vec3Df p1 = mesh.nodes[mesh.lines[i][1]]; + const auto &p0 = mesh.nodes[mesh.lines[i][0]]; + const auto &p1 = mesh.nodes[mesh.lines[i][1]]; aabb[i] = {std::min(p0[0], p1[0]), std::min(p0[1], p1[1]), std::min(p0[2], p1[2]), std::max(p0[0], p1[0]), std::max(p0[1], p1[1]), std::max(p0[2], p1[2])}; @@ -98,8 +98,8 @@ template struct LineGeometry { // AABB build input for boundary lines std::vector aabbBoundary(boundaryMesh.lines.size()); for (size_t i = 0; i < boundaryMesh.lines.size(); ++i) { - Vec3Df p0 = boundaryMesh.nodes[boundaryMesh.lines[i][0]]; - Vec3Df p1 = boundaryMesh.nodes[boundaryMesh.lines[i][1]]; + auto const &p0 = boundaryMesh.nodes[boundaryMesh.lines[i][0]]; + auto const &p1 = boundaryMesh.nodes[boundaryMesh.lines[i][1]]; aabbBoundary[i] = {std::min(p0[0], p1[0]), std::min(p0[1], p1[1]), std::min(p0[2], p1[2]), std::max(p0[0], p1[0]), std::max(p0[1], p1[1]), std::max(p0[2], p1[2])}; @@ -181,15 +181,18 @@ template struct LineGeometry { static LineMesh makeBoundary(const LineMesh &passedMesh) { LineMesh boundaryMesh; - Vec3Df bbMin = passedMesh.minimumExtent; + const Vec3Df &bbMin = passedMesh.minimumExtent; Vec3Df bbMax = passedMesh.maximumExtent; - // adjust bounding box to include source plane and be below trench geometry + // adjust bounding box to include source plane bbMax[1] += 2 * passedMesh.gridDelta; - bbMin[1] -= 2 * passedMesh.gridDelta; - bbMin[2] = -passedMesh.gridDelta; - bbMax[2] = passedMesh.gridDelta; // one vertex in each corner of the bounding box + // y + // ^ + // | 2--------3 + // | | | + // | | | + // | 0--------1 --> x boundaryMesh.nodes.push_back({bbMin[0], bbMin[1], 0.f}); // 0 boundaryMesh.nodes.push_back({bbMax[0], bbMin[1], 0.f}); // 1 boundaryMesh.nodes.push_back({bbMin[0], bbMax[1], 0.f}); // 2 @@ -199,10 +202,6 @@ template struct LineGeometry { boundaryMesh.lines.push_back({2, 0}); // xmax - right 1 boundaryMesh.lines.push_back({1, 3}); - // ymin - bottom 2 - boundaryMesh.lines.push_back({0, 1}); - // ymax - top 3 - boundaryMesh.lines.push_back({2, 3}); return boundaryMesh; } diff --git a/gpu/pipelines/GeneralPipelineLine.cu b/gpu/pipelines/GeneralPipelineLine.cu index beec42f..af56204 100644 --- a/gpu/pipelines/GeneralPipelineLine.cu +++ b/gpu/pipelines/GeneralPipelineLine.cu @@ -28,18 +28,23 @@ extern "C" __global__ void __intersection__() { const int primID = optixGetPrimitiveIndex(); // Read geometric data from the primitive that is inside that AABB box - const Vec2D idx = (sbtData->lines)[primID]; - const Vec3Df p0 = sbtData->nodes[idx[0]]; - const Vec3Df p1 = sbtData->nodes[idx[1]]; + const Vec2D &idx = (sbtData->lines)[primID]; + const Vec3Df &p0 = sbtData->nodes[idx[0]]; + const Vec3Df &p1 = sbtData->nodes[idx[1]]; Vec3Df lineDir = p1 - p0; - Vec3Df d = CrossProduct(prd->dir, lineDir); + float d = 1.f / (prd->dir[0] * lineDir[1] - prd->dir[1] * lineDir[0]); bool valid = true; - float t = CrossProduct((p0 - prd->pos), lineDir)[2] / d[2]; + const Vec3Df p0ToRayOrigin = p0 - prd->pos; + float t = d * (p0ToRayOrigin[0] * lineDir[1] - p0ToRayOrigin[1] * lineDir[0]); + // float t = CrossProduct((p0 - prd->pos), lineDir)[2] * d; valid &= t > 1e-5f; - float s = CrossProduct((p0 - prd->pos), prd->dir)[2] / d[2]; + + float s = + d * (p0ToRayOrigin[0] * prd->dir[1] - p0ToRayOrigin[1] * prd->dir[0]); + // float s = CrossProduct((p0 - prd->pos), prd->dir)[2] * d; valid &= s > 1e-5f && s < 1.0f - 1e-5f; if (valid) { @@ -56,8 +61,6 @@ extern "C" __global__ void __closesthit__() { prd->tMin = optixGetRayTmax(); prd->primID = primID; - printf("Closest hit on line primitive %d\n", primID); - if (sbtData->base.isBoundary) { if (launchParams.periodicBoundary) { applyPeriodicBoundary(prd, sbtData, launchParams.D); diff --git a/include/viennaray/rayUtil.hpp b/include/viennaray/rayUtil.hpp index 0f0c537..3810b11 100644 --- a/include/viennaray/rayUtil.hpp +++ b/include/viennaray/rayUtil.hpp @@ -412,7 +412,8 @@ void readMeshFromFile(const std::string &fileName, NumericType &gridDelta, for (size_t i = 0; i < numElements; ++i) { dataFile >> id; assert(id == "e"); - dataFile >> elements[i][0] >> elements[i][1] >> elements[i][2]; + for (int j = 0; j < D; ++j) + dataFile >> elements[i][j]; } dataFile.close(); } From 88057c49b60995765c1776379cea42bb8853a7a8 Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Thu, 13 Nov 2025 21:33:30 +0100 Subject: [PATCH 03/16] First 2D triangle implementation working --- examples/triangle2D/triangle2D.cpp | 37 +++++++++++--------- gpu/include/raygTraceDisk.hpp | 1 + gpu/include/raygTraceLine.hpp | 17 +++------ gpu/include/raygTraceTriangle.hpp | 2 +- include/viennaray/rayGeometryTriangle.hpp | 9 ++++- include/viennaray/rayTraceTriangle.hpp | 24 +++++++------ include/viennaray/rayUtil.hpp | 38 +++++++++++++++++++++ tests/linesToTriangles/CMakeLists.txt | 9 +++++ tests/linesToTriangles/linesToTriangles.cpp | 25 ++++++++++++++ 9 files changed, 121 insertions(+), 41 deletions(-) create mode 100644 tests/linesToTriangles/CMakeLists.txt create mode 100644 tests/linesToTriangles/linesToTriangles.cpp diff --git a/examples/triangle2D/triangle2D.cpp b/examples/triangle2D/triangle2D.cpp index 3e48005..9643247 100644 --- a/examples/triangle2D/triangle2D.cpp +++ b/examples/triangle2D/triangle2D.cpp @@ -16,26 +16,31 @@ int main() { std::vector> points; std::vector> lines; NumericType gridDelta; - rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, points, lines); + rayInternal::readMeshFromFile("lineMesh.dat", gridDelta, + points, lines); -// TraceTriangle tracer; -// tracer.setGeometry(points, lines, gridDelta); + TraceTriangle tracer; + tracer.setGeometry(points, lines, gridDelta); + tracer.setSourceDirection(TraceDirection::POS_Y); -// auto particle = -// std::make_unique>(0.1, "flux"); -// tracer.setParticleType(particle); -// tracer.setNumberOfRaysPerPoint(2000); + auto particle = + std::make_unique>(0.1, "flux"); + tracer.setParticleType(particle); + tracer.setNumberOfRaysPerPoint(2000); -// Timer timer; -// timer.start(); -// tracer.apply(); -// timer.finish(); + Timer timer; + timer.start(); + tracer.apply(); + timer.finish(); -// std::cout << "Tracing time: " << timer.currentDuration / 1e9 << " s\n"; + std::cout << "Tracing time: " << timer.currentDuration / 1e9 << " s\n"; -// auto &localData = tracer.getLocalData(); -// tracer.normalizeFlux(localData.getVectorData(0), NormalizationType::SOURCE); + auto &localData = tracer.getLocalData(); + tracer.normalizeFlux(localData.getVectorData(0), NormalizationType::SOURCE); -// rayInternal::writeVTP("triangleGeometryOutput.vtp", points, triangles, -// localData.getVectorData(0)); + auto pointsTriangles = + rayInternal::convertLinesToTriangles(points, lines, gridDelta); + rayInternal::writeVTP( + "lineGeometryOutput.vtp", pointsTriangles.first, pointsTriangles.second, + localData.getVectorData(0)); } \ No newline at end of file diff --git a/gpu/include/raygTraceDisk.hpp b/gpu/include/raygTraceDisk.hpp index 504de11..e6aa6ad 100644 --- a/gpu/include/raygTraceDisk.hpp +++ b/gpu/include/raygTraceDisk.hpp @@ -168,6 +168,7 @@ template class TraceDisk : public Trace { &sourceArea, &this->numRays, &this->numFluxes_}; LaunchKernel::launch(this->normModuleName, this->normKernelName, kernel_args, *context_); + this->areaBuffer_.free(); } void buildHitGroups() override { diff --git a/gpu/include/raygTraceLine.hpp b/gpu/include/raygTraceLine.hpp index 3e5cef1..8e6052c 100644 --- a/gpu/include/raygTraceLine.hpp +++ b/gpu/include/raygTraceLine.hpp @@ -18,8 +18,6 @@ template class TraceLine : public Trace { ~TraceLine() { lineGeometry.freeBuffers(); } void setGeometry(const LineMesh &passedMesh) { - minBox = passedMesh.minimumExtent; - maxBox = passedMesh.maximumExtent; this->gridDelta_ = static_cast(passedMesh.gridDelta); lineMesh = passedMesh; launchParams.D = D; @@ -28,9 +26,6 @@ template class TraceLine : public Trace { void smoothFlux(std::vector &flux, int numNeighbors) override { // not implemented for line geometry - Logger::getInstance() - .addDebug("Flux smoothing not implemented for line geometry.") - .print(); } protected: @@ -45,10 +40,9 @@ template class TraceLine : public Trace { std::vector areas(launchParams.numElements, 0.f); #pragma omp for for (int idx = 0; idx < launchParams.numElements; ++idx) { - Vec3Df p0 = lineMesh.nodes[lineMesh.lines[idx][0]]; - Vec3Df p1 = lineMesh.nodes[lineMesh.lines[idx][1]]; - Vec3Df lineDir = p1 - p0; - areas[idx] = 2 * Norm(lineDir / 2.f); + Vec3Df const &p0 = lineMesh.nodes[lineMesh.lines[idx][0]]; + Vec3Df const &p1 = lineMesh.nodes[lineMesh.lines[idx][1]]; + areas[idx] = Norm(p1 - p0); } this->areaBuffer_.allocUpload(areas); @@ -60,6 +54,7 @@ template class TraceLine : public Trace { &sourceArea, &this->numRays, &this->numFluxes_}; LaunchKernel::launch(this->normModuleName, this->normKernelName, kernel_args, *context_); + this->areaBuffer_.free(); } void buildHitGroups() override { @@ -101,10 +96,6 @@ template class TraceLine : public Trace { LineMesh lineMesh; LineGeometry lineGeometry; - PointNeighborhood pointNeighborhood_; - Vec3Df minBox; - Vec3Df maxBox; - using Trace::context_; using Trace::geometryType_; diff --git a/gpu/include/raygTraceTriangle.hpp b/gpu/include/raygTraceTriangle.hpp index df996ef..d5e87df 100644 --- a/gpu/include/raygTraceTriangle.hpp +++ b/gpu/include/raygTraceTriangle.hpp @@ -7,7 +7,7 @@ namespace viennaray::gpu { using namespace viennacore; -template class TraceTriangle : public Trace { +template class TraceTriangle : public Trace { public: TraceTriangle(std::shared_ptr &passedContext) : Trace(passedContext, "Triangle") {} diff --git a/include/viennaray/rayGeometryTriangle.hpp b/include/viennaray/rayGeometryTriangle.hpp index e8c4e25..2dbc3e2 100644 --- a/include/viennaray/rayGeometryTriangle.hpp +++ b/include/viennaray/rayGeometryTriangle.hpp @@ -84,7 +84,14 @@ class GeometryTriangle : public Geometry { normals_[i] = Vec3Df{static_cast(normal[0]), static_cast(normal[1]), static_cast(normal[2])}; - areas_[i] = 0.5 * length; + if constexpr (D == 2) { + if (i % 2 == 0) + areas_[i] = 0.5 * Norm(v1 - v0); + else + areas_[i] = 0.5 * Norm(v2 - v0); + } else { + areas_[i] = 0.5 * length; + } } else { normals_[i] = Vec3Df{0.f, 0.f, 0.f}; areas_[i] = 0.; diff --git a/include/viennaray/rayTraceTriangle.hpp b/include/viennaray/rayTraceTriangle.hpp index 0c09701..9ed7b4e 100644 --- a/include/viennaray/rayTraceTriangle.hpp +++ b/include/viennaray/rayTraceTriangle.hpp @@ -9,16 +9,10 @@ namespace viennaray { using namespace viennacore; -template +template class TraceTriangle : public Trace { public: - TraceTriangle() { - if (D == 2) { - Logger::getInstance() - .addError("TraceTriangle not implemented in 2D.") - .print(); - } - } + TraceTriangle() {} ~TraceTriangle() { geometry_.releaseGeometry(); } /// Run the ray tracer @@ -62,15 +56,25 @@ class TraceTriangle : public Trace { } /// Set the ray tracing geometry - /// It is possible to set a 2D geometry with 3D points. - /// In this case the last dimension is ignored. void setGeometry(std::vector> const &points, std::vector> const &triangles, const NumericType gridDelta) { + assert(D == 3 && "Setting triangle geometry is only supported in 3D."); this->gridDelta_ = gridDelta; geometry_.initGeometry(this->device_, points, triangles); } + void setGeometry(std::vector> const &points, + std::vector> const &lines, + const NumericType gridDelta) { + assert(D == 2 && "Setting line geometry is only supported in 2D."); + this->gridDelta_ = gridDelta; + auto pointsTriangles = + rayInternal::convertLinesToTriangles(points, lines, gridDelta); + geometry_.initGeometry(this->device_, pointsTriangles.first, + pointsTriangles.second); + } + /// Set material ID's for each geometry point. /// If not set, all material IDs are default 0. template void setMaterialIds(std::vector const &materialIds) { diff --git a/include/viennaray/rayUtil.hpp b/include/viennaray/rayUtil.hpp index 3810b11..97e2a37 100644 --- a/include/viennaray/rayUtil.hpp +++ b/include/viennaray/rayUtil.hpp @@ -326,6 +326,44 @@ template return B; } +template +std::pair, std::vector>> +convertLinesToTriangles(const std::vector> &points, + const std::vector> &lines, + const NumericType lineWidth) { + std::vector triPoints; + std::vector> triangles; + triPoints.reserve(points.size() * 2); + triangles.reserve(lines.size() * 2); + + for (size_t i = 0; i < points.size(); ++i) { + triPoints.push_back(Vec3Df{static_cast(points[i][0]), + static_cast(points[i][1]), + static_cast(lineWidth / 2.f)}); + triPoints.push_back(Vec3Df{static_cast(points[i][0]), + static_cast(points[i][1]), + static_cast(-lineWidth / 2.f)}); + } + + for (size_t i = 0; i < lines.size(); ++i) { + const unsigned p0 = lines[i][0] * 2; + const unsigned p1 = lines[i][1] * 2; + + // first triangle + Vec3D tri1{p0, p1, static_cast(p0 + 1)}; + if (Norm2(CrossProduct(triPoints[tri1[1]] - triPoints[tri1[0]], + triPoints[tri1[2]] - triPoints[tri1[0]])) < 1e-6f) + continue; + triangles.push_back(tri1); + // second triangle + triangles.push_back(Vec3D{static_cast(p0 + 1), p1, + static_cast(p1 + 1)}); + } + triangles.shrink_to_fit(); + + return {triPoints, triangles}; +} + /* -------- Create or read simple geometries for testing -------- */ template void createPlaneGrid(const NumericType gridDelta, const NumericType extent, diff --git a/tests/linesToTriangles/CMakeLists.txt b/tests/linesToTriangles/CMakeLists.txt new file mode 100644 index 0000000..a63377b --- /dev/null +++ b/tests/linesToTriangles/CMakeLists.txt @@ -0,0 +1,9 @@ +project(linesToTriangles LANGUAGES CXX) + +add_executable(${PROJECT_NAME} "${PROJECT_NAME}.cpp") +target_link_libraries(${PROJECT_NAME} PRIVATE ViennaRay) +configure_file(${CMAKE_SOURCE_DIR}/examples/triangle2D/lineMesh.dat + ${CMAKE_CURRENT_BINARY_DIR}/lineMesh.dat COPYONLY) + +add_dependencies(ViennaRay_Tests ${PROJECT_NAME}) +add_test(NAME ${PROJECT_NAME} COMMAND $) diff --git a/tests/linesToTriangles/linesToTriangles.cpp b/tests/linesToTriangles/linesToTriangles.cpp new file mode 100644 index 0000000..eacc5ba --- /dev/null +++ b/tests/linesToTriangles/linesToTriangles.cpp @@ -0,0 +1,25 @@ +#include +#include + +using namespace viennaray; + +int main() { + constexpr int D = 2; + using NumericType = float; + + // Read stored geometry grid + std::vector> points; + std::vector> lines; + float gridDelta; + rayInternal::readMeshFromFile("lineMesh.dat", gridDelta, points, + lines); + + auto pointsTriangles = + rayInternal::convertLinesToTriangles(points, lines, gridDelta); + // std::vector flux(pointsTriangles.second.size(), 1.0f); + // rayInternal::writeVTP("linesToTriangles.vtp", + // pointsTriangles.first, + // pointsTriangles.second, flux); + + VC_TEST_ASSERT(pointsTriangles.first.size() == points.size() * 2); +} \ No newline at end of file From 99ccead25d29169793041a46828e3e22390a58ed Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Thu, 13 Nov 2025 22:46:29 +0100 Subject: [PATCH 04/16] Remove zero length line in lineTracing --- gpu/include/raygLineGeometry.hpp | 15 ++++++++++++++- include/viennaray/rayTraceTriangle.hpp | 1 - include/viennaray/rayUtil.hpp | 18 ++++++++++-------- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/gpu/include/raygLineGeometry.hpp b/gpu/include/raygLineGeometry.hpp index 26045d9..651663a 100644 --- a/gpu/include/raygLineGeometry.hpp +++ b/gpu/include/raygLineGeometry.hpp @@ -25,7 +25,7 @@ template struct LineGeometry { CudaBuffer asBuffer; /// build acceleration structure from triangle mesh - void buildAccel(DeviceContext &context, const LineMesh &mesh, + void buildAccel(DeviceContext &context, LineMesh &mesh, LaunchParams &launchParams) { assert(context.deviceID != -1 && "Context not initialized."); assert(mesh.gridDelta > 0.f && "Grid delta must be positive."); @@ -37,6 +37,19 @@ template struct LineGeometry { mesh.maximumExtent[1] + 2 * mesh.gridDelta; launchParams.numElements = mesh.lines.size(); + // remove zero length lines + std::vector> validLines; + validLines.reserve(mesh.lines.size()); + for (size_t i = 0; i < mesh.lines.size(); ++i) { + const auto &p0 = mesh.nodes[mesh.lines[i][0]]; + const auto &p1 = mesh.nodes[mesh.lines[i][1]]; + if (Norm(p1 - p0) > 1e-6f) { + validLines.push_back(mesh.lines[i]); + } + } + validLines.shrink_to_fit(); + mesh.lines = std::move(validLines); + // 2 inputs: one for the geometry, one for the boundary std::array lineInput{}; std::array lineInputFlags{}; diff --git a/include/viennaray/rayTraceTriangle.hpp b/include/viennaray/rayTraceTriangle.hpp index 9ed7b4e..9dff5a1 100644 --- a/include/viennaray/rayTraceTriangle.hpp +++ b/include/viennaray/rayTraceTriangle.hpp @@ -59,7 +59,6 @@ class TraceTriangle : public Trace { void setGeometry(std::vector> const &points, std::vector> const &triangles, const NumericType gridDelta) { - assert(D == 3 && "Setting triangle geometry is only supported in 3D."); this->gridDelta_ = gridDelta; geometry_.initGeometry(this->device_, points, triangles); } diff --git a/include/viennaray/rayUtil.hpp b/include/viennaray/rayUtil.hpp index 97e2a37..bc86a3a 100644 --- a/include/viennaray/rayUtil.hpp +++ b/include/viennaray/rayUtil.hpp @@ -327,22 +327,24 @@ template } template -std::pair, std::vector>> +std::pair>, std::vector>> convertLinesToTriangles(const std::vector> &points, const std::vector> &lines, const NumericType lineWidth) { - std::vector triPoints; + std::vector> triPoints; std::vector> triangles; triPoints.reserve(points.size() * 2); triangles.reserve(lines.size() * 2); for (size_t i = 0; i < points.size(); ++i) { - triPoints.push_back(Vec3Df{static_cast(points[i][0]), - static_cast(points[i][1]), - static_cast(lineWidth / 2.f)}); - triPoints.push_back(Vec3Df{static_cast(points[i][0]), - static_cast(points[i][1]), - static_cast(-lineWidth / 2.f)}); + triPoints.push_back( + Vec3D{static_cast(points[i][0]), + static_cast(points[i][1]), + static_cast(lineWidth / 2.)}); + triPoints.push_back( + Vec3D{static_cast(points[i][0]), + static_cast(points[i][1]), + static_cast(-lineWidth / 2.)}); } for (size_t i = 0; i < lines.size(); ++i) { From 3207a40de53aa67e98979d9186c4715b92d5c04f Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Fri, 14 Nov 2025 11:51:39 +0100 Subject: [PATCH 05/16] 2D triangle tracing on GPU --- examples/triangle2D/triangle2D.cpp | 15 +- examples/triangle3D/triangle3D.cpp | 3 +- gpu/examples/trenchLines.cpp | 61 +++++--- gpu/examples/trenchTriangles.cpp | 9 +- gpu/include/raygLineGeometry.hpp | 17 +-- gpu/include/raygMesh.hpp | 57 ------- gpu/include/raygTraceLine.hpp | 2 +- gpu/include/raygTraceTriangle.hpp | 25 +++- gpu/include/raygTriangleGeometry.hpp | 136 ++++++++++++----- gpu/kernels/normKernels.cu | 25 ++++ include/viennaray/rayGeometry.hpp | 1 + include/viennaray/rayGeometryTriangle.hpp | 74 +++++++++ include/viennaray/rayMesh.hpp | 175 ++++++++++++++++++++++ include/viennaray/rayTrace.hpp | 3 +- include/viennaray/rayTraceTriangle.hpp | 28 ++-- include/viennaray/rayUtil.hpp | 40 ----- 16 files changed, 464 insertions(+), 207 deletions(-) delete mode 100644 gpu/include/raygMesh.hpp create mode 100644 include/viennaray/rayMesh.hpp diff --git a/examples/triangle2D/triangle2D.cpp b/examples/triangle2D/triangle2D.cpp index 9643247..1a7a26a 100644 --- a/examples/triangle2D/triangle2D.cpp +++ b/examples/triangle2D/triangle2D.cpp @@ -19,14 +19,14 @@ int main() { rayInternal::readMeshFromFile("lineMesh.dat", gridDelta, points, lines); + LineMesh lineMesh(points, lines, gridDelta); TraceTriangle tracer; - tracer.setGeometry(points, lines, gridDelta); - tracer.setSourceDirection(TraceDirection::POS_Y); + tracer.setGeometry(lineMesh); auto particle = std::make_unique>(0.1, "flux"); tracer.setParticleType(particle); - tracer.setNumberOfRaysPerPoint(2000); + tracer.setNumberOfRaysPerPoint(5000); Timer timer; timer.start(); @@ -38,9 +38,8 @@ int main() { auto &localData = tracer.getLocalData(); tracer.normalizeFlux(localData.getVectorData(0), NormalizationType::SOURCE); - auto pointsTriangles = - rayInternal::convertLinesToTriangles(points, lines, gridDelta); - rayInternal::writeVTP( - "lineGeometryOutput.vtp", pointsTriangles.first, pointsTriangles.second, - localData.getVectorData(0)); + auto triMesh = convertLinesToTriangles(lineMesh); + rayInternal::writeVTP("lineGeometryOutput.vtp", triMesh.nodes, + triMesh.triangles, + localData.getVectorData(0)); } \ No newline at end of file diff --git a/examples/triangle3D/triangle3D.cpp b/examples/triangle3D/triangle3D.cpp index 6b4dd29..a416845 100644 --- a/examples/triangle3D/triangle3D.cpp +++ b/examples/triangle3D/triangle3D.cpp @@ -19,8 +19,9 @@ int main() { rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, points, triangles); + TriangleMesh mesh(points, triangles, gridDelta); TraceTriangle tracer; - tracer.setGeometry(points, triangles, gridDelta); + tracer.setGeometry(mesh); auto particle = std::make_unique>(0.1, "flux"); diff --git a/gpu/examples/trenchLines.cpp b/gpu/examples/trenchLines.cpp index 112ed39..ab24d24 100644 --- a/gpu/examples/trenchLines.cpp +++ b/gpu/examples/trenchLines.cpp @@ -1,4 +1,5 @@ #include +#include #include @@ -20,28 +21,16 @@ int main() { float gridDelta; rayInternal::readMeshFromFile("lineMesh.dat", gridDelta, points, lines); - gpu::LineMesh mesh; - mesh.nodes = std::move(points); - mesh.lines = std::move(lines); - mesh.gridDelta = gridDelta; - gpu::computeBoundingBox(mesh); - - for (size_t i = 0; i < mesh.lines.size(); ++i) { - Vec3Df const &p0 = mesh.nodes[mesh.lines[i][0]]; - Vec3Df const &p1 = mesh.nodes[mesh.lines[i][1]]; - Vec3Df lineDir = p1 - p0; - Vec3Df normal = Vec3Df{-lineDir[1], lineDir[0], 0.0f}; - viennacore::Normalize(normal); - mesh.normals.push_back(normal); - } - - std::vector materialIds(mesh.lines.size(), 7); - for (int i = mesh.lines.size() / 2; i < mesh.lines.size(); ++i) { - materialIds[i] = 1; - } + + // ------------ Trace Line Geometry ---------------- + LineMesh mesh(points, lines, gridDelta); + + std::vector materialIds(mesh.lines.size(), 1); + // for (int i = mesh.lines.size() / 2; i < mesh.lines.size(); ++i) { + // materialIds[i] = 1; + // } gpu::Particle particle; - particle.direction = {0.0f, 0.0f, -1.0f}; particle.name = "Particle"; particle.sticking = 1.f; particle.dataLabels = {"particleFlux"}; @@ -59,7 +48,7 @@ int main() { tracer.setMaterialIds(materialIds); tracer.setCallables("CallableWrapper", context->modulePath); tracer.setParticleCallableMap({pMap, cMap}); - tracer.setNumberOfRaysPerPoint(1000); + tracer.setNumberOfRaysPerPoint(5000); tracer.insertNextParticle(particle); tracer.prepareParticlePrograms(); @@ -67,9 +56,35 @@ int main() { std::vector flux(mesh.lines.size()); tracer.getFlux(flux.data(), 0, 0, 1); - - rayInternal::writeVTP("lineGeometryOutput.vtp", mesh.nodes, + rayInternal::writeVTP("trenchLines_lineFlux.vtp", mesh.nodes, mesh.lines, flux); + // ------------ Trace Triangle Geometry ---------------- + std::cout << "Converting line mesh to triangle mesh..." << std::endl; + auto triMesh = convertLinesToTriangles(mesh); + + materialIds.resize(triMesh.triangles.size(), 1); + // for (int i = triMesh.triangles.size() / 2; i < triMesh.triangles.size(); + // ++i) { + // materialIds[i] = 1; + // } + + gpu::TraceTriangle triangleTracer(context); + triangleTracer.setGeometry(triMesh); + triangleTracer.setMaterialIds(materialIds); + triangleTracer.setCallables("CallableWrapper", context->modulePath); + triangleTracer.setParticleCallableMap({pMap, cMap}); + triangleTracer.setNumberOfRaysPerPoint(5000); + triangleTracer.insertNextParticle(particle); + triangleTracer.prepareParticlePrograms(); + + triangleTracer.apply(); + + flux.resize(triMesh.triangles.size()); + triangleTracer.getFlux(flux.data(), 0, 0); + + rayInternal::writeVTP("trenchLines_triFlux.vtp", triMesh.nodes, + triMesh.triangles, flux); + return 0; } diff --git a/gpu/examples/trenchTriangles.cpp b/gpu/examples/trenchTriangles.cpp index 340e825..8db7678 100644 --- a/gpu/examples/trenchTriangles.cpp +++ b/gpu/examples/trenchTriangles.cpp @@ -21,18 +21,13 @@ int main(int argc, char **argv) { float gridDelta; rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, points, triangles); - gpu::TriangleMesh mesh; - mesh.nodes = std::move(points); - mesh.triangles = std::move(triangles); - mesh.gridDelta = static_cast(gridDelta); - gpu::computeBoundingBox(mesh); + TriangleMesh mesh(points, triangles, gridDelta); std::vector materialIds(mesh.triangles.size(), 7); for (int i = mesh.triangles.size() / 2; i < mesh.triangles.size(); ++i) { materialIds[i] = 1; } gpu::Particle particle; - particle.direction = {0.0f, 0.0f, -1.0f}; particle.name = "Particle"; particle.sticking = 0.1f; particle.dataLabels = {"particleFlux"}; @@ -67,7 +62,7 @@ int main(int argc, char **argv) { std::vector flux(mesh.triangles.size()); tracer.getFlux(flux.data(), 0, 0); - rayInternal::writeVTP("triangleGeometryOutput.vtp", mesh.nodes, + rayInternal::writeVTP("trenchTriangles_triMesh.vtp", mesh.nodes, mesh.triangles, flux); #ifdef COUNT_RAYS diff --git a/gpu/include/raygLineGeometry.hpp b/gpu/include/raygLineGeometry.hpp index 651663a..ac67ed0 100644 --- a/gpu/include/raygLineGeometry.hpp +++ b/gpu/include/raygLineGeometry.hpp @@ -3,9 +3,9 @@ #include #include +#include "rayMesh.hpp" #include "rayUtil.hpp" #include "raygLaunchParams.hpp" -#include "raygMesh.hpp" namespace viennaray::gpu { @@ -25,7 +25,7 @@ template struct LineGeometry { CudaBuffer asBuffer; /// build acceleration structure from triangle mesh - void buildAccel(DeviceContext &context, LineMesh &mesh, + void buildAccel(DeviceContext &context, const LineMesh &mesh, LaunchParams &launchParams) { assert(context.deviceID != -1 && "Context not initialized."); assert(mesh.gridDelta > 0.f && "Grid delta must be positive."); @@ -37,19 +37,6 @@ template struct LineGeometry { mesh.maximumExtent[1] + 2 * mesh.gridDelta; launchParams.numElements = mesh.lines.size(); - // remove zero length lines - std::vector> validLines; - validLines.reserve(mesh.lines.size()); - for (size_t i = 0; i < mesh.lines.size(); ++i) { - const auto &p0 = mesh.nodes[mesh.lines[i][0]]; - const auto &p1 = mesh.nodes[mesh.lines[i][1]]; - if (Norm(p1 - p0) > 1e-6f) { - validLines.push_back(mesh.lines[i]); - } - } - validLines.shrink_to_fit(); - mesh.lines = std::move(validLines); - // 2 inputs: one for the geometry, one for the boundary std::array lineInput{}; std::array lineInputFlags{}; diff --git a/gpu/include/raygMesh.hpp b/gpu/include/raygMesh.hpp deleted file mode 100644 index 488abe0..0000000 --- a/gpu/include/raygMesh.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#pragma once - -#include - -#include -#include -#include - -namespace viennaray::gpu { - -using namespace viennacore; - -struct LineMesh { - std::vector nodes; - std::vector> lines; - std::vector normals; - - Vec3Df minimumExtent; - Vec3Df maximumExtent; - float gridDelta = 0.f; -}; - -struct TriangleMesh { - std::vector nodes; - std::vector> triangles; - std::vector normals; - - Vec3Df minimumExtent; - Vec3Df maximumExtent; - float gridDelta = 0.f; -}; - -struct DiskMesh { - std::vector nodes; - std::vector normals; - - Vec3Df minimumExtent; - Vec3Df maximumExtent; - float radius = 0.f; - float gridDelta = 0.f; -}; - -template void computeBoundingBox(MeshType &mesh) { - if (mesh.nodes.empty()) - return; - mesh.minimumExtent = mesh.nodes[0]; - mesh.maximumExtent = mesh.nodes[0]; - for (const auto &p : mesh.nodes) { - for (int d = 0; d < 3; ++d) { - if (p[d] < mesh.minimumExtent[d]) - mesh.minimumExtent[d] = p[d]; - if (p[d] > mesh.maximumExtent[d]) - mesh.maximumExtent[d] = p[d]; - } - } -} -} // namespace viennaray::gpu diff --git a/gpu/include/raygTraceLine.hpp b/gpu/include/raygTraceLine.hpp index 8e6052c..b9c6322 100644 --- a/gpu/include/raygTraceLine.hpp +++ b/gpu/include/raygTraceLine.hpp @@ -21,7 +21,7 @@ template class TraceLine : public Trace { this->gridDelta_ = static_cast(passedMesh.gridDelta); lineMesh = passedMesh; launchParams.D = D; - lineGeometry.buildAccel(*context_, passedMesh, launchParams); + lineGeometry.buildAccel(*context_, lineMesh, launchParams); } void smoothFlux(std::vector &flux, int numNeighbors) override { diff --git a/gpu/include/raygTraceTriangle.hpp b/gpu/include/raygTraceTriangle.hpp index d5e87df..6cf42cb 100644 --- a/gpu/include/raygTraceTriangle.hpp +++ b/gpu/include/raygTraceTriangle.hpp @@ -7,18 +7,35 @@ namespace viennaray::gpu { using namespace viennacore; -template class TraceTriangle : public Trace { +template class TraceTriangle : public Trace { public: TraceTriangle(std::shared_ptr &passedContext) - : Trace(passedContext, "Triangle") {} + : Trace(passedContext, "Triangle") { + if constexpr (D == 2) { + this->normKernelName.append("_2D"); + } + } - TraceTriangle(unsigned deviceID = 0) : Trace("Triangle", deviceID) {} + TraceTriangle(unsigned deviceID = 0) : Trace("Triangle", deviceID) { + if constexpr (D == 2) { + this->normKernelName.append("_2D"); + } + } ~TraceTriangle() { triangleGeometry.freeBuffers(); } void setGeometry(const TriangleMesh &passedMesh) { assert(context_); - triangleGeometry.buildAccel(*context_, passedMesh, launchParams); + assert(passedMesh.triangles.size() > 0 && + "Triangle mesh has no triangles."); + assert(passedMesh.nodes.size() > 0 && "Triangle mesh has no vertices."); + + this->gridDelta_ = static_cast(passedMesh.gridDelta); + triangleGeometry.buildAccel(*context_, passedMesh, launchParams); + + if constexpr (D == 2) { + triangleMesh = passedMesh; + } } void smoothFlux(std::vector &flux, int smoothingNeighbors) override {} diff --git a/gpu/include/raygTriangleGeometry.hpp b/gpu/include/raygTriangleGeometry.hpp index 582fd68..9effcb3 100644 --- a/gpu/include/raygTriangleGeometry.hpp +++ b/gpu/include/raygTriangleGeometry.hpp @@ -3,8 +3,8 @@ #include #include +#include "rayMesh.hpp" #include "raygLaunchParams.hpp" -#include "raygMesh.hpp" namespace viennaray::gpu { @@ -24,16 +24,26 @@ struct TriangleGeometry { CudaBuffer asBuffer; /// build acceleration structure from triangle mesh + template void buildAccel(DeviceContext &context, const TriangleMesh &mesh, LaunchParams &launchParams) { assert(context.deviceID != -1 && "Context not initialized."); - launchParams.source.minPoint[0] = mesh.minimumExtent[0]; - launchParams.source.minPoint[1] = mesh.minimumExtent[1]; - launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; - launchParams.source.maxPoint[1] = mesh.maximumExtent[1]; - launchParams.source.planeHeight = mesh.maximumExtent[2] + mesh.gridDelta; + if constexpr (D == 2) { + launchParams.source.minPoint[0] = mesh.minimumExtent[0]; + launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; + launchParams.source.minPoint[1] = 0.f; + launchParams.source.maxPoint[1] = 0.f; + launchParams.source.planeHeight = mesh.maximumExtent[1] + mesh.gridDelta; + } else { + launchParams.source.minPoint[1] = mesh.minimumExtent[1]; + launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; + launchParams.source.minPoint[0] = mesh.minimumExtent[0]; + launchParams.source.maxPoint[1] = mesh.maximumExtent[1]; + launchParams.source.planeHeight = mesh.maximumExtent[2] + mesh.gridDelta; + } launchParams.numElements = mesh.triangles.size(); + launchParams.D = D; // 2 inputs: one for the geometry, one for the boundary std::array triangleInput{}; @@ -77,7 +87,7 @@ struct TriangleGeometry { triangleInput[0].triangleArray.sbtIndexOffsetStrideInBytes = 0; // ------------------------- boundary input ------------------------- - auto boundaryMesh = makeBoundary(mesh); + auto boundaryMesh = makeBoundary(mesh); // upload the model to the device: the builder boundaryVertexBuffer.allocUpload(boundaryMesh.nodes); boundaryIndexBuffer.allocUpload(boundaryMesh.triangles); @@ -165,42 +175,88 @@ struct TriangleGeometry { launchParams.traversable = asHandle; } + template static TriangleMesh makeBoundary(const TriangleMesh &passedMesh) { TriangleMesh boundaryMesh; - Vec3Df bbMin = passedMesh.minimumExtent; - Vec3Df bbMax = passedMesh.maximumExtent; - // adjust bounding box to include source plane - bbMax[2] += passedMesh.gridDelta; - boundaryMesh.gridDelta = passedMesh.gridDelta; - - boundaryMesh.nodes.reserve(8); - boundaryMesh.triangles.reserve(8); - - // bottom - boundaryMesh.nodes.push_back(Vec3Df{bbMin[0], bbMin[1], bbMin[2]}); - boundaryMesh.nodes.push_back(Vec3Df{bbMax[0], bbMin[1], bbMin[2]}); - boundaryMesh.nodes.push_back(Vec3Df{bbMax[0], bbMax[1], bbMin[2]}); - boundaryMesh.nodes.push_back(Vec3Df{bbMin[0], bbMax[1], bbMin[2]}); - // top - boundaryMesh.nodes.push_back(Vec3Df{bbMin[0], bbMin[1], bbMax[2]}); - boundaryMesh.nodes.push_back(Vec3Df{bbMax[0], bbMin[1], bbMax[2]}); - boundaryMesh.nodes.push_back(Vec3Df{bbMax[0], bbMax[1], bbMax[2]}); - boundaryMesh.nodes.push_back(Vec3Df{bbMin[0], bbMax[1], bbMax[2]}); - - // x min max - boundaryMesh.triangles.push_back(Vec3D{0, 3, 7}); // 0 - boundaryMesh.triangles.push_back(Vec3D{0, 7, 4}); // 1 - boundaryMesh.triangles.push_back(Vec3D{6, 2, 1}); // 2 - boundaryMesh.triangles.push_back(Vec3D{6, 1, 5}); // 3 - // y min max - boundaryMesh.triangles.push_back(Vec3D{0, 4, 5}); // 4 - boundaryMesh.triangles.push_back(Vec3D{0, 5, 1}); // 5 - boundaryMesh.triangles.push_back(Vec3D{6, 7, 3}); // 6 - boundaryMesh.triangles.push_back(Vec3D{6, 3, 2}); // 7 - - boundaryMesh.minimumExtent = bbMin; - boundaryMesh.maximumExtent = bbMax; + if constexpr (D == 3) { + Vec3Df bbMin = passedMesh.minimumExtent; + Vec3Df bbMax = passedMesh.maximumExtent; + // adjust bounding box to include source plane + bbMax[2] += passedMesh.gridDelta; + boundaryMesh.gridDelta = passedMesh.gridDelta; + + boundaryMesh.nodes.reserve(8); + boundaryMesh.triangles.reserve(8); + + // bottom + boundaryMesh.nodes.push_back(Vec3Df{bbMin[0], bbMin[1], bbMin[2]}); + boundaryMesh.nodes.push_back(Vec3Df{bbMax[0], bbMin[1], bbMin[2]}); + boundaryMesh.nodes.push_back(Vec3Df{bbMax[0], bbMax[1], bbMin[2]}); + boundaryMesh.nodes.push_back(Vec3Df{bbMin[0], bbMax[1], bbMin[2]}); + // top + boundaryMesh.nodes.push_back(Vec3Df{bbMin[0], bbMin[1], bbMax[2]}); + boundaryMesh.nodes.push_back(Vec3Df{bbMax[0], bbMin[1], bbMax[2]}); + boundaryMesh.nodes.push_back(Vec3Df{bbMax[0], bbMax[1], bbMax[2]}); + boundaryMesh.nodes.push_back(Vec3Df{bbMin[0], bbMax[1], bbMax[2]}); + + // x min max + boundaryMesh.triangles.push_back(Vec3D{0, 3, 7}); // 0 + boundaryMesh.triangles.push_back(Vec3D{0, 7, 4}); // 1 + boundaryMesh.triangles.push_back(Vec3D{6, 2, 1}); // 2 + boundaryMesh.triangles.push_back(Vec3D{6, 1, 5}); // 3 + // y min max + boundaryMesh.triangles.push_back(Vec3D{0, 4, 5}); // 4 + boundaryMesh.triangles.push_back(Vec3D{0, 5, 1}); // 5 + boundaryMesh.triangles.push_back(Vec3D{6, 7, 3}); // 6 + boundaryMesh.triangles.push_back(Vec3D{6, 3, 2}); // 7 + + boundaryMesh.minimumExtent = bbMin; + boundaryMesh.maximumExtent = bbMax; + } else if constexpr (D == 2) { + + const Vec3Df &bbMin = passedMesh.minimumExtent; + Vec3Df bbMax = passedMesh.maximumExtent; + // adjust bounding box to include source plane + bbMax[1] += 2 * passedMesh.gridDelta; + boundaryMesh.gridDelta = passedMesh.gridDelta; + boundaryMesh.nodes.reserve(8); + boundaryMesh.triangles.reserve(4); + + boundaryMesh.nodes.push_back( + {bbMin[0], bbMin[1], 0.5f * boundaryMesh.gridDelta}); // 0 + boundaryMesh.nodes.push_back( + {bbMin[0], bbMin[1], -0.5f * boundaryMesh.gridDelta}); // 1 + + // right bottom + boundaryMesh.nodes.push_back( + {bbMax[0], bbMin[1], 0.5f * boundaryMesh.gridDelta}); // 2 + boundaryMesh.nodes.push_back( + {bbMax[0], bbMin[1], -0.5f * boundaryMesh.gridDelta}); // 3 + + // left top + boundaryMesh.nodes.push_back( + {bbMin[0], bbMax[1], 0.5f * boundaryMesh.gridDelta}); // 4 + boundaryMesh.nodes.push_back( + {bbMin[0], bbMax[1], -0.5f * boundaryMesh.gridDelta}); // 5 + + // right top + boundaryMesh.nodes.push_back( + {bbMax[0], bbMax[1], 0.5f * boundaryMesh.gridDelta}); // 6 + boundaryMesh.nodes.push_back( + {bbMax[0], bbMax[1], -0.5f * boundaryMesh.gridDelta}); // 7 + + // xmin - left 0 + boundaryMesh.triangles.push_back({0, 1, 5}); + boundaryMesh.triangles.push_back({4, 0, 5}); + + // xmax - right 1 + boundaryMesh.triangles.push_back({3, 2, 6}); + boundaryMesh.triangles.push_back({7, 3, 6}); + + boundaryMesh.minimumExtent = bbMin; + boundaryMesh.maximumExtent = bbMax; + } return boundaryMesh; } diff --git a/gpu/kernels/normKernels.cu b/gpu/kernels/normKernels.cu index 02e540f..f97e66e 100644 --- a/gpu/kernels/normKernels.cu +++ b/gpu/kernels/normKernels.cu @@ -24,6 +24,31 @@ extern "C" __global__ void normalize_surface_Triangle_f( } } +extern "C" __global__ void normalize_surface_Triangle_f_2D( + float *data, const viennacore::Vec3Df *vertex, + const viennacore::Vec3D *index, const unsigned int numTriangles, + const float sourceArea, const size_t numRays, const int numData) { + using namespace viennacore; + unsigned int tidx = blockIdx.x * blockDim.x + threadIdx.x; + unsigned int stride = blockDim.x * gridDim.x; + + for (; tidx < numTriangles * numData; tidx += stride) { + auto elIdx = index[tidx % numTriangles]; + const auto &A = vertex[elIdx[0]]; + const auto &B = vertex[elIdx[1]]; + const auto &C = vertex[elIdx[2]]; + float area; + if ((tidx % numTriangles) % 2 == 0) + area = 0.5 * Norm(B - A); + else + area = 0.5 * Norm(C - A); + if (area > 1e-6f) + data[tidx] *= sourceArea / (area * (float)numRays); + else + data[tidx] = 0.f; + } +} + extern "C" __global__ void normalize_surface_Triangle_d( double *data, const viennacore::Vec3Df *vertex, const viennacore::Vec3D *index, const unsigned int numTriangles, diff --git a/include/viennaray/rayGeometry.hpp b/include/viennaray/rayGeometry.hpp index 3ecb804..86152d4 100644 --- a/include/viennaray/rayGeometry.hpp +++ b/include/viennaray/rayGeometry.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include diff --git a/include/viennaray/rayGeometryTriangle.hpp b/include/viennaray/rayGeometryTriangle.hpp index 2dbc3e2..63b6006 100644 --- a/include/viennaray/rayGeometryTriangle.hpp +++ b/include/viennaray/rayGeometryTriangle.hpp @@ -11,6 +11,80 @@ class GeometryTriangle : public Geometry { public: GeometryTriangle() : Geometry(GeometryType::TRIANGLE) {} + void initGeometry(RTCDevice &device, const TriangleMesh &mesh) { + + // overwriting the geometry without releasing it beforehand causes the old + // buffer to leak + releaseGeometry(); + this->pRtcGeometry_ = rtcNewGeometry(device, RTC_GEOMETRY_TYPE_TRIANGLE); + assert(rtcGetDeviceError(device) == RTC_ERROR_NONE && + "RTC Error: rtcNewGeometry"); + this->numPrimitives_ = mesh.triangles.size(); + + // The buffer data is managed internally (embree) and automatically freed + // when the geometry is destroyed. + pPointBuffer_ = (point_3f_t *)rtcSetNewGeometryBuffer( + this->pRtcGeometry_, RTC_BUFFER_TYPE_VERTEX, + 0, // slot + RTC_FORMAT_FLOAT3, sizeof(point_3f_t), mesh.nodes.size()); + + assert(rtcGetDeviceError(device) == RTC_ERROR_NONE && + "RTC Error: rtcSetNewGeometryBuffer points"); + + this->minCoords_ = mesh.minimumExtent; + this->maxCoords_ = mesh.maximumExtent; + + for (size_t i = 0; i < mesh.nodes.size(); ++i) { + pPointBuffer_[i].xx = mesh.nodes[i][0]; + pPointBuffer_[i].yy = mesh.nodes[i][1]; + pPointBuffer_[i].zz = mesh.nodes[i][2]; + } + + pTriangleBuffer_ = (triangle_3u_t *)rtcSetNewGeometryBuffer( + this->pRtcGeometry_, RTC_BUFFER_TYPE_INDEX, + 0, // slot + RTC_FORMAT_UINT3, sizeof(triangle_3u_t), this->numPrimitives_); + + assert(rtcGetDeviceError(device) == RTC_ERROR_NONE && + "RTC Error: rtcSetNewGeometryBuffer elements"); + + areas_.resize(this->numPrimitives_); + normals_ = mesh.normals; + assert(normals_.size() == this->numPrimitives_ && + "Number of normals does not match number of triangles."); + for (size_t i = 0; i < this->numPrimitives_; ++i) { + pTriangleBuffer_[i].uu = mesh.triangles[i][0]; + pTriangleBuffer_[i].vv = mesh.triangles[i][1]; + pTriangleBuffer_[i].ww = mesh.triangles[i][2]; + + // precompute areas + auto const &v0 = mesh.nodes[mesh.triangles[i][0]]; + auto const &v1 = mesh.nodes[mesh.triangles[i][1]]; + auto const &v2 = mesh.nodes[mesh.triangles[i][2]]; + if constexpr (D == 2) { + if (i % 2 == 0) + areas_[i] = 0.5 * Norm(v1 - v0); + else + areas_[i] = 0.5 * Norm(v2 - v0); + } else { + auto normal = CrossProduct(v1 - v0, v2 - v0); + areas_[i] = 0.5 * Norm(normal); + } + } + +#ifdef VIENNARAY_USE_RAY_MASKING + rtcSetGeometryMask(this->pRtcGeometry_, -1); +#endif + + rtcCommitGeometry(this->pRtcGeometry_); + assert(rtcGetDeviceError(device) == RTC_ERROR_NONE && + "RTC Error: rtcCommitGeometry"); + + if (this->materialIds_.size() != this->numPrimitives_) { + this->materialIds_.resize(this->numPrimitives_, 0); + } + } + void initGeometry(RTCDevice &device, std::vector> const &points, std::vector> const &elements) { diff --git a/include/viennaray/rayMesh.hpp b/include/viennaray/rayMesh.hpp new file mode 100644 index 0000000..4c718e5 --- /dev/null +++ b/include/viennaray/rayMesh.hpp @@ -0,0 +1,175 @@ +#pragma once + +#include + +#include +#include +#include + +namespace viennaray { + +using namespace viennacore; + +template void computeBoundingBox(MeshType &mesh) { + if (mesh.nodes.empty()) + return; + mesh.minimumExtent = mesh.nodes[0]; + mesh.maximumExtent = mesh.nodes[0]; + for (const auto &p : mesh.nodes) { + for (int d = 0; d < 3; ++d) { + if (p[d] < mesh.minimumExtent[d]) + mesh.minimumExtent[d] = p[d]; + if (p[d] > mesh.maximumExtent[d]) + mesh.maximumExtent[d] = p[d]; + } + } +} + +struct LineMesh { + LineMesh() {} + LineMesh(const std::vector &pts, + const std::vector> &lns, float delta) + : nodes(pts), lines(lns), gridDelta(delta) { + calculateNormals(); + removeZeroLengthLines(); + computeBoundingBox(*this); + } + + std::vector nodes; + std::vector> lines; + std::vector normals; + + Vec3Df minimumExtent; + Vec3Df maximumExtent; + float gridDelta = 0.f; + + void calculateNormals() { + assert(lines.size() > 0 && "No lines in mesh."); + normals.clear(); + normals.resize(lines.size()); +#pragma omp parallel for + for (size_t i = 0; i < lines.size(); ++i) { + Vec3Df const &p0 = nodes[lines[i][0]]; + Vec3Df const &p1 = nodes[lines[i][1]]; + Vec3Df lineDir = p1 - p0; + Vec3Df normal = Vec3Df{-lineDir[1], lineDir[0], 0.0f}; + Normalize(normal); + normals[i] = normal; + } + } + + void removeZeroLengthLines() { + std::vector> validLines; + std::vector validNormals; + assert(lines.size() == normals.size()); + validNormals.reserve(normals.size()); + validLines.reserve(lines.size()); + for (size_t i = 0; i < lines.size(); ++i) { + const auto &p0 = nodes[lines[i][0]]; + const auto &p1 = nodes[lines[i][1]]; + if (Norm(p1 - p0) > 1e-6f) { + validLines.push_back(lines[i]); + validNormals.push_back(normals[i]); + } + } + validLines.shrink_to_fit(); + validNormals.shrink_to_fit(); + assert(lines.size() == normals.size()); + lines = std::move(validLines); + normals = std::move(validNormals); + } +}; + +struct TriangleMesh { + TriangleMesh() {} + TriangleMesh(std::vector const &pts, + std::vector> const &tris, float delta) + : nodes(pts), triangles(tris), gridDelta(delta) { + calculateNormals(); + computeBoundingBox(*this); + } + + std::vector nodes; + std::vector> triangles; + std::vector normals; + + Vec3Df minimumExtent; + Vec3Df maximumExtent; + float gridDelta = 0.f; + + void calculateNormals() { + assert(triangles.size() > 0 && "No triangles in mesh."); + normals.clear(); + normals.resize(triangles.size()); +#pragma omp parallel for + for (size_t i = 0; i < triangles.size(); ++i) { + Vec3Df const &p0 = nodes[triangles[i][0]]; + Vec3Df const &p1 = nodes[triangles[i][1]]; + Vec3Df const &p2 = nodes[triangles[i][2]]; + auto normal = CrossProduct(p1 - p0, p2 - p0); + Normalize(normal); + normals[i] = normal; + } + } +}; + +struct DiskMesh { + std::vector nodes; + std::vector normals; + + Vec3Df minimumExtent; + Vec3Df maximumExtent; + float radius = 0.f; + float gridDelta = 0.f; +}; + +TriangleMesh convertLinesToTriangles(const LineMesh &lineMesh) { + TriangleMesh mesh; + mesh.gridDelta = lineMesh.gridDelta; + mesh.minimumExtent = lineMesh.minimumExtent; + mesh.maximumExtent = lineMesh.maximumExtent; + const auto lineWidth = lineMesh.gridDelta; + mesh.minimumExtent[2] -= lineWidth / 2.f; + mesh.maximumExtent[2] += lineWidth / 2.f; + + auto const &points = lineMesh.nodes; + mesh.nodes.reserve(points.size() * 2); + for (size_t i = 0; i < points.size(); ++i) { + mesh.nodes.push_back(Vec3Df{points[i][0], points[i][1], lineWidth / 2.f}); + mesh.nodes.push_back(Vec3Df{points[i][0], points[i][1], -lineWidth / 2.f}); + } + + auto const &lines = lineMesh.lines; + mesh.triangles.reserve(lines.size() * 2); + mesh.normals.reserve(lines.size() * 2); + for (size_t i = 0; i < lines.size(); ++i) { + const unsigned p0 = lines[i][0] * 2; + const unsigned p1 = lines[i][1] * 2; + + // first triangle + Vec3D tri1{p0, p1, static_cast(p0 + 1)}; + auto normal = CrossProduct(mesh.nodes[tri1[1]] - mesh.nodes[tri1[0]], + mesh.nodes[tri1[2]] - mesh.nodes[tri1[0]]); + + if (Norm2(normal) < 1e-6f) + continue; + + mesh.triangles.push_back(tri1); + Normalize(normal); + mesh.normals.push_back(normal); + + // second triangle + Vec3D tri2{static_cast(p0 + 1), p1, + static_cast(p1 + 1)}; + normal = CrossProduct(mesh.nodes[tri2[1]] - mesh.nodes[tri2[0]], + mesh.nodes[tri2[2]] - mesh.nodes[tri2[0]]); + mesh.triangles.push_back(tri2); + Normalize(normal); + mesh.normals.push_back(normal); + } + mesh.triangles.shrink_to_fit(); + mesh.normals.shrink_to_fit(); + + return mesh; +} +} // namespace viennaray diff --git a/include/viennaray/rayTrace.hpp b/include/viennaray/rayTrace.hpp index aed9e95..7bf795a 100644 --- a/include/viennaray/rayTrace.hpp +++ b/include/viennaray/rayTrace.hpp @@ -163,7 +163,8 @@ template class Trace { NumericType gridDelta_ = 0; BoundaryCondition boundaryConditions_[D] = {}; - TraceDirection sourceDirection_ = TraceDirection::POS_Z; + TraceDirection sourceDirection_ = + D == 2 ? TraceDirection::POS_Y : TraceDirection::POS_Z; Vec3D primaryDirection_{NumericType(0), NumericType(0), NumericType(0)}; diff --git a/include/viennaray/rayTraceTriangle.hpp b/include/viennaray/rayTraceTriangle.hpp index 9dff5a1..14aa470 100644 --- a/include/viennaray/rayTraceTriangle.hpp +++ b/include/viennaray/rayTraceTriangle.hpp @@ -27,14 +27,21 @@ class TraceTriangle : public Trace { this->device_, boundingBox, this->boundaryConditions_, traceSettings); std::array, 3> orthonormalBasis; - if (this->usePrimaryDirection_) + if (this->usePrimaryDirection_) { + Logger::getInstance() + .addDebug("ViennaRay: Using custom primary direction") + .print(); orthonormalBasis = rayInternal::getOrthonormalBasis(this->primaryDirection_); - if (!this->useCustomSource) + } + if (!this->useCustomSource) { this->pSource_ = std::make_shared>( boundingBox, this->pParticle_->getSourceDistributionPower(), traceSettings, geometry_.getNumPrimitives(), this->usePrimaryDirection_, orthonormalBasis); + } else { + Logger::getInstance().addDebug("ViennaRay: Using custom source").print(); + } auto localDataLabels = this->pParticle_->getLocalDataLabels(); if (!localDataLabels.empty()) { @@ -63,15 +70,16 @@ class TraceTriangle : public Trace { geometry_.initGeometry(this->device_, points, triangles); } - void setGeometry(std::vector> const &points, - std::vector> const &lines, - const NumericType gridDelta) { + void setGeometry(const TriangleMesh &mesh) { + this->gridDelta_ = mesh.gridDelta; + geometry_.initGeometry(this->device_, mesh); + } + + void setGeometry(const LineMesh &mesh) { assert(D == 2 && "Setting line geometry is only supported in 2D."); - this->gridDelta_ = gridDelta; - auto pointsTriangles = - rayInternal::convertLinesToTriangles(points, lines, gridDelta); - geometry_.initGeometry(this->device_, pointsTriangles.first, - pointsTriangles.second); + this->gridDelta_ = mesh.gridDelta; + auto triMesh = convertLinesToTriangles(mesh); + geometry_.initGeometry(this->device_, triMesh); } /// Set material ID's for each geometry point. diff --git a/include/viennaray/rayUtil.hpp b/include/viennaray/rayUtil.hpp index bc86a3a..3810b11 100644 --- a/include/viennaray/rayUtil.hpp +++ b/include/viennaray/rayUtil.hpp @@ -326,46 +326,6 @@ template return B; } -template -std::pair>, std::vector>> -convertLinesToTriangles(const std::vector> &points, - const std::vector> &lines, - const NumericType lineWidth) { - std::vector> triPoints; - std::vector> triangles; - triPoints.reserve(points.size() * 2); - triangles.reserve(lines.size() * 2); - - for (size_t i = 0; i < points.size(); ++i) { - triPoints.push_back( - Vec3D{static_cast(points[i][0]), - static_cast(points[i][1]), - static_cast(lineWidth / 2.)}); - triPoints.push_back( - Vec3D{static_cast(points[i][0]), - static_cast(points[i][1]), - static_cast(-lineWidth / 2.)}); - } - - for (size_t i = 0; i < lines.size(); ++i) { - const unsigned p0 = lines[i][0] * 2; - const unsigned p1 = lines[i][1] * 2; - - // first triangle - Vec3D tri1{p0, p1, static_cast(p0 + 1)}; - if (Norm2(CrossProduct(triPoints[tri1[1]] - triPoints[tri1[0]], - triPoints[tri1[2]] - triPoints[tri1[0]])) < 1e-6f) - continue; - triangles.push_back(tri1); - // second triangle - triangles.push_back(Vec3D{static_cast(p0 + 1), p1, - static_cast(p1 + 1)}); - } - triangles.shrink_to_fit(); - - return {triPoints, triangles}; -} - /* -------- Create or read simple geometries for testing -------- */ template void createPlaneGrid(const NumericType gridDelta, const NumericType extent, From 28375d4966c679427eee65b5eeb838af0ab02293 Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Fri, 14 Nov 2025 11:58:28 +0100 Subject: [PATCH 06/16] Fix tests and format --- gpu/examples/trenchDisks.cpp | 7 +------ gpu/include/raygDiskGeometry.hpp | 2 +- include/viennaray/rayMesh.hpp | 7 +++++++ include/viennaray/rayParticle.hpp | 2 +- tests/linesToTriangles/linesToTriangles.cpp | 15 ++++++--------- tests/triangleGeometry/CMakeLists.txt | 3 ++- tests/triangleGeometry/triangleGeometry.cpp | 3 ++- 7 files changed, 20 insertions(+), 19 deletions(-) diff --git a/gpu/examples/trenchDisks.cpp b/gpu/examples/trenchDisks.cpp index b16969b..e7f9738 100644 --- a/gpu/examples/trenchDisks.cpp +++ b/gpu/examples/trenchDisks.cpp @@ -20,12 +20,7 @@ int main() { std::vector> normals; rayInternal::readGridFromFile("trenchGrid3D.dat", gridDelta, points, normals); - gpu::DiskMesh mesh; - mesh.nodes = points; - mesh.normals = normals; - mesh.gridDelta = static_cast(gridDelta); - computeBoundingBox(mesh); - + DiskMesh mesh(points, normals, gridDelta); std::vector materialIds(mesh.nodes.size(), 7); for (int i = mesh.nodes.size() / 2; i < mesh.nodes.size(); ++i) { materialIds[i] = 1; diff --git a/gpu/include/raygDiskGeometry.hpp b/gpu/include/raygDiskGeometry.hpp index 5c66bd2..1320e1c 100644 --- a/gpu/include/raygDiskGeometry.hpp +++ b/gpu/include/raygDiskGeometry.hpp @@ -3,9 +3,9 @@ #include #include +#include "rayMesh.hpp" #include "rayUtil.hpp" #include "raygLaunchParams.hpp" -#include "raygMesh.hpp" namespace viennaray::gpu { diff --git a/include/viennaray/rayMesh.hpp b/include/viennaray/rayMesh.hpp index 4c718e5..bddf6a5 100644 --- a/include/viennaray/rayMesh.hpp +++ b/include/viennaray/rayMesh.hpp @@ -114,6 +114,13 @@ struct TriangleMesh { }; struct DiskMesh { + DiskMesh() {} + DiskMesh(const std::vector &pts, const std::vector &nms, + float delta) + : nodes(pts), normals(nms), gridDelta(delta) { + computeBoundingBox(*this); + } + std::vector nodes; std::vector normals; diff --git a/include/viennaray/rayParticle.hpp b/include/viennaray/rayParticle.hpp index bb8c3d6..ce09021 100644 --- a/include/viennaray/rayParticle.hpp +++ b/include/viennaray/rayParticle.hpp @@ -11,7 +11,7 @@ #define VIENNARAY_PARTICLE_STOP \ std::pair> { \ - 1., Vec3D{0., 0., 0.} \ + 1., Vec3D { 0., 0., 0. } \ } namespace viennaray { diff --git a/tests/linesToTriangles/linesToTriangles.cpp b/tests/linesToTriangles/linesToTriangles.cpp index eacc5ba..12dd03a 100644 --- a/tests/linesToTriangles/linesToTriangles.cpp +++ b/tests/linesToTriangles/linesToTriangles.cpp @@ -1,3 +1,4 @@ +#include #include #include @@ -13,13 +14,9 @@ int main() { float gridDelta; rayInternal::readMeshFromFile("lineMesh.dat", gridDelta, points, lines); - - auto pointsTriangles = - rayInternal::convertLinesToTriangles(points, lines, gridDelta); - // std::vector flux(pointsTriangles.second.size(), 1.0f); - // rayInternal::writeVTP("linesToTriangles.vtp", - // pointsTriangles.first, - // pointsTriangles.second, flux); - - VC_TEST_ASSERT(pointsTriangles.first.size() == points.size() * 2); + LineMesh lineMesh(points, lines, gridDelta); + auto triMesh = convertLinesToTriangles(lineMesh); + std::vector flux(triMesh.triangles.size(), 1.0f); + rayInternal::writeVTP("linesToTriangles.vtp", triMesh.nodes, + triMesh.triangles, flux); } \ No newline at end of file diff --git a/tests/triangleGeometry/CMakeLists.txt b/tests/triangleGeometry/CMakeLists.txt index efb28d0..22d5a24 100644 --- a/tests/triangleGeometry/CMakeLists.txt +++ b/tests/triangleGeometry/CMakeLists.txt @@ -2,7 +2,8 @@ project(triangleGeometry LANGUAGES CXX) add_executable(${PROJECT_NAME} "${PROJECT_NAME}.cpp") target_link_libraries(${PROJECT_NAME} PRIVATE ViennaRay) +configure_file(${CMAKE_SOURCE_DIR}/examples/triangle3D/trenchMesh.dat + ${CMAKE_CURRENT_BINARY_DIR}/trenchMesh.dat COPYONLY) add_dependencies(ViennaRay_Tests ${PROJECT_NAME}) add_test(NAME ${PROJECT_NAME} COMMAND $) -configure_file(trenchMesh.dat ${CMAKE_CURRENT_BINARY_DIR}/trenchMesh.dat COPYONLY) diff --git a/tests/triangleGeometry/triangleGeometry.cpp b/tests/triangleGeometry/triangleGeometry.cpp index 6a50f95..e4b8a55 100644 --- a/tests/triangleGeometry/triangleGeometry.cpp +++ b/tests/triangleGeometry/triangleGeometry.cpp @@ -11,7 +11,8 @@ int main() { std::vector> points; std::vector> triangles; NumericType gridDelta; - rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, points, triangles); + rayInternal::readMeshFromFile("trenchMesh.dat", gridDelta, + points, triangles); std::vector materialIds(triangles.size(), 7); auto device = rtcNewDevice(""); From 1f6afcbc0f69debd1bc51b7b812c42299eefcddc Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Fri, 14 Nov 2025 15:23:30 +0100 Subject: [PATCH 07/16] Fix numeric conversion issue --- include/viennaray/rayGeometryTriangle.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/viennaray/rayGeometryTriangle.hpp b/include/viennaray/rayGeometryTriangle.hpp index 63b6006..911cc5d 100644 --- a/include/viennaray/rayGeometryTriangle.hpp +++ b/include/viennaray/rayGeometryTriangle.hpp @@ -31,8 +31,10 @@ class GeometryTriangle : public Geometry { assert(rtcGetDeviceError(device) == RTC_ERROR_NONE && "RTC Error: rtcSetNewGeometryBuffer points"); - this->minCoords_ = mesh.minimumExtent; - this->maxCoords_ = mesh.maximumExtent; + for (int i = 0; i < D; i++) { + this->minCoords_[i] = static_cast(mesh.minimumExtent[i]); + this->maxCoords_[i] = static_cast(mesh.maximumExtent[i]); + } for (size_t i = 0; i < mesh.nodes.size(); ++i) { pPointBuffer_[i].xx = mesh.nodes[i][0]; From a878566c13804c36b8e7d098ead2b89b0a174b9d Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Fri, 14 Nov 2025 17:06:06 +0100 Subject: [PATCH 08/16] Remove conversion triangle size check --- include/viennaray/rayMesh.hpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/include/viennaray/rayMesh.hpp b/include/viennaray/rayMesh.hpp index bddf6a5..26ebe40 100644 --- a/include/viennaray/rayMesh.hpp +++ b/include/viennaray/rayMesh.hpp @@ -157,10 +157,6 @@ TriangleMesh convertLinesToTriangles(const LineMesh &lineMesh) { Vec3D tri1{p0, p1, static_cast(p0 + 1)}; auto normal = CrossProduct(mesh.nodes[tri1[1]] - mesh.nodes[tri1[0]], mesh.nodes[tri1[2]] - mesh.nodes[tri1[0]]); - - if (Norm2(normal) < 1e-6f) - continue; - mesh.triangles.push_back(tri1); Normalize(normal); mesh.normals.push_back(normal); From 558df47c6bd0f8f0bd3271ffb982fa1b50de5203 Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Sun, 16 Nov 2025 19:32:50 +0100 Subject: [PATCH 09/16] Add ignore boundary option for triange GPU tracer --- gpu/include/raygRNG.hpp | 2 +- gpu/include/raygTrace.hpp | 6 +- gpu/include/raygTraceDisk.hpp | 8 ++- gpu/include/raygTraceLine.hpp | 7 +- gpu/include/raygTraceTriangle.hpp | 32 +++++---- gpu/include/raygTriangleGeometry.hpp | 98 +++++++++++++++------------- include/viennaray/rayUtil.hpp | 1 - 7 files changed, 84 insertions(+), 70 deletions(-) diff --git a/gpu/include/raygRNG.hpp b/gpu/include/raygRNG.hpp index e4abd75..5c28637 100644 --- a/gpu/include/raygRNG.hpp +++ b/gpu/include/raygRNG.hpp @@ -29,7 +29,7 @@ static __device__ __inline__ unsigned int tea(unsigned int v0, } __device__ __inline__ float getNextRand(RNGState *state) { - return (float)(curand_uniform(state)); + return curand_uniform(state); } __device__ __inline__ float getNormalDistRand(RNGState *state) { diff --git a/gpu/include/raygTrace.hpp b/gpu/include/raygTrace.hpp index 6ae46de..58f30b7 100644 --- a/gpu/include/raygTrace.hpp +++ b/gpu/include/raygTrace.hpp @@ -333,6 +333,8 @@ template class Trace { launchParams.periodicBoundary = periodic; } + void setIgnoreBoundary(const bool ignore) { ignoreBoundary = ignore; } + void freeBuffers() { resultBuffer.free(); hitgroupRecordBuffer.free(); @@ -347,7 +349,6 @@ template class Trace { for (auto &buffer : materialStickingBuffer_) { buffer.free(); } - areaBuffer_.free(); } unsigned int prepareParticlePrograms() { @@ -675,8 +676,6 @@ template class Trace { float gridDelta_ = 0.0f; - CudaBuffer areaBuffer_; - // particles unsigned int numFluxes_ = 0; std::vector> particles_; @@ -714,6 +713,7 @@ template class Trace { std::vector results; rayInternal::KernelConfig config_; + bool ignoreBoundary = false; size_t numRays; unsigned numCellData = 0; diff --git a/gpu/include/raygTraceDisk.hpp b/gpu/include/raygTraceDisk.hpp index e6aa6ad..2283932 100644 --- a/gpu/include/raygTraceDisk.hpp +++ b/gpu/include/raygTraceDisk.hpp @@ -160,15 +160,17 @@ template class TraceDisk : public Trace { } } } - this->areaBuffer_.allocUpload(areas); - CUdeviceptr d_areas = this->areaBuffer_.dPointer(); + + CudaBuffer areaBuffer; + areaBuffer.allocUpload(areas); + CUdeviceptr d_areas = areaBuffer.dPointer(); void *kernel_args[] = { &d_data, &d_areas, &launchParams.numElements, &sourceArea, &this->numRays, &this->numFluxes_}; LaunchKernel::launch(this->normModuleName, this->normKernelName, kernel_args, *context_); - this->areaBuffer_.free(); + areaBuffer.free(); } void buildHitGroups() override { diff --git a/gpu/include/raygTraceLine.hpp b/gpu/include/raygTraceLine.hpp index b9c6322..6c92386 100644 --- a/gpu/include/raygTraceLine.hpp +++ b/gpu/include/raygTraceLine.hpp @@ -45,8 +45,9 @@ template class TraceLine : public Trace { areas[idx] = Norm(p1 - p0); } - this->areaBuffer_.allocUpload(areas); - CUdeviceptr d_areas = this->areaBuffer_.dPointer(); + CudaBuffer areaBuffer; + areaBuffer.allocUpload(areas); + CUdeviceptr d_areas = areaBuffer.dPointer(); CUdeviceptr d_data = resultBuffer.dPointer(); void *kernel_args[] = { @@ -54,7 +55,7 @@ template class TraceLine : public Trace { &sourceArea, &this->numRays, &this->numFluxes_}; LaunchKernel::launch(this->normModuleName, this->normKernelName, kernel_args, *context_); - this->areaBuffer_.free(); + areaBuffer.free(); } void buildHitGroups() override { diff --git a/gpu/include/raygTraceTriangle.hpp b/gpu/include/raygTraceTriangle.hpp index 6cf42cb..9edf8f9 100644 --- a/gpu/include/raygTraceTriangle.hpp +++ b/gpu/include/raygTraceTriangle.hpp @@ -24,14 +24,16 @@ template class TraceTriangle : public Trace { ~TraceTriangle() { triangleGeometry.freeBuffers(); } - void setGeometry(const TriangleMesh &passedMesh) { + void setGeometry(const TriangleMesh &passedMesh, + const float sourceOffset = 0.f) { assert(context_); assert(passedMesh.triangles.size() > 0 && "Triangle mesh has no triangles."); assert(passedMesh.nodes.size() > 0 && "Triangle mesh has no vertices."); this->gridDelta_ = static_cast(passedMesh.gridDelta); - triangleGeometry.buildAccel(*context_, passedMesh, launchParams); + triangleGeometry.buildAccel(*context_, passedMesh, launchParams, + this->ignoreBoundary, sourceOffset); if constexpr (D == 2) { triangleMesh = passedMesh; @@ -85,23 +87,25 @@ template class TraceTriangle : public Trace { hitgroupRecords.push_back(geometryHitgroupRecord); // boundary hitgroup - HitgroupRecordTriangle boundaryHitgroupRecord = {}; - optixSbtRecordPackHeader(hitgroupPG, &boundaryHitgroupRecord); - boundaryHitgroupRecord.data.vertex = - (Vec3Df *)triangleGeometry.boundaryVertexBuffer.dPointer(); - boundaryHitgroupRecord.data.index = - (Vec3D *)triangleGeometry.boundaryIndexBuffer.dPointer(); - boundaryHitgroupRecord.data.base.geometryType = 0; - boundaryHitgroupRecord.data.base.isBoundary = true; - - // add boundary hitgroup record - hitgroupRecords.push_back(boundaryHitgroupRecord); + if (!this->ignoreBoundary) { + HitgroupRecordTriangle boundaryHitgroupRecord = {}; + optixSbtRecordPackHeader(hitgroupPG, &boundaryHitgroupRecord); + boundaryHitgroupRecord.data.vertex = + (Vec3Df *)triangleGeometry.boundaryVertexBuffer.dPointer(); + boundaryHitgroupRecord.data.index = + (Vec3D *)triangleGeometry.boundaryIndexBuffer.dPointer(); + boundaryHitgroupRecord.data.base.geometryType = 0; + boundaryHitgroupRecord.data.base.isBoundary = true; + + // add boundary hitgroup record + hitgroupRecords.push_back(boundaryHitgroupRecord); + } // upload hitgroup records hitgroupRecordBuffer.allocUpload(hitgroupRecords); sbt.hitgroupRecordBase = hitgroupRecordBuffer.dPointer(); sbt.hitgroupRecordStrideInBytes = sizeof(HitgroupRecordTriangle); - sbt.hitgroupRecordCount = 2; + sbt.hitgroupRecordCount = this->ignoreBoundary ? 1 : 2; } TriangleMesh triangleMesh; diff --git a/gpu/include/raygTriangleGeometry.hpp b/gpu/include/raygTriangleGeometry.hpp index 9effcb3..564edcc 100644 --- a/gpu/include/raygTriangleGeometry.hpp +++ b/gpu/include/raygTriangleGeometry.hpp @@ -26,7 +26,8 @@ struct TriangleGeometry { /// build acceleration structure from triangle mesh template void buildAccel(DeviceContext &context, const TriangleMesh &mesh, - LaunchParams &launchParams) { + LaunchParams &launchParams, const bool ignoreBoundary, + const float sourceOffset = 0.f) { assert(context.deviceID != -1 && "Context not initialized."); if constexpr (D == 2) { @@ -34,13 +35,15 @@ struct TriangleGeometry { launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; launchParams.source.minPoint[1] = 0.f; launchParams.source.maxPoint[1] = 0.f; - launchParams.source.planeHeight = mesh.maximumExtent[1] + mesh.gridDelta; + launchParams.source.planeHeight = + mesh.maximumExtent[1] + mesh.gridDelta + sourceOffset; } else { - launchParams.source.minPoint[1] = mesh.minimumExtent[1]; - launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; launchParams.source.minPoint[0] = mesh.minimumExtent[0]; + launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; + launchParams.source.minPoint[1] = mesh.minimumExtent[1]; launchParams.source.maxPoint[1] = mesh.maximumExtent[1]; - launchParams.source.planeHeight = mesh.maximumExtent[2] + mesh.gridDelta; + launchParams.source.planeHeight = + mesh.maximumExtent[2] + mesh.gridDelta + sourceOffset; } launchParams.numElements = mesh.triangles.size(); launchParams.D = D; @@ -87,40 +90,46 @@ struct TriangleGeometry { triangleInput[0].triangleArray.sbtIndexOffsetStrideInBytes = 0; // ------------------------- boundary input ------------------------- - auto boundaryMesh = makeBoundary(mesh); - // upload the model to the device: the builder - boundaryVertexBuffer.allocUpload(boundaryMesh.nodes); - boundaryIndexBuffer.allocUpload(boundaryMesh.triangles); - - // triangle inputs - triangleInput[1] = {}; - triangleInput[1].type = OPTIX_BUILD_INPUT_TYPE_TRIANGLES; - - // create local variables, because we need a *pointer* to the - // device pointers - CUdeviceptr d_boundVertices = boundaryVertexBuffer.dPointer(); - CUdeviceptr d_boundIndices = boundaryIndexBuffer.dPointer(); - - triangleInput[1].triangleArray.vertexFormat = OPTIX_VERTEX_FORMAT_FLOAT3; - triangleInput[1].triangleArray.vertexStrideInBytes = sizeof(Vec3Df); - triangleInput[1].triangleArray.numVertices = (int)boundaryMesh.nodes.size(); - triangleInput[1].triangleArray.vertexBuffers = &d_boundVertices; - - triangleInput[1].triangleArray.indexFormat = - OPTIX_INDICES_FORMAT_UNSIGNED_INT3; - triangleInput[1].triangleArray.indexStrideInBytes = sizeof(Vec3D); - triangleInput[1].triangleArray.numIndexTriplets = - (int)boundaryMesh.triangles.size(); - triangleInput[1].triangleArray.indexBuffer = d_boundIndices; - - // one SBT entry, and no per-primitive materials: - triangleInputFlags[1] = 0; - triangleInput[1].triangleArray.flags = &triangleInputFlags[1]; - triangleInput[1].triangleArray.numSbtRecords = 1; - triangleInput[1].triangleArray.sbtIndexOffsetBuffer = 0; - triangleInput[1].triangleArray.sbtIndexOffsetSizeInBytes = 0; - triangleInput[1].triangleArray.sbtIndexOffsetStrideInBytes = 0; - // ------------------------------------------------------ + unsigned int numBuildInputs = 1; + if (ignoreBoundary) { + numBuildInputs = 2; + auto boundaryMesh = makeBoundary(mesh); + // upload the model to the device: the builder + boundaryVertexBuffer.allocUpload(boundaryMesh.nodes); + boundaryIndexBuffer.allocUpload(boundaryMesh.triangles); + + // triangle inputs + triangleInput[1] = {}; + triangleInput[1].type = OPTIX_BUILD_INPUT_TYPE_TRIANGLES; + + // create local variables, because we need a *pointer* to the + // device pointers + CUdeviceptr d_boundVertices = boundaryVertexBuffer.dPointer(); + CUdeviceptr d_boundIndices = boundaryIndexBuffer.dPointer(); + + triangleInput[1].triangleArray.vertexFormat = OPTIX_VERTEX_FORMAT_FLOAT3; + triangleInput[1].triangleArray.vertexStrideInBytes = sizeof(Vec3Df); + triangleInput[1].triangleArray.numVertices = + (int)boundaryMesh.nodes.size(); + triangleInput[1].triangleArray.vertexBuffers = &d_boundVertices; + + triangleInput[1].triangleArray.indexFormat = + OPTIX_INDICES_FORMAT_UNSIGNED_INT3; + triangleInput[1].triangleArray.indexStrideInBytes = + sizeof(Vec3D); + triangleInput[1].triangleArray.numIndexTriplets = + (int)boundaryMesh.triangles.size(); + triangleInput[1].triangleArray.indexBuffer = d_boundIndices; + + // one SBT entry, and no per-primitive materials: + triangleInputFlags[1] = 0; + triangleInput[1].triangleArray.flags = &triangleInputFlags[1]; + triangleInput[1].triangleArray.numSbtRecords = 1; + triangleInput[1].triangleArray.sbtIndexOffsetBuffer = 0; + triangleInput[1].triangleArray.sbtIndexOffsetSizeInBytes = 0; + triangleInput[1].triangleArray.sbtIndexOffsetStrideInBytes = 0; + // ------------------------------------------------------ + } OptixTraversableHandle asHandle{0}; @@ -133,8 +142,7 @@ struct TriangleGeometry { OptixAccelBufferSizes blasBufferSizes; optixAccelComputeMemoryUsage(context.optix, &accelOptions, - triangleInput.data(), - 2, // num_build_inputs + triangleInput.data(), numBuildInputs, &blasBufferSizes); // prepare compaction @@ -152,10 +160,10 @@ struct TriangleGeometry { CudaBuffer outputBuffer; outputBuffer.alloc(blasBufferSizes.outputSizeInBytes); - optixAccelBuild(context.optix, 0, &accelOptions, triangleInput.data(), 2, - tempBuffer.dPointer(), tempBuffer.sizeInBytes, - outputBuffer.dPointer(), outputBuffer.sizeInBytes, - &asHandle, &emitDesc, 1); + optixAccelBuild(context.optix, 0, &accelOptions, triangleInput.data(), + numBuildInputs, tempBuffer.dPointer(), + tempBuffer.sizeInBytes, outputBuffer.dPointer(), + outputBuffer.sizeInBytes, &asHandle, &emitDesc, 1); cudaDeviceSynchronize(); // perform compaction diff --git a/include/viennaray/rayUtil.hpp b/include/viennaray/rayUtil.hpp index 3810b11..a4defcd 100644 --- a/include/viennaray/rayUtil.hpp +++ b/include/viennaray/rayUtil.hpp @@ -87,7 +87,6 @@ struct KernelConfig { unsigned rngSeed = 0; bool useRandomSeed = true; - bool calcFlux = true; bool printProgress = false; unsigned runNumber = 1; From 57ace9882e09dea1f7b7f564fe0be1607c1edbfe Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Sun, 16 Nov 2025 20:27:00 +0100 Subject: [PATCH 10/16] Add ignore boundary options to all GPU tracers --- gpu/include/raygDiskGeometry.hpp | 14 ++--- gpu/include/raygLineGeometry.hpp | 29 +++++----- gpu/include/raygTraceDisk.hpp | 27 +++++---- gpu/include/raygTraceLine.hpp | 30 +++++----- gpu/include/raygTraceTriangle.hpp | 1 + gpu/include/raygTriangleGeometry.hpp | 83 ++++++++++++++-------------- 6 files changed, 92 insertions(+), 92 deletions(-) diff --git a/gpu/include/raygDiskGeometry.hpp b/gpu/include/raygDiskGeometry.hpp index 1320e1c..46a7bb6 100644 --- a/gpu/include/raygDiskGeometry.hpp +++ b/gpu/include/raygDiskGeometry.hpp @@ -27,7 +27,7 @@ template struct DiskGeometry { /// build acceleration structure from triangle mesh void buildAccel(DeviceContext &context, const DiskMesh &mesh, - LaunchParams &launchParams) { + LaunchParams &launchParams, const bool ignoreBoundary) { assert(context.deviceID != -1 && "Context not initialized."); if constexpr (D == 2) { @@ -147,6 +147,7 @@ template struct DiskGeometry { diskInput[1].customPrimitiveArray.sbtIndexOffsetStrideInBytes = 0; // ------------------------------------------------------ + unsigned int numBuildInputs = ignoreBoundary ? 1 : 2; OptixTraversableHandle asHandle{0}; // BLAS setup @@ -158,8 +159,7 @@ template struct DiskGeometry { OptixAccelBufferSizes blasBufferSizes; optixAccelComputeMemoryUsage(context.optix, &accelOptions, diskInput.data(), - 2, // num_build_inputs - &blasBufferSizes); + numBuildInputs, &blasBufferSizes); // prepare compaction CudaBuffer compactedSizeBuffer; @@ -176,10 +176,10 @@ template struct DiskGeometry { CudaBuffer outputBuffer; outputBuffer.alloc(blasBufferSizes.outputSizeInBytes); - optixAccelBuild(context.optix, 0, &accelOptions, diskInput.data(), 2, - tempBuffer.dPointer(), tempBuffer.sizeInBytes, - outputBuffer.dPointer(), outputBuffer.sizeInBytes, - &asHandle, &emitDesc, 1); + optixAccelBuild(context.optix, 0, &accelOptions, diskInput.data(), + numBuildInputs, tempBuffer.dPointer(), + tempBuffer.sizeInBytes, outputBuffer.dPointer(), + outputBuffer.sizeInBytes, &asHandle, &emitDesc, 1); cudaDeviceSynchronize(); // perform compaction diff --git a/gpu/include/raygLineGeometry.hpp b/gpu/include/raygLineGeometry.hpp index ac67ed0..002bd7d 100644 --- a/gpu/include/raygLineGeometry.hpp +++ b/gpu/include/raygLineGeometry.hpp @@ -11,7 +11,7 @@ namespace viennaray::gpu { using namespace viennacore; -template struct LineGeometry { +struct LineGeometry { // geometry CudaBuffer geometryNodesBuffer; CudaBuffer geometryLinesBuffer; @@ -26,15 +26,15 @@ template struct LineGeometry { /// build acceleration structure from triangle mesh void buildAccel(DeviceContext &context, const LineMesh &mesh, - LaunchParams &launchParams) { + LaunchParams &launchParams, const bool ignoreBoundary, + const float sourceOffset = 0.f) { assert(context.deviceID != -1 && "Context not initialized."); assert(mesh.gridDelta > 0.f && "Grid delta must be positive."); - assert(D == 2 && "Only 2D line geometry is supported."); launchParams.source.minPoint[0] = mesh.minimumExtent[0]; launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; launchParams.source.planeHeight = - mesh.maximumExtent[1] + 2 * mesh.gridDelta; + mesh.maximumExtent[1] + mesh.gridDelta + sourceOffset; launchParams.numElements = mesh.lines.size(); // 2 inputs: one for the geometry, one for the boundary @@ -84,17 +84,15 @@ template struct LineGeometry { lineInput[0].customPrimitiveArray.sbtIndexOffsetSizeInBytes = 0; lineInput[0].customPrimitiveArray.sbtIndexOffsetStrideInBytes = 0; + unsigned int numBuildInputs = ignoreBoundary ? 1 : 2; + // ------------------------- boundary input ------------------------- auto boundaryMesh = makeBoundary(mesh); + // upload the model to the device: the builder boundaryNodesBuffer.allocUpload(boundaryMesh.nodes); boundaryLinesBuffer.allocUpload(boundaryMesh.lines); - // create local variables, because we need a *pointer* to the - // device pointers - CUdeviceptr d_boundNodes = boundaryNodesBuffer.dPointer(); - CUdeviceptr d_boundLines = boundaryLinesBuffer.dPointer(); - // AABB build input for boundary lines std::vector aabbBoundary(boundaryMesh.lines.size()); for (size_t i = 0; i < boundaryMesh.lines.size(); ++i) { @@ -137,8 +135,7 @@ template struct LineGeometry { OptixAccelBufferSizes blasBufferSizes; optixAccelComputeMemoryUsage(context.optix, &accelOptions, lineInput.data(), - 2, // num_build_inputs - &blasBufferSizes); + numBuildInputs, &blasBufferSizes); // prepare compaction CudaBuffer compactedSizeBuffer; @@ -155,10 +152,10 @@ template struct LineGeometry { CudaBuffer outputBuffer; outputBuffer.alloc(blasBufferSizes.outputSizeInBytes); - optixAccelBuild(context.optix, 0, &accelOptions, lineInput.data(), 2, - tempBuffer.dPointer(), tempBuffer.sizeInBytes, - outputBuffer.dPointer(), outputBuffer.sizeInBytes, - &asHandle, &emitDesc, 1); + optixAccelBuild(context.optix, 0, &accelOptions, lineInput.data(), + numBuildInputs, tempBuffer.dPointer(), + tempBuffer.sizeInBytes, outputBuffer.dPointer(), + outputBuffer.sizeInBytes, &asHandle, &emitDesc, 1); cudaDeviceSynchronize(); // perform compaction @@ -184,7 +181,7 @@ template struct LineGeometry { const Vec3Df &bbMin = passedMesh.minimumExtent; Vec3Df bbMax = passedMesh.maximumExtent; // adjust bounding box to include source plane - bbMax[1] += 2 * passedMesh.gridDelta; + bbMax[1] += passedMesh.gridDelta; // one vertex in each corner of the bounding box // y diff --git a/gpu/include/raygTraceDisk.hpp b/gpu/include/raygTraceDisk.hpp index 2283932..03acce2 100644 --- a/gpu/include/raygTraceDisk.hpp +++ b/gpu/include/raygTraceDisk.hpp @@ -42,7 +42,8 @@ template class TraceDisk : public Trace { pointNeighborhood_.template init<3>(diskMesh.nodes, 2 * diskMesh.radius, diskMesh.minimumExtent, diskMesh.maximumExtent); - diskGeometry.buildAccel(*context_, diskMesh, launchParams); + diskGeometry.buildAccel(*context_, diskMesh, launchParams, + this->ignoreBoundary); } void smoothFlux(std::vector &flux, int smoothingNeighbors) override { @@ -190,21 +191,23 @@ template class TraceDisk : public Trace { hitgroupRecords.push_back(geometryHitgroupRecord); // boundary hitgroup - HitgroupRecordDisk boundaryHitgroupRecord = {}; - optixSbtRecordPackHeader(hitgroupPG, &boundaryHitgroupRecord); - boundaryHitgroupRecord.data.point = - (Vec3Df *)diskGeometry.boundaryPointBuffer.dPointer(); - boundaryHitgroupRecord.data.base.normal = - (Vec3Df *)diskGeometry.boundaryNormalBuffer.dPointer(); - boundaryHitgroupRecord.data.radius = diskGeometry.boundaryRadius; - boundaryHitgroupRecord.data.base.geometryType = 1; - boundaryHitgroupRecord.data.base.isBoundary = true; - hitgroupRecords.push_back(boundaryHitgroupRecord); + if (!this->ignoreBoundary) { + HitgroupRecordDisk boundaryHitgroupRecord = {}; + optixSbtRecordPackHeader(hitgroupPG, &boundaryHitgroupRecord); + boundaryHitgroupRecord.data.point = + (Vec3Df *)diskGeometry.boundaryPointBuffer.dPointer(); + boundaryHitgroupRecord.data.base.normal = + (Vec3Df *)diskGeometry.boundaryNormalBuffer.dPointer(); + boundaryHitgroupRecord.data.radius = diskGeometry.boundaryRadius; + boundaryHitgroupRecord.data.base.geometryType = 1; + boundaryHitgroupRecord.data.base.isBoundary = true; + hitgroupRecords.push_back(boundaryHitgroupRecord); + } hitgroupRecordBuffer.allocUpload(hitgroupRecords); sbt.hitgroupRecordBase = hitgroupRecordBuffer.dPointer(); sbt.hitgroupRecordStrideInBytes = sizeof(HitgroupRecordDisk); - sbt.hitgroupRecordCount = 2; + sbt.hitgroupRecordCount = this->ignoreBoundary ? 1 : 2; } DiskMesh diskMesh; diff --git a/gpu/include/raygTraceLine.hpp b/gpu/include/raygTraceLine.hpp index 6c92386..9e4b3b1 100644 --- a/gpu/include/raygTraceLine.hpp +++ b/gpu/include/raygTraceLine.hpp @@ -17,11 +17,12 @@ template class TraceLine : public Trace { ~TraceLine() { lineGeometry.freeBuffers(); } - void setGeometry(const LineMesh &passedMesh) { + void setGeometry(const LineMesh &passedMesh, const float sourceOffset = 0.f) { this->gridDelta_ = static_cast(passedMesh.gridDelta); lineMesh = passedMesh; launchParams.D = D; - lineGeometry.buildAccel(*context_, lineMesh, launchParams); + lineGeometry.buildAccel(*context_, lineMesh, launchParams, + this->ignoreBoundary, sourceOffset); } void smoothFlux(std::vector &flux, int numNeighbors) override { @@ -77,28 +78,29 @@ template class TraceLine : public Trace { hitgroupRecords.push_back(geometryHitgroupRecord); // boundary hitgroup - HitgroupRecordLine boundaryHitgroupRecord = {}; - optixSbtRecordPackHeader(hitgroupPG, &boundaryHitgroupRecord); - boundaryHitgroupRecord.data.nodes = - (Vec3Df *)lineGeometry.boundaryNodesBuffer.dPointer(); - boundaryHitgroupRecord.data.lines = - (Vec2D *)lineGeometry.boundaryLinesBuffer.dPointer(); - boundaryHitgroupRecord.data.base.geometryType = 2; - boundaryHitgroupRecord.data.base.isBoundary = true; - hitgroupRecords.push_back(boundaryHitgroupRecord); + if (!this->ignoreBoundary) { + HitgroupRecordLine boundaryHitgroupRecord = {}; + optixSbtRecordPackHeader(hitgroupPG, &boundaryHitgroupRecord); + boundaryHitgroupRecord.data.nodes = + (Vec3Df *)lineGeometry.boundaryNodesBuffer.dPointer(); + boundaryHitgroupRecord.data.lines = + (Vec2D *)lineGeometry.boundaryLinesBuffer.dPointer(); + boundaryHitgroupRecord.data.base.geometryType = 2; + boundaryHitgroupRecord.data.base.isBoundary = true; + hitgroupRecords.push_back(boundaryHitgroupRecord); + } hitgroupRecordBuffer.allocUpload(hitgroupRecords); sbt.hitgroupRecordBase = hitgroupRecordBuffer.dPointer(); sbt.hitgroupRecordStrideInBytes = sizeof(HitgroupRecordLine); - sbt.hitgroupRecordCount = 2; + sbt.hitgroupRecordCount = this->ignoreBoundary ? 1 : 2; } private: LineMesh lineMesh; - LineGeometry lineGeometry; + LineGeometry lineGeometry; using Trace::context_; - using Trace::geometryType_; using Trace::launchParams; using Trace::resultBuffer; diff --git a/gpu/include/raygTraceTriangle.hpp b/gpu/include/raygTraceTriangle.hpp index 9edf8f9..7416708 100644 --- a/gpu/include/raygTraceTriangle.hpp +++ b/gpu/include/raygTraceTriangle.hpp @@ -108,6 +108,7 @@ template class TraceTriangle : public Trace { sbt.hitgroupRecordCount = this->ignoreBoundary ? 1 : 2; } +private: TriangleMesh triangleMesh; TriangleGeometry triangleGeometry; diff --git a/gpu/include/raygTriangleGeometry.hpp b/gpu/include/raygTriangleGeometry.hpp index 564edcc..8cc4a2a 100644 --- a/gpu/include/raygTriangleGeometry.hpp +++ b/gpu/include/raygTriangleGeometry.hpp @@ -89,47 +89,43 @@ struct TriangleGeometry { triangleInput[0].triangleArray.sbtIndexOffsetSizeInBytes = 0; triangleInput[0].triangleArray.sbtIndexOffsetStrideInBytes = 0; + unsigned int numBuildInputs = ignoreBoundary ? 1 : 2; + // ------------------------- boundary input ------------------------- - unsigned int numBuildInputs = 1; - if (ignoreBoundary) { - numBuildInputs = 2; - auto boundaryMesh = makeBoundary(mesh); - // upload the model to the device: the builder - boundaryVertexBuffer.allocUpload(boundaryMesh.nodes); - boundaryIndexBuffer.allocUpload(boundaryMesh.triangles); - - // triangle inputs - triangleInput[1] = {}; - triangleInput[1].type = OPTIX_BUILD_INPUT_TYPE_TRIANGLES; - - // create local variables, because we need a *pointer* to the - // device pointers - CUdeviceptr d_boundVertices = boundaryVertexBuffer.dPointer(); - CUdeviceptr d_boundIndices = boundaryIndexBuffer.dPointer(); - - triangleInput[1].triangleArray.vertexFormat = OPTIX_VERTEX_FORMAT_FLOAT3; - triangleInput[1].triangleArray.vertexStrideInBytes = sizeof(Vec3Df); - triangleInput[1].triangleArray.numVertices = - (int)boundaryMesh.nodes.size(); - triangleInput[1].triangleArray.vertexBuffers = &d_boundVertices; - - triangleInput[1].triangleArray.indexFormat = - OPTIX_INDICES_FORMAT_UNSIGNED_INT3; - triangleInput[1].triangleArray.indexStrideInBytes = - sizeof(Vec3D); - triangleInput[1].triangleArray.numIndexTriplets = - (int)boundaryMesh.triangles.size(); - triangleInput[1].triangleArray.indexBuffer = d_boundIndices; - - // one SBT entry, and no per-primitive materials: - triangleInputFlags[1] = 0; - triangleInput[1].triangleArray.flags = &triangleInputFlags[1]; - triangleInput[1].triangleArray.numSbtRecords = 1; - triangleInput[1].triangleArray.sbtIndexOffsetBuffer = 0; - triangleInput[1].triangleArray.sbtIndexOffsetSizeInBytes = 0; - triangleInput[1].triangleArray.sbtIndexOffsetStrideInBytes = 0; - // ------------------------------------------------------ - } + auto boundaryMesh = makeBoundary(mesh, sourceOffset); + // upload the model to the device: the builder + boundaryVertexBuffer.allocUpload(boundaryMesh.nodes); + boundaryIndexBuffer.allocUpload(boundaryMesh.triangles); + + // triangle inputs + triangleInput[1] = {}; + triangleInput[1].type = OPTIX_BUILD_INPUT_TYPE_TRIANGLES; + + // create local variables, because we need a *pointer* to the + // device pointers + CUdeviceptr d_boundVertices = boundaryVertexBuffer.dPointer(); + CUdeviceptr d_boundIndices = boundaryIndexBuffer.dPointer(); + + triangleInput[1].triangleArray.vertexFormat = OPTIX_VERTEX_FORMAT_FLOAT3; + triangleInput[1].triangleArray.vertexStrideInBytes = sizeof(Vec3Df); + triangleInput[1].triangleArray.numVertices = (int)boundaryMesh.nodes.size(); + triangleInput[1].triangleArray.vertexBuffers = &d_boundVertices; + + triangleInput[1].triangleArray.indexFormat = + OPTIX_INDICES_FORMAT_UNSIGNED_INT3; + triangleInput[1].triangleArray.indexStrideInBytes = sizeof(Vec3D); + triangleInput[1].triangleArray.numIndexTriplets = + (int)boundaryMesh.triangles.size(); + triangleInput[1].triangleArray.indexBuffer = d_boundIndices; + + // one SBT entry, and no per-primitive materials: + triangleInputFlags[1] = 0; + triangleInput[1].triangleArray.flags = &triangleInputFlags[1]; + triangleInput[1].triangleArray.numSbtRecords = 1; + triangleInput[1].triangleArray.sbtIndexOffsetBuffer = 0; + triangleInput[1].triangleArray.sbtIndexOffsetSizeInBytes = 0; + triangleInput[1].triangleArray.sbtIndexOffsetStrideInBytes = 0; + // ------------------------------------------------------ OptixTraversableHandle asHandle{0}; @@ -184,14 +180,15 @@ struct TriangleGeometry { } template - static TriangleMesh makeBoundary(const TriangleMesh &passedMesh) { + static TriangleMesh makeBoundary(const TriangleMesh &passedMesh, + float sourceOffset) { TriangleMesh boundaryMesh; if constexpr (D == 3) { Vec3Df bbMin = passedMesh.minimumExtent; Vec3Df bbMax = passedMesh.maximumExtent; // adjust bounding box to include source plane - bbMax[2] += passedMesh.gridDelta; + bbMax[2] += passedMesh.gridDelta + sourceOffset; boundaryMesh.gridDelta = passedMesh.gridDelta; boundaryMesh.nodes.reserve(8); @@ -226,7 +223,7 @@ struct TriangleGeometry { const Vec3Df &bbMin = passedMesh.minimumExtent; Vec3Df bbMax = passedMesh.maximumExtent; // adjust bounding box to include source plane - bbMax[1] += 2 * passedMesh.gridDelta; + bbMax[1] += passedMesh.gridDelta + sourceOffset; boundaryMesh.gridDelta = passedMesh.gridDelta; boundaryMesh.nodes.reserve(8); boundaryMesh.triangles.reserve(4); From 1bed7c6a56b2cf68942a9c143f2beede3891f505 Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Sun, 16 Nov 2025 20:31:04 +0100 Subject: [PATCH 11/16] Remove hard reflection limit --- gpu/include/raygLaunchParams.hpp | 3 --- include/viennaray/rayTraceKernel.hpp | 5 ----- 2 files changed, 8 deletions(-) diff --git a/gpu/include/raygLaunchParams.hpp b/gpu/include/raygLaunchParams.hpp index 01be609..a51fd7c 100644 --- a/gpu/include/raygLaunchParams.hpp +++ b/gpu/include/raygLaunchParams.hpp @@ -77,9 +77,6 @@ __device__ __forceinline__ bool continueRay(const LaunchParams &launchParams, prd.numBoundaryHits > launchParams.maxBoundaryHits) return false; - if (prd.numReflections > 1e4) - return false; - // If the weight of the ray is above a certain threshold, we always reflect. // If the weight of the ray is below the threshold, we randomly decide to // either kill the ray or increase its weight (in an unbiased way). diff --git a/include/viennaray/rayTraceKernel.hpp b/include/viennaray/rayTraceKernel.hpp index 95caf69..73c8643 100644 --- a/include/viennaray/rayTraceKernel.hpp +++ b/include/viennaray/rayTraceKernel.hpp @@ -325,11 +325,6 @@ template class TraceKernel { // terminate ray if too many reflections break; } - if (numReflections > 1e4) { - // terminate ray if too many reflections - ++raysTerminated; - break; - } reflect = rejectionControl(rayWeight, initialRayWeight, rngState); if (!reflect) { break; From 8c52eb74ed49418bcfdc1f15d2d3bad3226b1458 Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Sun, 16 Nov 2025 20:54:30 +0100 Subject: [PATCH 12/16] Seperate normalization and downloads from apply call --- gpu/include/raygTrace.hpp | 27 +++++++++++++++++++++------ gpu/include/raygTraceDisk.hpp | 26 +++++++++++++++++--------- gpu/include/raygTraceLine.hpp | 4 ++-- gpu/include/raygTraceTriangle.hpp | 4 ++-- 4 files changed, 42 insertions(+), 19 deletions(-) diff --git a/gpu/include/raygTrace.hpp b/gpu/include/raygTrace.hpp index 58f30b7..d1814fd 100644 --- a/gpu/include/raygTrace.hpp +++ b/gpu/include/raygTrace.hpp @@ -230,10 +230,7 @@ template class Trace { CUDA_CHECK(StreamDestroy(s)); } - normalize(); // on device - results.resize(launchParams.numElements * numFluxes_); - resultBuffer.download(results.data(), - launchParams.numElements * numFluxes_); + resultsDownloaded = false; } void setElementData(CudaBuffer &passedCellDataBuffer, unsigned numData) { @@ -313,6 +310,14 @@ template class Trace { void getFlux(float *flux, int particleIdx, int dataIdx, int smoothingNeighbors = 0) { + + if (!resultsDownloaded) { + results.resize(launchParams.numElements * numFluxes_); + resultBuffer.download(results.data(), + launchParams.numElements * numFluxes_); + resultsDownloaded = true; + } + unsigned int offset = 0; for (size_t i = 0; i < particles_.size(); i++) { if (particleIdx > i) @@ -396,12 +401,21 @@ template class Trace { launchParams.customData = (void *)d_params; } + void downloadResults() { + if (!resultsDownloaded) { + results.resize(launchParams.numElements * numFluxes_); + resultBuffer.download(results.data(), + launchParams.numElements * numFluxes_); + resultsDownloaded = true; + } + } + virtual void smoothFlux(std::vector &flux, int smoothingNeighbors) {} -protected: // To be implemented by derived classes - virtual void normalize() = 0; + virtual void normalizeResults() = 0; +protected: virtual void buildHitGroups() = 0; private: @@ -714,6 +728,7 @@ template class Trace { rayInternal::KernelConfig config_; bool ignoreBoundary = false; + bool resultsDownloaded = false; size_t numRays; unsigned numCellData = 0; diff --git a/gpu/include/raygTraceDisk.hpp b/gpu/include/raygTraceDisk.hpp index 03acce2..e24250a 100644 --- a/gpu/include/raygTraceDisk.hpp +++ b/gpu/include/raygTraceDisk.hpp @@ -48,21 +48,28 @@ template class TraceDisk : public Trace { void smoothFlux(std::vector &flux, int smoothingNeighbors) override { auto oldFlux = flux; - PointNeighborhood pointNeighborhood; + PointNeighborhood + *pointNeighborhood; // use pointer to avoid copies if (smoothingNeighbors == 1) { // re-use the neighborhood from setGeometry - pointNeighborhood = pointNeighborhood_; - } else { // TODO: this will rebuild the neighborhood for every call - // to getFlux (number of rates) - // create a new neighborhood with a larger radius - pointNeighborhood.template init<3>( + pointNeighborhood = &pointNeighborhood_; + } else if (pointNeighborhoodCache_.getNumPoints() == + launchParams.numElements && + std::abs(pointNeighborhoodCache_.getDistance() - + smoothingNeighbors * 2 * diskMesh.radius) < 1e-6f) { + // re-use cached neighborhood + pointNeighborhood = &pointNeighborhoodCache_; + } else { + // create a new neighborhood with a larger radius and cache it + pointNeighborhoodCache_.template init<3>( diskMesh.nodes, smoothingNeighbors * 2 * diskMesh.radius, diskMesh.minimumExtent, diskMesh.maximumExtent); + pointNeighborhood = &pointNeighborhoodCache_; } #pragma omp parallel for for (int idx = 0; idx < launchParams.numElements; idx++) { float vv = oldFlux[idx]; - auto const &neighborhood = pointNeighborhood.getNeighborIndices(idx); + auto const &neighborhood = pointNeighborhood->getNeighborIndices(idx); float sum = 1.f; auto const normal = diskMesh.normals[idx]; for (auto const &nbi : neighborhood) { @@ -77,8 +84,7 @@ template class TraceDisk : public Trace { } } -protected: - void normalize() override { + void normalizeResults() override { float sourceArea = 0.f; if constexpr (D == 2) { sourceArea = @@ -174,6 +180,7 @@ template class TraceDisk : public Trace { areaBuffer.free(); } +protected: void buildHitGroups() override { // geometry hitgroup std::vector hitgroupRecords; @@ -214,6 +221,7 @@ template class TraceDisk : public Trace { DiskGeometry diskGeometry; PointNeighborhood pointNeighborhood_; + PointNeighborhood pointNeighborhoodCache_; Vec3Df minBox; Vec3Df maxBox; diff --git a/gpu/include/raygTraceLine.hpp b/gpu/include/raygTraceLine.hpp index 9e4b3b1..b33be0e 100644 --- a/gpu/include/raygTraceLine.hpp +++ b/gpu/include/raygTraceLine.hpp @@ -29,8 +29,7 @@ template class TraceLine : public Trace { // not implemented for line geometry } -protected: - void normalize() override { + void normalizeResults() override { assert(resultBuffer.sizeInBytes != 0 && "Normalization: Result buffer not initialized."); @@ -59,6 +58,7 @@ template class TraceLine : public Trace { areaBuffer.free(); } +protected: void buildHitGroups() override { std::vector hitgroupRecords; diff --git a/gpu/include/raygTraceTriangle.hpp b/gpu/include/raygTraceTriangle.hpp index 7416708..277c6f2 100644 --- a/gpu/include/raygTraceTriangle.hpp +++ b/gpu/include/raygTraceTriangle.hpp @@ -42,8 +42,7 @@ template class TraceTriangle : public Trace { void smoothFlux(std::vector &flux, int smoothingNeighbors) override {} -protected: - void normalize() override { + void normalizeResults() override { float sourceArea = 0.f; if constexpr (D == 2) { sourceArea = @@ -66,6 +65,7 @@ template class TraceTriangle : public Trace { kernel_args, *context_); } +protected: void buildHitGroups() override { // geometry hitgroup std::vector hitgroupRecords; From c6655756a643944f88a5dc9a8b98a39597351aae Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Sun, 16 Nov 2025 21:02:55 +0100 Subject: [PATCH 13/16] Update get flux function --- gpu/examples/trenchDisks.cpp | 3 +-- gpu/examples/trenchLines.cpp | 7 ++----- gpu/examples/trenchTriangles.cpp | 4 +--- gpu/include/raygTrace.hpp | 13 ++++++------- 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/gpu/examples/trenchDisks.cpp b/gpu/examples/trenchDisks.cpp index e7f9738..4750280 100644 --- a/gpu/examples/trenchDisks.cpp +++ b/gpu/examples/trenchDisks.cpp @@ -51,8 +51,7 @@ int main() { tracer.apply(); - std::vector flux(mesh.nodes.size()); - tracer.getFlux(flux.data(), 0, 0, 1); + auto flux = tracer.getFlux(0, 0, 1); rayInternal::writeVTK("trenchResult.vtk", points, flux); diff --git a/gpu/examples/trenchLines.cpp b/gpu/examples/trenchLines.cpp index ab24d24..f76b58a 100644 --- a/gpu/examples/trenchLines.cpp +++ b/gpu/examples/trenchLines.cpp @@ -54,8 +54,7 @@ int main() { tracer.apply(); - std::vector flux(mesh.lines.size()); - tracer.getFlux(flux.data(), 0, 0, 1); + auto flux = tracer.getFlux(0, 0); rayInternal::writeVTP("trenchLines_lineFlux.vtp", mesh.nodes, mesh.lines, flux); @@ -80,9 +79,7 @@ int main() { triangleTracer.apply(); - flux.resize(triMesh.triangles.size()); - triangleTracer.getFlux(flux.data(), 0, 0); - + flux = triangleTracer.getFlux(0, 0); rayInternal::writeVTP("trenchLines_triFlux.vtp", triMesh.nodes, triMesh.triangles, flux); diff --git a/gpu/examples/trenchTriangles.cpp b/gpu/examples/trenchTriangles.cpp index 8db7678..e0954f3 100644 --- a/gpu/examples/trenchTriangles.cpp +++ b/gpu/examples/trenchTriangles.cpp @@ -59,9 +59,7 @@ int main(int argc, char **argv) { tracer.apply(); - std::vector flux(mesh.triangles.size()); - tracer.getFlux(flux.data(), 0, 0); - + auto flux = tracer.getFlux(0, 0); rayInternal::writeVTP("trenchTriangles_triMesh.vtp", mesh.nodes, mesh.triangles, flux); diff --git a/gpu/include/raygTrace.hpp b/gpu/include/raygTrace.hpp index d1814fd..b3866ad 100644 --- a/gpu/include/raygTrace.hpp +++ b/gpu/include/raygTrace.hpp @@ -308,9 +308,8 @@ template class Trace { size_t getNumberOfRays() const { return numRays; } - void getFlux(float *flux, int particleIdx, int dataIdx, - int smoothingNeighbors = 0) { - + std::vector getFlux(int particleIdx, int dataIdx, + int smoothingNeighbors = 0) { if (!resultsDownloaded) { results.resize(launchParams.numElements * numFluxes_); resultBuffer.download(results.data(), @@ -318,18 +317,18 @@ template class Trace { resultsDownloaded = true; } + std::vector flux(launchParams.numElements); unsigned int offset = 0; for (size_t i = 0; i < particles_.size(); i++) { if (particleIdx > i) offset += particles_[i].dataLabels.size(); } offset = (offset + dataIdx) * launchParams.numElements; - std::vector temp(launchParams.numElements); - std::memcpy(temp.data(), results.data() + offset, + std::memcpy(flux.data(), results.data() + offset, launchParams.numElements * sizeof(float)); if (smoothingNeighbors > 0) - smoothFlux(temp, smoothingNeighbors); - std::memcpy(flux, temp.data(), launchParams.numElements * sizeof(float)); + smoothFlux(flux, smoothingNeighbors); + return flux; } void setUseCellData(unsigned numData) { numCellData = numData; } From db5d1847b679c445bc9e16c510dd08feb3dbbf51 Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Sun, 16 Nov 2025 22:30:04 +0100 Subject: [PATCH 14/16] Source offset in GPU disk tracer --- gpu/examples/trenchDisks.cpp | 1 + gpu/examples/trenchLines.cpp | 2 ++ gpu/examples/trenchTriangles.cpp | 1 + gpu/include/raygDiskGeometry.hpp | 9 ++++++--- gpu/include/raygTraceDisk.hpp | 4 ++-- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/gpu/examples/trenchDisks.cpp b/gpu/examples/trenchDisks.cpp index 4750280..1c456b9 100644 --- a/gpu/examples/trenchDisks.cpp +++ b/gpu/examples/trenchDisks.cpp @@ -51,6 +51,7 @@ int main() { tracer.apply(); + tracer.normalizeResults(); auto flux = tracer.getFlux(0, 0, 1); rayInternal::writeVTK("trenchResult.vtk", points, flux); diff --git a/gpu/examples/trenchLines.cpp b/gpu/examples/trenchLines.cpp index f76b58a..53a8efb 100644 --- a/gpu/examples/trenchLines.cpp +++ b/gpu/examples/trenchLines.cpp @@ -54,6 +54,7 @@ int main() { tracer.apply(); + tracer.normalizeResults(); auto flux = tracer.getFlux(0, 0); rayInternal::writeVTP("trenchLines_lineFlux.vtp", mesh.nodes, mesh.lines, flux); @@ -78,6 +79,7 @@ int main() { triangleTracer.prepareParticlePrograms(); triangleTracer.apply(); + triangleTracer.normalizeResults(); flux = triangleTracer.getFlux(0, 0); rayInternal::writeVTP("trenchLines_triFlux.vtp", triMesh.nodes, diff --git a/gpu/examples/trenchTriangles.cpp b/gpu/examples/trenchTriangles.cpp index e0954f3..2886095 100644 --- a/gpu/examples/trenchTriangles.cpp +++ b/gpu/examples/trenchTriangles.cpp @@ -59,6 +59,7 @@ int main(int argc, char **argv) { tracer.apply(); + tracer.normalizeResults(); auto flux = tracer.getFlux(0, 0); rayInternal::writeVTP("trenchTriangles_triMesh.vtp", mesh.nodes, mesh.triangles, flux); diff --git a/gpu/include/raygDiskGeometry.hpp b/gpu/include/raygDiskGeometry.hpp index 46a7bb6..25c73bc 100644 --- a/gpu/include/raygDiskGeometry.hpp +++ b/gpu/include/raygDiskGeometry.hpp @@ -27,19 +27,22 @@ template struct DiskGeometry { /// build acceleration structure from triangle mesh void buildAccel(DeviceContext &context, const DiskMesh &mesh, - LaunchParams &launchParams, const bool ignoreBoundary) { + LaunchParams &launchParams, const bool ignoreBoundary, + float sourceOffset) { assert(context.deviceID != -1 && "Context not initialized."); if constexpr (D == 2) { launchParams.source.minPoint[0] = mesh.minimumExtent[0]; launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; - launchParams.source.planeHeight = mesh.maximumExtent[1] + 2 * mesh.radius; + launchParams.source.planeHeight = + mesh.maximumExtent[1] + 2 * mesh.radius + sourceOffset; } else { launchParams.source.minPoint[0] = mesh.minimumExtent[0]; launchParams.source.minPoint[1] = mesh.minimumExtent[1]; launchParams.source.maxPoint[0] = mesh.maximumExtent[0]; launchParams.source.maxPoint[1] = mesh.maximumExtent[1]; - launchParams.source.planeHeight = mesh.maximumExtent[2] + 2 * mesh.radius; + launchParams.source.planeHeight = + mesh.maximumExtent[2] + 2 * mesh.radius + sourceOffset; } launchParams.numElements = mesh.nodes.size(); diff --git a/gpu/include/raygTraceDisk.hpp b/gpu/include/raygTraceDisk.hpp index e24250a..619b31a 100644 --- a/gpu/include/raygTraceDisk.hpp +++ b/gpu/include/raygTraceDisk.hpp @@ -19,7 +19,7 @@ template class TraceDisk : public Trace { ~TraceDisk() { diskGeometry.freeBuffers(); } - void setGeometry(const DiskMesh &passedMesh) { + void setGeometry(const DiskMesh &passedMesh, float sourceOffset = 0.f) { assert(context_ && "Context not initialized."); diskMesh = passedMesh; if (diskMesh.gridDelta <= 0.f) { @@ -43,7 +43,7 @@ template class TraceDisk : public Trace { diskMesh.minimumExtent, diskMesh.maximumExtent); diskGeometry.buildAccel(*context_, diskMesh, launchParams, - this->ignoreBoundary); + this->ignoreBoundary, sourceOffset); } void smoothFlux(std::vector &flux, int smoothingNeighbors) override { From dc8211cc0b139a4bcc4587b380add40596719323 Mon Sep 17 00:00:00 2001 From: reiter Date: Mon, 17 Nov 2025 10:07:32 +0100 Subject: [PATCH 15/16] Set custom radii in CPU disk tracer --- gpu/include/raygDiskGeometry.hpp | 14 ++--- include/viennaray/rayGeometryDisk.hpp | 85 +++++++++++++++++++++++++++ include/viennaray/rayMesh.hpp | 21 ++++--- include/viennaray/rayTraceDisk.hpp | 6 ++ 4 files changed, 106 insertions(+), 20 deletions(-) diff --git a/gpu/include/raygDiskGeometry.hpp b/gpu/include/raygDiskGeometry.hpp index 25c73bc..71d4e9b 100644 --- a/gpu/include/raygDiskGeometry.hpp +++ b/gpu/include/raygDiskGeometry.hpp @@ -45,6 +45,7 @@ template struct DiskGeometry { mesh.maximumExtent[2] + 2 * mesh.radius + sourceOffset; } launchParams.numElements = mesh.nodes.size(); + const bool useRadii = mesh.radii.size() == mesh.nodes.size(); // 2 inputs: one for the geometry, one for the boundary std::array diskInput{}; @@ -55,11 +56,6 @@ template struct DiskGeometry { geometryPointBuffer.allocUpload(mesh.nodes); geometryNormalBuffer.allocUpload(mesh.normals); - // create local variables, because we need a *pointer* to the - // device pointers - CUdeviceptr d_geoPoints = geometryPointBuffer.dPointer(); - CUdeviceptr d_geoNormals = geometryNormalBuffer.dPointer(); - // AABB build input std::vector aabb(mesh.nodes.size()); @@ -68,10 +64,10 @@ template struct DiskGeometry { Vec3Df N = mesh.normals[i]; Normalize(N); - Vec3Df extent = {mesh.radius * sqrtf(1.0f - N[0] * N[0]), - mesh.radius * sqrtf(1.0f - N[1] * N[1]), - mesh.radius * sqrtf(1.0f - N[2] * N[2])}; - + float radius = useRadii ? mesh.radii[i] : mesh.radius; + Vec3Df extent = {radius * sqrtf(1.0f - N[0] * N[0]), + radius * sqrtf(1.0f - N[1] * N[1]), + radius * sqrtf(1.0f - N[2] * N[2])}; // // This might not be needed // float eps = 1e-4f; // extent[0] += fabsf(N[0]) * eps; diff --git a/include/viennaray/rayGeometryDisk.hpp b/include/viennaray/rayGeometryDisk.hpp index 38a2a49..d6aa4c0 100644 --- a/include/viennaray/rayGeometryDisk.hpp +++ b/include/viennaray/rayGeometryDisk.hpp @@ -13,6 +13,91 @@ class GeometryDisk : public Geometry { public: GeometryDisk() : Geometry(GeometryType::DISK) {} + template + void initGeometry(RTCDevice &device, const DiskMesh &diskMesh) { + // overwriting the geometry without releasing it beforehand causes the old + // buffer to leak + releaseGeometry(); + this->pRtcGeometry_ = + rtcNewGeometry(device, RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT); + assert(rtcGetDeviceError(device) == RTC_ERROR_NONE && + "RTC Error: rtcNewGeometry"); + this->numPrimitives_ = diskMesh.nodes.size(); + + // The buffer data is managed internally (embree) and automatically freed + // when the geometry is destroyed. + pPointBuffer_ = (point_4f_t *)rtcSetNewGeometryBuffer( + this->pRtcGeometry_, RTC_BUFFER_TYPE_VERTEX, + 0, // slot + RTC_FORMAT_FLOAT4, sizeof(point_4f_t), this->numPrimitives_); + assert(rtcGetDeviceError(device) == RTC_ERROR_NONE && + "RTC Error: rtcSetNewGeometryBuffer points"); + + for (int i = 0; i < D; i++) { + this->minCoords_[i] = static_cast(diskMesh.minimumExtent[i]); + this->maxCoords_[i] = static_cast(diskMesh.maximumExtent[i]); + } + discRadii_ = diskMesh.radius; + const bool useRadii = diskMesh.radii.size() == diskMesh.nodes.size(); + + const auto &points = diskMesh.nodes; + for (size_t i = 0; i < this->numPrimitives_; ++i) { + pPointBuffer_[i].xx = points[i][0]; + pPointBuffer_[i].yy = points[i][1]; + float radius = useRadii ? diskMesh.radii[i] : discRadii_; + pPointBuffer_[i].radius = radius; + if constexpr (D == 2) { + pPointBuffer_[i].zz = 0.f; + } else { + pPointBuffer_[i].zz = points[i][2]; + } + } + + pNormalVecBuffer_ = (normal_vec_3f_t *)rtcSetNewGeometryBuffer( + this->pRtcGeometry_, RTC_BUFFER_TYPE_NORMAL, + 0, // slot + RTC_FORMAT_FLOAT3, sizeof(normal_vec_3f_t), this->numPrimitives_); + assert(rtcGetDeviceError(device) == RTC_ERROR_NONE && + "RTC Error: rtcSetNewGeometryBuffer normals"); + + const auto &normals = diskMesh.normals; + assert(normals.size() == this->numPrimitives_); + for (size_t i = 0; i < this->numPrimitives_; ++i) { + pNormalVecBuffer_[i].xx = normals[i][0]; + pNormalVecBuffer_[i].yy = normals[i][1]; + if constexpr (D == 2) { + pNormalVecBuffer_[i].zz = 0.f; + } else { + pNormalVecBuffer_[i].zz = normals[i][2]; + } + } + +#ifdef VIENNARAY_USE_RAY_MASKING + rtcSetGeometryMask(this->pRtcGeometry_, -1); +#endif + + rtcCommitGeometry(this->pRtcGeometry_); + assert(rtcGetDeviceError(device) == RTC_ERROR_NONE && + "RTC Error: rtcCommitGeometry"); + + if (this->materialIds_.size() != this->numPrimitives_) { + this->materialIds_.resize(this->numPrimitives_, 0); + } + + // Initialize point neighborhood + std::vector> pointsN; + pointsN.resize(this->numPrimitives_); + for (size_t i = 0; i < this->numPrimitives_; ++i) { + pointsN[0] = static_cast(diskMesh.nodes[i][0]); + pointsN[1] = static_cast(diskMesh.nodes[i][1]); + if constexpr (Dim == 3) { + pointsN[i][2] = static_cast(diskMesh.nodes[i][2]); + } + } + pointNeighborhood_.template init(pointsN, 2 * discRadii_, + this->minCoords_, this->maxCoords_); + } + template void initGeometry(RTCDevice &device, std::vector> const &points, diff --git a/include/viennaray/rayMesh.hpp b/include/viennaray/rayMesh.hpp index 26ebe40..1427450 100644 --- a/include/viennaray/rayMesh.hpp +++ b/include/viennaray/rayMesh.hpp @@ -48,7 +48,7 @@ struct LineMesh { normals.clear(); normals.resize(lines.size()); #pragma omp parallel for - for (size_t i = 0; i < lines.size(); ++i) { + for (int i = 0; i < lines.size(); ++i) { Vec3Df const &p0 = nodes[lines[i][0]]; Vec3Df const &p1 = nodes[lines[i][1]]; Vec3Df lineDir = p1 - p0; @@ -102,7 +102,7 @@ struct TriangleMesh { normals.clear(); normals.resize(triangles.size()); #pragma omp parallel for - for (size_t i = 0; i < triangles.size(); ++i) { + for (int i = 0; i < triangles.size(); ++i) { Vec3Df const &p0 = nodes[triangles[i][0]]; Vec3Df const &p1 = nodes[triangles[i][1]]; Vec3Df const &p2 = nodes[triangles[i][2]]; @@ -123,6 +123,7 @@ struct DiskMesh { std::vector nodes; std::vector normals; + std::vector radii; Vec3Df minimumExtent; Vec3Df maximumExtent; @@ -135,15 +136,15 @@ TriangleMesh convertLinesToTriangles(const LineMesh &lineMesh) { mesh.gridDelta = lineMesh.gridDelta; mesh.minimumExtent = lineMesh.minimumExtent; mesh.maximumExtent = lineMesh.maximumExtent; - const auto lineWidth = lineMesh.gridDelta; - mesh.minimumExtent[2] -= lineWidth / 2.f; - mesh.maximumExtent[2] += lineWidth / 2.f; + const auto lineWidth2 = lineMesh.gridDelta * 0.5f; + mesh.minimumExtent[2] -= lineWidth2; + mesh.maximumExtent[2] += lineWidth2; auto const &points = lineMesh.nodes; mesh.nodes.reserve(points.size() * 2); for (size_t i = 0; i < points.size(); ++i) { - mesh.nodes.push_back(Vec3Df{points[i][0], points[i][1], lineWidth / 2.f}); - mesh.nodes.push_back(Vec3Df{points[i][0], points[i][1], -lineWidth / 2.f}); + mesh.nodes.push_back(Vec3Df{points[i][0], points[i][1], lineWidth2}); + mesh.nodes.push_back(Vec3Df{points[i][0], points[i][1], -lineWidth2}); } auto const &lines = lineMesh.lines; @@ -155,23 +156,21 @@ TriangleMesh convertLinesToTriangles(const LineMesh &lineMesh) { // first triangle Vec3D tri1{p0, p1, static_cast(p0 + 1)}; + mesh.triangles.push_back(tri1); auto normal = CrossProduct(mesh.nodes[tri1[1]] - mesh.nodes[tri1[0]], mesh.nodes[tri1[2]] - mesh.nodes[tri1[0]]); - mesh.triangles.push_back(tri1); Normalize(normal); mesh.normals.push_back(normal); // second triangle Vec3D tri2{static_cast(p0 + 1), p1, static_cast(p1 + 1)}; + mesh.triangles.push_back(tri2); normal = CrossProduct(mesh.nodes[tri2[1]] - mesh.nodes[tri2[0]], mesh.nodes[tri2[2]] - mesh.nodes[tri2[0]]); - mesh.triangles.push_back(tri2); Normalize(normal); mesh.normals.push_back(normal); } - mesh.triangles.shrink_to_fit(); - mesh.normals.shrink_to_fit(); return mesh; } diff --git a/include/viennaray/rayTraceDisk.hpp b/include/viennaray/rayTraceDisk.hpp index 23112f0..f27eeb8 100644 --- a/include/viennaray/rayTraceDisk.hpp +++ b/include/viennaray/rayTraceDisk.hpp @@ -85,6 +85,12 @@ class TraceDisk : public Trace { geometry_.initGeometry(this->device_, points, normals, diskRadius_); } + void setGeometry(const DiskMesh &diskMesh) { + this->gridDelta_ = static_cast(diskMesh.gridDelta); + diskRadius_ = diskMesh.gridDelta * rayInternal::DiskFactor; + geometry_.initGeometry(this->device_, diskMesh); + } + /// Set material ID's for each geometry point. /// If not set, all material IDs are default 0. template void setMaterialIds(std::vector const &materialIds) { From 64cddcb9ac2032f9ed5804b56f96b20ea658458f Mon Sep 17 00:00:00 2001 From: reiter Date: Mon, 17 Nov 2025 10:13:35 +0100 Subject: [PATCH 16/16] Fixes --- include/viennaray/rayGeometryDisk.hpp | 4 ++-- include/viennaray/rayTraceDisk.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/viennaray/rayGeometryDisk.hpp b/include/viennaray/rayGeometryDisk.hpp index d6aa4c0..39eb71c 100644 --- a/include/viennaray/rayGeometryDisk.hpp +++ b/include/viennaray/rayGeometryDisk.hpp @@ -88,8 +88,8 @@ class GeometryDisk : public Geometry { std::vector> pointsN; pointsN.resize(this->numPrimitives_); for (size_t i = 0; i < this->numPrimitives_; ++i) { - pointsN[0] = static_cast(diskMesh.nodes[i][0]); - pointsN[1] = static_cast(diskMesh.nodes[i][1]); + pointsN[i][0] = static_cast(diskMesh.nodes[i][0]); + pointsN[i][1] = static_cast(diskMesh.nodes[i][1]); if constexpr (Dim == 3) { pointsN[i][2] = static_cast(diskMesh.nodes[i][2]); } diff --git a/include/viennaray/rayTraceDisk.hpp b/include/viennaray/rayTraceDisk.hpp index f27eeb8..ead52d6 100644 --- a/include/viennaray/rayTraceDisk.hpp +++ b/include/viennaray/rayTraceDisk.hpp @@ -88,7 +88,7 @@ class TraceDisk : public Trace { void setGeometry(const DiskMesh &diskMesh) { this->gridDelta_ = static_cast(diskMesh.gridDelta); diskRadius_ = diskMesh.gridDelta * rayInternal::DiskFactor; - geometry_.initGeometry(this->device_, diskMesh); + geometry_.template initGeometry(this->device_, diskMesh); } /// Set material ID's for each geometry point.