PREHOOK: query: CREATE TABLE dest_j1(key STRING, value STRING, key1 string, val2 STRING) STORED AS TEXTFILE PREHOOK: type: CREATETABLE POSTHOOK: query: CREATE TABLE dest_j1(key STRING, value STRING, key1 string, val2 STRING) STORED AS TEXTFILE POSTHOOK: type: CREATETABLE POSTHOOK: Output: default@dest_j1 PREHOOK: query: explain INSERT OVERWRITE TABLE dest_j1 SELECT /*+ MAPJOIN(y) */ x.key, x.value, y.key, y.value FROM src x left outer JOIN (select * from src where key <= 100) y ON (x.key = y.key) PREHOOK: type: QUERY POSTHOOK: query: explain INSERT OVERWRITE TABLE dest_j1 SELECT /*+ MAPJOIN(y) */ x.key, x.value, y.key, y.value FROM src x left outer JOIN (select * from src where key <= 100) y ON (x.key = y.key) POSTHOOK: type: QUERY ABSTRACT SYNTAX TREE: (TOK_QUERY (TOK_FROM (TOK_LEFTOUTERJOIN (TOK_TABREF (TOK_TABNAME src) x) (TOK_SUBQUERY (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME src))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (<= (TOK_TABLE_OR_COL key) 100)))) y) (= (. (TOK_TABLE_OR_COL x) key) (. (TOK_TABLE_OR_COL y) key)))) (TOK_INSERT (TOK_DESTINATION (TOK_TAB (TOK_TABNAME dest_j1))) (TOK_SELECT (TOK_HINTLIST (TOK_HINT TOK_MAPJOIN (TOK_HINTARGLIST y))) (TOK_SELEXPR (. (TOK_TABLE_OR_COL x) key)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL x) value)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL y) key)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL y) value))))) STAGE DEPENDENCIES: Stage-7 is a root stage Stage-1 depends on stages: Stage-7 Stage-5 depends on stages: Stage-1 , consists of Stage-4, Stage-3 Stage-4 Stage-0 depends on stages: Stage-4, Stage-3 Stage-2 depends on stages: Stage-0 Stage-3 STAGE PLANS: Stage: Stage-7 Map Reduce Local Work Alias -> Map Local Tables: y:src Fetch Operator limit: -1 Alias -> Map Local Operator Tree: y:src TableScan alias: src Filter Operator predicate: expr: (key <= 100) type: boolean Select Operator expressions: expr: key type: string expr: value type: string outputColumnNames: _col0, _col1 HashTable Sink Operator condition expressions: 0 {key} {value} 1 {_col0} {_col1} handleSkewJoin: false keys: 0 [Column[key]] 1 [Column[_col0]] Position of Big Table: 0 Stage: Stage-1 Map Reduce Alias -> Map Operator Tree: x TableScan alias: x Map Join Operator condition map: Left Outer Join0 to 1 condition expressions: 0 {key} {value} 1 {_col0} {_col1} handleSkewJoin: false keys: 0 [Column[key]] 1 [Column[_col0]] outputColumnNames: _col0, _col1, _col4, _col5 Position of Big Table: 0 Select Operator expressions: expr: _col0 type: string expr: _col1 type: string expr: _col4 type: string expr: _col5 type: string outputColumnNames: _col0, _col1, _col4, _col5 Select Operator expressions: expr: _col0 type: string expr: _col1 type: string expr: _col4 type: string expr: _col5 type: string outputColumnNames: _col0, _col1, _col2, _col3 File Output Operator compressed: false GlobalTableId: 1 table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: default.dest_j1 Local Work: Map Reduce Local Work Stage: Stage-5 Conditional Operator Stage: Stage-4 Move Operator files: hdfs directory: true destination: pfile:/data/users/sdong/www/open-source-hive1/build/ql/scratchdir/hive_2011-02-10_16-07-10_721_6150353018683087425/-ext-10000 Stage: Stage-0 Move Operator tables: replace: true table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: default.dest_j1 Stage: Stage-2 Stats-Aggr Operator Stage: Stage-3 Map Reduce Alias -> Map Operator Tree: pfile:/data/users/sdong/www/open-source-hive1/build/ql/scratchdir/hive_2011-02-10_16-07-10_721_6150353018683087425/-ext-10002 File Output Operator compressed: false GlobalTableId: 0 table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: default.dest_j1 PREHOOK: query: INSERT OVERWRITE TABLE dest_j1 SELECT /*+ MAPJOIN(y) */ x.key, x.value, y.key, y.value FROM src x left outer JOIN (select * from src where key <= 100) y ON (x.key = y.key) PREHOOK: type: QUERY PREHOOK: Input: default@src PREHOOK: Output: default@dest_j1 POSTHOOK: query: INSERT OVERWRITE TABLE dest_j1 SELECT /*+ MAPJOIN(y) */ x.key, x.value, y.key, y.value FROM src x left outer JOIN (select * from src where key <= 100) y ON (x.key = y.key) POSTHOOK: type: QUERY POSTHOOK: Input: default@src POSTHOOK: Output: default@dest_j1 POSTHOOK: Lineage: dest_j1.key SIMPLE [(src)x.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest_j1.key1 SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest_j1.val2 SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest_j1.value SIMPLE [(src)x.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: select * from dest_j1 x order by x.key PREHOOK: type: QUERY PREHOOK: Input: default@dest_j1 PREHOOK: Output: file:/tmp/sdong/hive_2011-02-10_16-07-17_474_4842823760592704409/-mr-10000 POSTHOOK: query: select * from dest_j1 x order by x.key POSTHOOK: type: QUERY POSTHOOK: Input: default@dest_j1 POSTHOOK: Output: file:/tmp/sdong/hive_2011-02-10_16-07-17_474_4842823760592704409/-mr-10000 POSTHOOK: Lineage: dest_j1.key SIMPLE [(src)x.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest_j1.key1 SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest_j1.val2 SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest_j1.value SIMPLE [(src)x.FieldSchema(name:value, type:string, comment:default), ] 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 0 val_0 10 val_10 10 val_10 100 val_100 100 val_100 100 val_100 100 val_100 100 val_100 100 val_100 100 val_100 100 val_100 103 val_103 NULL NULL 103 val_103 NULL NULL 104 val_104 NULL NULL 104 val_104 NULL NULL 105 val_105 NULL NULL 11 val_11 11 val_11 111 val_111 NULL NULL 113 val_113 NULL NULL 113 val_113 NULL NULL 114 val_114 NULL NULL 116 val_116 NULL NULL 118 val_118 NULL NULL 118 val_118 NULL NULL 119 val_119 NULL NULL 119 val_119 NULL NULL 119 val_119 NULL NULL 12 val_12 12 val_12 12 val_12 12 val_12 12 val_12 12 val_12 12 val_12 12 val_12 120 val_120 NULL NULL 120 val_120 NULL NULL 125 val_125 NULL NULL 125 val_125 NULL NULL 126 val_126 NULL NULL 128 val_128 NULL NULL 128 val_128 NULL NULL 128 val_128 NULL NULL 129 val_129 NULL NULL 129 val_129 NULL NULL 131 val_131 NULL NULL 133 val_133 NULL NULL 134 val_134 NULL NULL 134 val_134 NULL NULL 136 val_136 NULL NULL 137 val_137 NULL NULL 137 val_137 NULL NULL 138 val_138 NULL NULL 138 val_138 NULL NULL 138 val_138 NULL NULL 138 val_138 NULL NULL 143 val_143 NULL NULL 145 val_145 NULL NULL 146 val_146 NULL NULL 146 val_146 NULL NULL 149 val_149 NULL NULL 149 val_149 NULL NULL 15 val_15 15 val_15 15 val_15 15 val_15 15 val_15 15 val_15 15 val_15 15 val_15 150 val_150 NULL NULL 152 val_152 NULL NULL 152 val_152 NULL NULL 153 val_153 NULL NULL 155 val_155 NULL NULL 156 val_156 NULL NULL 157 val_157 NULL NULL 158 val_158 NULL NULL 160 val_160 NULL NULL 162 val_162 NULL NULL 163 val_163 NULL NULL 164 val_164 NULL NULL 164 val_164 NULL NULL 165 val_165 NULL NULL 165 val_165 NULL NULL 166 val_166 NULL NULL 167 val_167 NULL NULL 167 val_167 NULL NULL 167 val_167 NULL NULL 168 val_168 NULL NULL 169 val_169 NULL NULL 169 val_169 NULL NULL 169 val_169 NULL NULL 169 val_169 NULL NULL 17 val_17 17 val_17 170 val_170 NULL NULL 172 val_172 NULL NULL 172 val_172 NULL NULL 174 val_174 NULL NULL 174 val_174 NULL NULL 175 val_175 NULL NULL 175 val_175 NULL NULL 176 val_176 NULL NULL 176 val_176 NULL NULL 177 val_177 NULL NULL 178 val_178 NULL NULL 179 val_179 NULL NULL 179 val_179 NULL NULL 18 val_18 18 val_18 18 val_18 18 val_18 18 val_18 18 val_18 18 val_18 18 val_18 180 val_180 NULL NULL 181 val_181 NULL NULL 183 val_183 NULL NULL 186 val_186 NULL NULL 187 val_187 NULL NULL 187 val_187 NULL NULL 187 val_187 NULL NULL 189 val_189 NULL NULL 19 val_19 19 val_19 190 val_190 NULL NULL 191 val_191 NULL NULL 191 val_191 NULL NULL 192 val_192 NULL NULL 193 val_193 NULL NULL 193 val_193 NULL NULL 193 val_193 NULL NULL 194 val_194 NULL NULL 195 val_195 NULL NULL 195 val_195 NULL NULL 196 val_196 NULL NULL 197 val_197 NULL NULL 197 val_197 NULL NULL 199 val_199 NULL NULL 199 val_199 NULL NULL 199 val_199 NULL NULL 2 val_2 2 val_2 20 val_20 20 val_20 200 val_200 NULL NULL 200 val_200 NULL NULL 201 val_201 NULL NULL 202 val_202 NULL NULL 203 val_203 NULL NULL 203 val_203 NULL NULL 205 val_205 NULL NULL 205 val_205 NULL NULL 207 val_207 NULL NULL 207 val_207 NULL NULL 208 val_208 NULL NULL 208 val_208 NULL NULL 208 val_208 NULL NULL 209 val_209 NULL NULL 209 val_209 NULL NULL 213 val_213 NULL NULL 213 val_213 NULL NULL 214 val_214 NULL NULL 216 val_216 NULL NULL 216 val_216 NULL NULL 217 val_217 NULL NULL 217 val_217 NULL NULL 218 val_218 NULL NULL 219 val_219 NULL NULL 219 val_219 NULL NULL 221 val_221 NULL NULL 221 val_221 NULL NULL 222 val_222 NULL NULL 223 val_223 NULL NULL 223 val_223 NULL NULL 224 val_224 NULL NULL 224 val_224 NULL NULL 226 val_226 NULL NULL 228 val_228 NULL NULL 229 val_229 NULL NULL 229 val_229 NULL NULL 230 val_230 NULL NULL 230 val_230 NULL NULL 230 val_230 NULL NULL 230 val_230 NULL NULL 230 val_230 NULL NULL 233 val_233 NULL NULL 233 val_233 NULL NULL 235 val_235 NULL NULL 237 val_237 NULL NULL 237 val_237 NULL NULL 238 val_238 NULL NULL 238 val_238 NULL NULL 239 val_239 NULL NULL 239 val_239 NULL NULL 24 val_24 24 val_24 24 val_24 24 val_24 24 val_24 24 val_24 24 val_24 24 val_24 241 val_241 NULL NULL 242 val_242 NULL NULL 242 val_242 NULL NULL 244 val_244 NULL NULL 247 val_247 NULL NULL 248 val_248 NULL NULL 249 val_249 NULL NULL 252 val_252 NULL NULL 255 val_255 NULL NULL 255 val_255 NULL NULL 256 val_256 NULL NULL 256 val_256 NULL NULL 257 val_257 NULL NULL 258 val_258 NULL NULL 26 val_26 26 val_26 26 val_26 26 val_26 26 val_26 26 val_26 26 val_26 26 val_26 260 val_260 NULL NULL 262 val_262 NULL NULL 263 val_263 NULL NULL 265 val_265 NULL NULL 265 val_265 NULL NULL 266 val_266 NULL NULL 27 val_27 27 val_27 272 val_272 NULL NULL 272 val_272 NULL NULL 273 val_273 NULL NULL 273 val_273 NULL NULL 273 val_273 NULL NULL 274 val_274 NULL NULL 275 val_275 NULL NULL 277 val_277 NULL NULL 277 val_277 NULL NULL 277 val_277 NULL NULL 277 val_277 NULL NULL 278 val_278 NULL NULL 278 val_278 NULL NULL 28 val_28 28 val_28 280 val_280 NULL NULL 280 val_280 NULL NULL 281 val_281 NULL NULL 281 val_281 NULL NULL 282 val_282 NULL NULL 282 val_282 NULL NULL 283 val_283 NULL NULL 284 val_284 NULL NULL 285 val_285 NULL NULL 286 val_286 NULL NULL 287 val_287 NULL NULL 288 val_288 NULL NULL 288 val_288 NULL NULL 289 val_289 NULL NULL 291 val_291 NULL NULL 292 val_292 NULL NULL 296 val_296 NULL NULL 298 val_298 NULL NULL 298 val_298 NULL NULL 298 val_298 NULL NULL 30 val_30 30 val_30 302 val_302 NULL NULL 305 val_305 NULL NULL 306 val_306 NULL NULL 307 val_307 NULL NULL 307 val_307 NULL NULL 308 val_308 NULL NULL 309 val_309 NULL NULL 309 val_309 NULL NULL 310 val_310 NULL NULL 311 val_311 NULL NULL 311 val_311 NULL NULL 311 val_311 NULL NULL 315 val_315 NULL NULL 316 val_316 NULL NULL 316 val_316 NULL NULL 316 val_316 NULL NULL 317 val_317 NULL NULL 317 val_317 NULL NULL 318 val_318 NULL NULL 318 val_318 NULL NULL 318 val_318 NULL NULL 321 val_321 NULL NULL 321 val_321 NULL NULL 322 val_322 NULL NULL 322 val_322 NULL NULL 323 val_323 NULL NULL 325 val_325 NULL NULL 325 val_325 NULL NULL 327 val_327 NULL NULL 327 val_327 NULL NULL 327 val_327 NULL NULL 33 val_33 33 val_33 331 val_331 NULL NULL 331 val_331 NULL NULL 332 val_332 NULL NULL 333 val_333 NULL NULL 333 val_333 NULL NULL 335 val_335 NULL NULL 336 val_336 NULL NULL 338 val_338 NULL NULL 339 val_339 NULL NULL 34 val_34 34 val_34 341 val_341 NULL NULL 342 val_342 NULL NULL 342 val_342 NULL NULL 344 val_344 NULL NULL 344 val_344 NULL NULL 345 val_345 NULL NULL 348 val_348 NULL NULL 348 val_348 NULL NULL 348 val_348 NULL NULL 348 val_348 NULL NULL 348 val_348 NULL NULL 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 35 val_35 351 val_351 NULL NULL 353 val_353 NULL NULL 353 val_353 NULL NULL 356 val_356 NULL NULL 360 val_360 NULL NULL 362 val_362 NULL NULL 364 val_364 NULL NULL 365 val_365 NULL NULL 366 val_366 NULL NULL 367 val_367 NULL NULL 367 val_367 NULL NULL 368 val_368 NULL NULL 369 val_369 NULL NULL 369 val_369 NULL NULL 369 val_369 NULL NULL 37 val_37 37 val_37 37 val_37 37 val_37 37 val_37 37 val_37 37 val_37 37 val_37 373 val_373 NULL NULL 374 val_374 NULL NULL 375 val_375 NULL NULL 377 val_377 NULL NULL 378 val_378 NULL NULL 379 val_379 NULL NULL 382 val_382 NULL NULL 382 val_382 NULL NULL 384 val_384 NULL NULL 384 val_384 NULL NULL 384 val_384 NULL NULL 386 val_386 NULL NULL 389 val_389 NULL NULL 392 val_392 NULL NULL 393 val_393 NULL NULL 394 val_394 NULL NULL 395 val_395 NULL NULL 395 val_395 NULL NULL 396 val_396 NULL NULL 396 val_396 NULL NULL 396 val_396 NULL NULL 397 val_397 NULL NULL 397 val_397 NULL NULL 399 val_399 NULL NULL 399 val_399 NULL NULL 4 val_4 4 val_4 400 val_400 NULL NULL 401 val_401 NULL NULL 401 val_401 NULL NULL 401 val_401 NULL NULL 401 val_401 NULL NULL 401 val_401 NULL NULL 402 val_402 NULL NULL 403 val_403 NULL NULL 403 val_403 NULL NULL 403 val_403 NULL NULL 404 val_404 NULL NULL 404 val_404 NULL NULL 406 val_406 NULL NULL 406 val_406 NULL NULL 406 val_406 NULL NULL 406 val_406 NULL NULL 407 val_407 NULL NULL 409 val_409 NULL NULL 409 val_409 NULL NULL 409 val_409 NULL NULL 41 val_41 41 val_41 411 val_411 NULL NULL 413 val_413 NULL NULL 413 val_413 NULL NULL 414 val_414 NULL NULL 414 val_414 NULL NULL 417 val_417 NULL NULL 417 val_417 NULL NULL 417 val_417 NULL NULL 418 val_418 NULL NULL 419 val_419 NULL NULL 42 val_42 42 val_42 42 val_42 42 val_42 42 val_42 42 val_42 42 val_42 42 val_42 421 val_421 NULL NULL 424 val_424 NULL NULL 424 val_424 NULL NULL 427 val_427 NULL NULL 429 val_429 NULL NULL 429 val_429 NULL NULL 43 val_43 43 val_43 430 val_430 NULL NULL 430 val_430 NULL NULL 430 val_430 NULL NULL 431 val_431 NULL NULL 431 val_431 NULL NULL 431 val_431 NULL NULL 432 val_432 NULL NULL 435 val_435 NULL NULL 436 val_436 NULL NULL 437 val_437 NULL NULL 438 val_438 NULL NULL 438 val_438 NULL NULL 438 val_438 NULL NULL 439 val_439 NULL NULL 439 val_439 NULL NULL 44 val_44 44 val_44 443 val_443 NULL NULL 444 val_444 NULL NULL 446 val_446 NULL NULL 448 val_448 NULL NULL 449 val_449 NULL NULL 452 val_452 NULL NULL 453 val_453 NULL NULL 454 val_454 NULL NULL 454 val_454 NULL NULL 454 val_454 NULL NULL 455 val_455 NULL NULL 457 val_457 NULL NULL 458 val_458 NULL NULL 458 val_458 NULL NULL 459 val_459 NULL NULL 459 val_459 NULL NULL 460 val_460 NULL NULL 462 val_462 NULL NULL 462 val_462 NULL NULL 463 val_463 NULL NULL 463 val_463 NULL NULL 466 val_466 NULL NULL 466 val_466 NULL NULL 466 val_466 NULL NULL 467 val_467 NULL NULL 468 val_468 NULL NULL 468 val_468 NULL NULL 468 val_468 NULL NULL 468 val_468 NULL NULL 469 val_469 NULL NULL 469 val_469 NULL NULL 469 val_469 NULL NULL 469 val_469 NULL NULL 469 val_469 NULL NULL 47 val_47 47 val_47 470 val_470 NULL NULL 472 val_472 NULL NULL 475 val_475 NULL NULL 477 val_477 NULL NULL 478 val_478 NULL NULL 478 val_478 NULL NULL 479 val_479 NULL NULL 480 val_480 NULL NULL 480 val_480 NULL NULL 480 val_480 NULL NULL 481 val_481 NULL NULL 482 val_482 NULL NULL 483 val_483 NULL NULL 484 val_484 NULL NULL 485 val_485 NULL NULL 487 val_487 NULL NULL 489 val_489 NULL NULL 489 val_489 NULL NULL 489 val_489 NULL NULL 489 val_489 NULL NULL 490 val_490 NULL NULL 491 val_491 NULL NULL 492 val_492 NULL NULL 492 val_492 NULL NULL 493 val_493 NULL NULL 494 val_494 NULL NULL 495 val_495 NULL NULL 496 val_496 NULL NULL 497 val_497 NULL NULL 498 val_498 NULL NULL 498 val_498 NULL NULL 498 val_498 NULL NULL 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 5 val_5 51 val_51 51 val_51 51 val_51 51 val_51 51 val_51 51 val_51 51 val_51 51 val_51 53 val_53 53 val_53 54 val_54 54 val_54 57 val_57 57 val_57 58 val_58 58 val_58 58 val_58 58 val_58 58 val_58 58 val_58 58 val_58 58 val_58 64 val_64 64 val_64 65 val_65 65 val_65 66 val_66 66 val_66 67 val_67 67 val_67 67 val_67 67 val_67 67 val_67 67 val_67 67 val_67 67 val_67 69 val_69 69 val_69 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 70 val_70 72 val_72 72 val_72 72 val_72 72 val_72 72 val_72 72 val_72 72 val_72 72 val_72 74 val_74 74 val_74 76 val_76 76 val_76 76 val_76 76 val_76 76 val_76 76 val_76 76 val_76 76 val_76 77 val_77 77 val_77 78 val_78 78 val_78 8 val_8 8 val_8 80 val_80 80 val_80 82 val_82 82 val_82 83 val_83 83 val_83 83 val_83 83 val_83 83 val_83 83 val_83 83 val_83 83 val_83 84 val_84 84 val_84 84 val_84 84 val_84 84 val_84 84 val_84 84 val_84 84 val_84 85 val_85 85 val_85 86 val_86 86 val_86 87 val_87 87 val_87 9 val_9 9 val_9 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 90 val_90 92 val_92 92 val_92 95 val_95 95 val_95 95 val_95 95 val_95 95 val_95 95 val_95 95 val_95 95 val_95 96 val_96 96 val_96 97 val_97 97 val_97 97 val_97 97 val_97 97 val_97 97 val_97 97 val_97 97 val_97 98 val_98 98 val_98 98 val_98 98 val_98 98 val_98 98 val_98 98 val_98 98 val_98